import { CMP } from "@nand2tetris/simulator/languages/cmp.js";
import { display } from "@davidsouther/jiffies/lib/esm/display.js";
import { range } from "@davidsouther/jiffies/lib/esm/range.js";
import { Err, isErr, Ok } from "@davidsouther/jiffies/lib/esm/result.js";
import { ReactElement } from "react";
export const DiffTable = ({
className = "",
out,
cmp,
zeroState,
}: {
out: string;
cmp: string;
className?: string;
zeroState?: ReactElement;
}) => {
const output = CMP.parse(out);
const compare = CMP.parse(cmp);
if (isErr(output)) {
return (
Failed to parse output
{display(Err(output))}
{out}
Failed to parse compare
{display(Err(compare))}
{cmp}
{failures} failure{failures === 1 ? "" : "s"}
)} {table.length > 0 ? (Execute test script to compare output.
) )}