{"abstract":"The dump repeats values that did not change, with extra timestamp markers.","category":"Digital logic simulation","checks":7,"contract":"Input [sigs, samples]: sigs are [name, id, width, initial]; samples are time-sorted [t, name, value] with values as 0/1/x/z strings, possibly shorter than the width or redundant. Output starts with '#0' and one line per signal's initial value. Afterwards only real value changes are written, each timestamp marker '#t' at most once and only when a change happens at t. Width-1 signals print value+id; vectors print 'b'+value+' '+id with leading zeros removed (at least one digit kept) and a run of leading x or z collapsed to one character.","evaluation_group":"w2-digital-logic-simulation-vcd-writer","failed_approach":"Comparing against the initial value suppresses a genuine return to the initial level.","family":"w2-digital-logic-simulation-vcd-writer-redundant-change-filter","id":"FA-89136","implementations":{"attempt":{"sha256":"0340749e1da562ccb39e4d90058373ce813e4d28f5df85989882c90584e93f3d","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(*args):\n    sigs, samples = args\n    cur = {name: init for name, _, _, init in sigs}\n    ids = {name: (i, w) for name, i, w, _ in sigs}\n    def fmt(name, v):\n        i, w = ids[name]\n        if w == 1:\n            return v + i\n        s = v.lstrip('0') or '0'\n        if s[:1] in ('x', 'z'):\n            s = s[0] + s.lstrip(s[0])\n        return 'b' + s + ' ' + i\n    lines = ['#0'] + [fmt(name, init) for name, _, _, init in sigs]\n    last_t = 0\n    for t, name, v in samples:\n        if dict((s[0], s[3]) for s in sigs)[name] == v:\n            continue\n        cur[name] = v\n        if t != last_t:\n            lines.append('#' + str(t))\n            last_t = t\n        lines.append(fmt(name, v))\n    return lines\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('clock toggles', [[['clk', '!', 1, '0'], ['bus', '\"', 4, '0000'], ['st', '%', 3, 'xxx']], [[5, 'clk', '1'], [10, 'clk', '0'], [11, 'clk', '1']]], ['#0', '0!', 'b0 \"', 'bx %', '#5', '1!', '#10', '0!', '#11', '1!']), ('redundant samples suppressed', [[['clk', '!', 1, '0'], ['bus', '\"', 4, '0000'], ['st', '%', 3, 'xxx']], [[3, 'bus', '0000'], [4, 'bus', '0011'], [6, 'clk', '0'], [8, 'clk', '1']]], ['#0', '0!', 'b0 \"', 'bx %', '#4', 'b11 \"', '#8', '1!']), ('return to initial value', [[['clk', '!', 1, '0'], ['bus', '\"', 4, '0000'], ['st', '%', 3, 'xxx']], [[2, 'clk', '1'], [5, 'clk', '0']]], ['#0', '0!', 'b0 \"', 'bx %', '#2', '1!', '#5', '0!']), ('redundant then real change at one time', [[['clk', '!', 1, '0'], ['bus', '\"', 4, '0000'], ['st', '%', 3, 'xxx']], [[5, 'bus', '0000'], [5, 'clk', '1'], [10, 'clk', '1'], [10, 'bus', '1000']]], ['#0', '0!', 'b0 \"', 'bx %', '#5', '1!', '#10', 'b1000 \"']), ('vector back to all zeros', [[['clk', '!', 1, '0'], ['bus', '\"', 4, '0000'], ['st', '%', 3, 'xxx']], [[1, 'bus', '0100'], [3, 'bus', '0000']]], ['#0', '0!', 'b0 \"', 'bx %', '#1', 'b100 \"', '#3', 'b0 \"']), ('short vector values', [[['clk', '!', 1, '0'], ['bus', '\"', 4, '0000'], ['st', '%', 3, 'xxx']], [[3, 'bus', '1'], [4, 'st', '1']]], ['#0', '0!', 'b0 \"', 'bx %', '#3', 'b1 \"', '#4', 'b1 %']), ('unknown left extension', [[['clk', '!', 1, '0'], ['bus', '\"', 4, '0000'], ['st', '%', 3, 'xxx']], [[4, 'st', 'xx1'], [5, 'st', 'zz0'], [7, 'st', 'xxx']]], ['#0', '0!', 'b0 \"', 'bx %', '#4', 'bx1 %', '#5', 'bz0 %', '#7', 'bx %'])], [('clock toggles', [[['clk', '!', 1, '0'], ['bus', '\"', 4, '0000'], ['st', '%', 3, 'xxx']], [[5, 'clk', '1'], [10, 'clk', '0'], [12, 'clk', '1']]], ['#0', '0!', 'b0 \"', 'bx %', '#5', '1!', '#10', '0!', '#12', '1!']), ('redundant samples suppressed', [[['clk', '!', 1, '0'], ['bus', '\"', 4, '0000'], ['st', '%', 3, 'xxx']], [[3, 'bus', '0000'], [4, 'bus', '0011'], [6, 'clk', '0'], [9, 'clk', '1']]], ['#0', '0!', 'b0 \"', 'bx %', '#4', 'b11 \"', '#9', '1!']), ('return to initial value', [[['clk', '!', 1, '0'], ['bus', '\"', 4, '0000'], ['st', '%', 3, 'xxx']], [[2, 'clk', '1'], [6, 'clk', '0']]], ['#0', '0!', 'b0 \"', 'bx %', '#2', '1!', '#6', '0!']), ('redundant then real change at one time', [[['clk', '!', 1, '0'], ['bus', '\"', 4, '0000'], ['st', '%', 3, 'xxx']], [[5, 'bus', '0000'], [5, 'clk', '1'], [11, 'clk', '1'], [11, 'bus', '1000']]], ['#0', '0!', 'b0 \"', 'bx %', '#5', '1!', '#11', 'b1000 \"']), ('vector back to all zeros', [[['clk', '!', 1, '0'], ['bus', '\"', 4, '0000'], ['st', '%', 3, 'xxx']], [[1, 'bus', '0100'], [4, 'bus', '0000']]], ['#0', '0!', 'b0 \"', 'bx %', '#1', 'b100 \"', '#4', 'b0 \"']), ('short vector values', [[['clk', '!', 1, '0'], ['bus', '\"', 4, '0000'], ['st', '%', 3, 'xxx']], [[3, 'bus', '1'], [5, 'st', '1']]], ['#0', '0!', 'b0 \"', 'bx %', '#3', 'b1 \"', '#5', 'b1 %']), ('unknown left extension', [[['clk', '!', 1, '0'], ['bus', '\"', 4, '0000'], ['st', '%', 3, 'xxx']], [[4, 'st', 'xx1'], [5, 'st', 'zz0'], [8, 'st', 'xxx']]], ['#0', '0!', 'b0 \"', 'bx %', '#4', 'bx1 %', '#5', 'bz0 %', '#8', 'bx %'])], [('clock toggles', [[['clk', '!', 1, '0'], ['bus', '\"', 4, '0000'], ['st', '%', 3, 'xxx']], [[5, 'clk', '1'], [10, 'clk', '0'], [13, 'clk', '1']]], ['#0', '0!', 'b0 \"', 'bx %', '#5', '1!', '#10', '0!', '#13', '1!']), ('redundant samples suppressed', [[['clk', '!', 1, '0'], ['bus', '\"', 4, '0000'], ['st', '%', 3, 'xxx']], [[3, 'bus', '0000'], [4, 'bus', '0011'], [6, 'clk', '0'], [10, 'clk', '1']]], ['#0', '0!', 'b0 \"', 'bx %', '#4', 'b11 \"', '#10', '1!']), ('return to initial value', [[['clk', '!', 1, '0'], ['bus', '\"', 4, '0000'], ['st', '%', 3, 'xxx']], [[2, 'clk', '1'], [7, 'clk', '0']]], ['#0', '0!', 'b0 \"', 'bx %', '#2', '1!', '#7', '0!']), ('redundant then real change at one time', [[['clk', '!', 1, '0'], ['bus', '\"', 4, '0000'], ['st', '%', 3, 'xxx']], [[5, 'bus', '0000'], [5, 'clk', '1'], [12, 'clk', '1'], [12, 'bus', '1000']]], ['#0', '0!', 'b0 \"', 'bx %', '#5', '1!', '#12', 'b1000 \"']), ('vector back to all zeros', [[['clk', '!', 1, '0'], ['bus', '\"', 4, '0000'], ['st', '%', 3, 'xxx']], [[1, 'bus', '0100'], [5, 'bus', '0000']]], ['#0', '0!', 'b0 \"', 'bx %', '#1', 'b100 \"', '#5', 'b0 \"']), ('short vector values', [[['clk', '!', 1, '0'], ['bus', '\"', 4, '0000'], ['st', '%', 3, 'xxx']], [[3, 'bus', '1'], [6, 'st', '1']]], ['#0', '0!', 'b0 \"', 'bx %', '#3', 'b1 \"', '#6', 'b1 %']), ('unknown left extension', [[['clk', '!', 1, '0'], ['bus', '\"', 4, '0000'], ['st', '%', 3, 'xxx']], [[4, 'st', 'xx1'], [5, 'st', 'zz0'], [9, 'st', 'xxx']]], ['#0', '0!', 'b0 \"', 'bx %', '#4', 'bx1 %', '#5', 'bz0 %', '#9', 'bx %'])], [('clock toggles', [[['clk', '!', 1, '0'], ['bus', '\"', 4, '0000'], ['st', '%', 3, 'xxx']], [[5, 'clk', '1'], [10, 'clk', '0'], [14, 'clk', '1']]], ['#0', '0!', 'b0 \"', 'bx %', '#5', '1!', '#10', '0!', '#14', '1!']), ('redundant samples suppressed', [[['clk', '!', 1, '0'], ['bus', '\"', 4, '0000'], ['st', '%', 3, 'xxx']], [[3, 'bus', '0000'], [4, 'bus', '0011'], [6, 'clk', '0'], [11, 'clk', '1']]], ['#0', '0!', 'b0 \"', 'bx %', '#4', 'b11 \"', '#11', '1!']), ('return to initial value', [[['clk', '!', 1, '0'], ['bus', '\"', 4, '0000'], ['st', '%', 3, 'xxx']], [[2, 'clk', '1'], [8, 'clk', '0']]], ['#0', '0!', 'b0 \"', 'bx %', '#2', '1!', '#8', '0!']), ('redundant then real change at one time', [[['clk', '!', 1, '0'], ['bus', '\"', 4, '0000'], ['st', '%', 3, 'xxx']], [[5, 'bus', '0000'], [5, 'clk', '1'], [13, 'clk', '1'], [13, 'bus', '1000']]], ['#0', '0!', 'b0 \"', 'bx %', '#5', '1!', '#13', 'b1000 \"']), ('vector back to all zeros', [[['clk', '!', 1, '0'], ['bus', '\"', 4, '0000'], ['st', '%', 3, 'xxx']], [[1, 'bus', '0100'], [6, 'bus', '0000']]], ['#0', '0!', 'b0 \"', 'bx %', '#1', 'b100 \"', '#6', 'b0 \"']), ('short vector values', [[['clk', '!', 1, '0'], ['bus', '\"', 4, '0000'], ['st', '%', 3, 'xxx']], [[3, 'bus', '1'], [7, 'st', '1']]], ['#0', '0!', 'b0 \"', 'bx %', '#3', 'b1 \"', '#7', 'b1 %']), ('unknown left extension', [[['clk', '!', 1, '0'], ['bus', '\"', 4, '0000'], ['st', '%', 3, 'xxx']], [[4, 'st', 'xx1'], [5, 'st', 'zz0'], [10, 'st', 'xxx']]], ['#0', '0!', 'b0 \"', 'bx %', '#4', 'bx1 %', '#5', 'bz0 %', '#10', 'bx %'])], [('clock toggles', [[['clk', '!', 1, '0'], ['bus', '\"', 4, '0000'], ['st', '%', 3, 'xxx']], [[5, 'clk', '1'], [10, 'clk', '0'], [15, 'clk', '1']]], ['#0', '0!', 'b0 \"', 'bx %', '#5', '1!', '#10', '0!', '#15', '1!']), ('redundant samples suppressed', [[['clk', '!', 1, '0'], ['bus', '\"', 4, '0000'], ['st', '%', 3, 'xxx']], [[3, 'bus', '0000'], [4, 'bus', '0011'], [6, 'clk', '0'], [12, 'clk', '1']]], ['#0', '0!', 'b0 \"', 'bx %', '#4', 'b11 \"', '#12', '1!']), ('return to initial value', [[['clk', '!', 1, '0'], ['bus', '\"', 4, '0000'], ['st', '%', 3, 'xxx']], [[2, 'clk', '1'], [9, 'clk', '0']]], ['#0', '0!', 'b0 \"', 'bx %', '#2', '1!', '#9', '0!']), ('redundant then real change at one time', [[['clk', '!', 1, '0'], ['bus', '\"', 4, '0000'], ['st', '%', 3, 'xxx']], [[5, 'bus', '0000'], [5, 'clk', '1'], [14, 'clk', '1'], [14, 'bus', '1000']]], ['#0', '0!', 'b0 \"', 'bx %', '#5', '1!', '#14', 'b1000 \"']), ('vector back to all zeros', [[['clk', '!', 1, '0'], ['bus', '\"', 4, '0000'], ['st', '%', 3, 'xxx']], [[1, 'bus', '0100'], [7, 'bus', '0000']]], ['#0', '0!', 'b0 \"', 'bx %', '#1', 'b100 \"', '#7', 'b0 \"']), ('short vector values', [[['clk', '!', 1, '0'], ['bus', '\"', 4, '0000'], ['st', '%', 3, 'xxx']], [[3, 'bus', '1'], [8, 'st', '1']]], ['#0', '0!', 'b0 \"', 'bx %', '#3', 'b1 \"', '#8', 'b1 %']), ('unknown left extension', [[['clk', '!', 1, '0'], ['bus', '\"', 4, '0000'], ['st', '%', 3, 'xxx']], [[4, 'st', 'xx1'], [5, 'st', 'zz0'], [11, 'st', 'xxx']]], ['#0', '0!', 'b0 \"', 'bx %', '#4', 'bx1 %', '#5', 'bz0 %', '#11', 'bx %'])]]\nfor label, args, expected in fixtures[N-1]:\n    check(label, solve(*args), expected)\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"},"broken":{"sha256":"4cffa24daa7f5cd644a59ed0a63df9d8bc4229da63d27e9b624c5699449d4cae","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(*args):\n    sigs, samples = args\n    cur = {name: init for name, _, _, init in sigs}\n    ids = {name: (i, w) for name, i, w, _ in sigs}\n    def fmt(name, v):\n        i, w = ids[name]\n        if w == 1:\n            return v + i\n        s = v.lstrip('0') or '0'\n        if s[:1] in ('x', 'z'):\n            s = s[0] + s.lstrip(s[0])\n        return 'b' + s + ' ' + i\n    lines = ['#0'] + [fmt(name, init) for name, _, _, init in sigs]\n    last_t = 0\n    for t, name, v in samples:\n        if False:\n            continue\n        cur[name] = v\n        if t != last_t:\n            lines.append('#' + str(t))\n            last_t = t\n        lines.append(fmt(name, v))\n    return lines\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('clock toggles', [[['clk', '!', 1, '0'], ['bus', '\"', 4, '0000'], ['st', '%', 3, 'xxx']], [[5, 'clk', '1'], [10, 'clk', '0'], [11, 'clk', '1']]], ['#0', '0!', 'b0 \"', 'bx %', '#5', '1!', '#10', '0!', '#11', '1!']), ('redundant samples suppressed', [[['clk', '!', 1, '0'], ['bus', '\"', 4, '0000'], ['st', '%', 3, 'xxx']], [[3, 'bus', '0000'], [4, 'bus', '0011'], [6, 'clk', '0'], [8, 'clk', '1']]], ['#0', '0!', 'b0 \"', 'bx %', '#4', 'b11 \"', '#8', '1!']), ('return to initial value', [[['clk', '!', 1, '0'], ['bus', '\"', 4, '0000'], ['st', '%', 3, 'xxx']], [[2, 'clk', '1'], [5, 'clk', '0']]], ['#0', '0!', 'b0 \"', 'bx %', '#2', '1!', '#5', '0!']), ('redundant then real change at one time', [[['clk', '!', 1, '0'], ['bus', '\"', 4, '0000'], ['st', '%', 3, 'xxx']], [[5, 'bus', '0000'], [5, 'clk', '1'], [10, 'clk', '1'], [10, 'bus', '1000']]], ['#0', '0!', 'b0 \"', 'bx %', '#5', '1!', '#10', 'b1000 \"']), ('vector back to all zeros', [[['clk', '!', 1, '0'], ['bus', '\"', 4, '0000'], ['st', '%', 3, 'xxx']], [[1, 'bus', '0100'], [3, 'bus', '0000']]], ['#0', '0!', 'b0 \"', 'bx %', '#1', 'b100 \"', '#3', 'b0 \"']), ('short vector values', [[['clk', '!', 1, '0'], ['bus', '\"', 4, '0000'], ['st', '%', 3, 'xxx']], [[3, 'bus', '1'], [4, 'st', '1']]], ['#0', '0!', 'b0 \"', 'bx %', '#3', 'b1 \"', '#4', 'b1 %']), ('unknown left extension', [[['clk', '!', 1, '0'], ['bus', '\"', 4, '0000'], ['st', '%', 3, 'xxx']], [[4, 'st', 'xx1'], [5, 'st', 'zz0'], [7, 'st', 'xxx']]], ['#0', '0!', 'b0 \"', 'bx %', '#4', 'bx1 %', '#5', 'bz0 %', '#7', 'bx %'])], [('clock toggles', [[['clk', '!', 1, '0'], ['bus', '\"', 4, '0000'], ['st', '%', 3, 'xxx']], [[5, 'clk', '1'], [10, 'clk', '0'], [12, 'clk', '1']]], ['#0', '0!', 'b0 \"', 'bx %', '#5', '1!', '#10', '0!', '#12', '1!']), ('redundant samples suppressed', [[['clk', '!', 1, '0'], ['bus', '\"', 4, '0000'], ['st', '%', 3, 'xxx']], [[3, 'bus', '0000'], [4, 'bus', '0011'], [6, 'clk', '0'], [9, 'clk', '1']]], ['#0', '0!', 'b0 \"', 'bx %', '#4', 'b11 \"', '#9', '1!']), ('return to initial value', [[['clk', '!', 1, '0'], ['bus', '\"', 4, '0000'], ['st', '%', 3, 'xxx']], [[2, 'clk', '1'], [6, 'clk', '0']]], ['#0', '0!', 'b0 \"', 'bx %', '#2', '1!', '#6', '0!']), ('redundant then real change at one time', [[['clk', '!', 1, '0'], ['bus', '\"', 4, '0000'], ['st', '%', 3, 'xxx']], [[5, 'bus', '0000'], [5, 'clk', '1'], [11, 'clk', '1'], [11, 'bus', '1000']]], ['#0', '0!', 'b0 \"', 'bx %', '#5', '1!', '#11', 'b1000 \"']), ('vector back to all zeros', [[['clk', '!', 1, '0'], ['bus', '\"', 4, '0000'], ['st', '%', 3, 'xxx']], [[1, 'bus', '0100'], [4, 'bus', '0000']]], ['#0', '0!', 'b0 \"', 'bx %', '#1', 'b100 \"', '#4', 'b0 \"']), ('short vector values', [[['clk', '!', 1, '0'], ['bus', '\"', 4, '0000'], ['st', '%', 3, 'xxx']], [[3, 'bus', '1'], [5, 'st', '1']]], ['#0', '0!', 'b0 \"', 'bx %', '#3', 'b1 \"', '#5', 'b1 %']), ('unknown left extension', [[['clk', '!', 1, '0'], ['bus', '\"', 4, '0000'], ['st', '%', 3, 'xxx']], [[4, 'st', 'xx1'], [5, 'st', 'zz0'], [8, 'st', 'xxx']]], ['#0', '0!', 'b0 \"', 'bx %', '#4', 'bx1 %', '#5', 'bz0 %', '#8', 'bx %'])], [('clock toggles', [[['clk', '!', 1, '0'], ['bus', '\"', 4, '0000'], ['st', '%', 3, 'xxx']], [[5, 'clk', '1'], [10, 'clk', '0'], [13, 'clk', '1']]], ['#0', '0!', 'b0 \"', 'bx %', '#5', '1!', '#10', '0!', '#13', '1!']), ('redundant samples suppressed', [[['clk', '!', 1, '0'], ['bus', '\"', 4, '0000'], ['st', '%', 3, 'xxx']], [[3, 'bus', '0000'], [4, 'bus', '0011'], [6, 'clk', '0'], [10, 'clk', '1']]], ['#0', '0!', 'b0 \"', 'bx %', '#4', 'b11 \"', '#10', '1!']), ('return to initial value', [[['clk', '!', 1, '0'], ['bus', '\"', 4, '0000'], ['st', '%', 3, 'xxx']], [[2, 'clk', '1'], [7, 'clk', '0']]], ['#0', '0!', 'b0 \"', 'bx %', '#2', '1!', '#7', '0!']), ('redundant then real change at one time', [[['clk', '!', 1, '0'], ['bus', '\"', 4, '0000'], ['st', '%', 3, 'xxx']], [[5, 'bus', '0000'], [5, 'clk', '1'], [12, 'clk', '1'], [12, 'bus', '1000']]], ['#0', '0!', 'b0 \"', 'bx %', '#5', '1!', '#12', 'b1000 \"']), ('vector back to all zeros', [[['clk', '!', 1, '0'], ['bus', '\"', 4, '0000'], ['st', '%', 3, 'xxx']], [[1, 'bus', '0100'], [5, 'bus', '0000']]], ['#0', '0!', 'b0 \"', 'bx %', '#1', 'b100 \"', '#5', 'b0 \"']), ('short vector values', [[['clk', '!', 1, '0'], ['bus', '\"', 4, '0000'], ['st', '%', 3, 'xxx']], [[3, 'bus', '1'], [6, 'st', '1']]], ['#0', '0!', 'b0 \"', 'bx %', '#3', 'b1 \"', '#6', 'b1 %']), ('unknown left extension', [[['clk', '!', 1, '0'], ['bus', '\"', 4, '0000'], ['st', '%', 3, 'xxx']], [[4, 'st', 'xx1'], [5, 'st', 'zz0'], [9, 'st', 'xxx']]], ['#0', '0!', 'b0 \"', 'bx %', '#4', 'bx1 %', '#5', 'bz0 %', '#9', 'bx %'])], [('clock toggles', [[['clk', '!', 1, '0'], ['bus', '\"', 4, '0000'], ['st', '%', 3, 'xxx']], [[5, 'clk', '1'], [10, 'clk', '0'], [14, 'clk', '1']]], ['#0', '0!', 'b0 \"', 'bx %', '#5', '1!', '#10', '0!', '#14', '1!']), ('redundant samples suppressed', [[['clk', '!', 1, '0'], ['bus', '\"', 4, '0000'], ['st', '%', 3, 'xxx']], [[3, 'bus', '0000'], [4, 'bus', '0011'], [6, 'clk', '0'], [11, 'clk', '1']]], ['#0', '0!', 'b0 \"', 'bx %', '#4', 'b11 \"', '#11', '1!']), ('return to initial value', [[['clk', '!', 1, '0'], ['bus', '\"', 4, '0000'], ['st', '%', 3, 'xxx']], [[2, 'clk', '1'], [8, 'clk', '0']]], ['#0', '0!', 'b0 \"', 'bx %', '#2', '1!', '#8', '0!']), ('redundant then real change at one time', [[['clk', '!', 1, '0'], ['bus', '\"', 4, '0000'], ['st', '%', 3, 'xxx']], [[5, 'bus', '0000'], [5, 'clk', '1'], [13, 'clk', '1'], [13, 'bus', '1000']]], ['#0', '0!', 'b0 \"', 'bx %', '#5', '1!', '#13', 'b1000 \"']), ('vector back to all zeros', [[['clk', '!', 1, '0'], ['bus', '\"', 4, '0000'], ['st', '%', 3, 'xxx']], [[1, 'bus', '0100'], [6, 'bus', '0000']]], ['#0', '0!', 'b0 \"', 'bx %', '#1', 'b100 \"', '#6', 'b0 \"']), ('short vector values', [[['clk', '!', 1, '0'], ['bus', '\"', 4, '0000'], ['st', '%', 3, 'xxx']], [[3, 'bus', '1'], [7, 'st', '1']]], ['#0', '0!', 'b0 \"', 'bx %', '#3', 'b1 \"', '#7', 'b1 %']), ('unknown left extension', [[['clk', '!', 1, '0'], ['bus', '\"', 4, '0000'], ['st', '%', 3, 'xxx']], [[4, 'st', 'xx1'], [5, 'st', 'zz0'], [10, 'st', 'xxx']]], ['#0', '0!', 'b0 \"', 'bx %', '#4', 'bx1 %', '#5', 'bz0 %', '#10', 'bx %'])], [('clock toggles', [[['clk', '!', 1, '0'], ['bus', '\"', 4, '0000'], ['st', '%', 3, 'xxx']], [[5, 'clk', '1'], [10, 'clk', '0'], [15, 'clk', '1']]], ['#0', '0!', 'b0 \"', 'bx %', '#5', '1!', '#10', '0!', '#15', '1!']), ('redundant samples suppressed', [[['clk', '!', 1, '0'], ['bus', '\"', 4, '0000'], ['st', '%', 3, 'xxx']], [[3, 'bus', '0000'], [4, 'bus', '0011'], [6, 'clk', '0'], [12, 'clk', '1']]], ['#0', '0!', 'b0 \"', 'bx %', '#4', 'b11 \"', '#12', '1!']), ('return to initial value', [[['clk', '!', 1, '0'], ['bus', '\"', 4, '0000'], ['st', '%', 3, 'xxx']], [[2, 'clk', '1'], [9, 'clk', '0']]], ['#0', '0!', 'b0 \"', 'bx %', '#2', '1!', '#9', '0!']), ('redundant then real change at one time', [[['clk', '!', 1, '0'], ['bus', '\"', 4, '0000'], ['st', '%', 3, 'xxx']], [[5, 'bus', '0000'], [5, 'clk', '1'], [14, 'clk', '1'], [14, 'bus', '1000']]], ['#0', '0!', 'b0 \"', 'bx %', '#5', '1!', '#14', 'b1000 \"']), ('vector back to all zeros', [[['clk', '!', 1, '0'], ['bus', '\"', 4, '0000'], ['st', '%', 3, 'xxx']], [[1, 'bus', '0100'], [7, 'bus', '0000']]], ['#0', '0!', 'b0 \"', 'bx %', '#1', 'b100 \"', '#7', 'b0 \"']), ('short vector values', [[['clk', '!', 1, '0'], ['bus', '\"', 4, '0000'], ['st', '%', 3, 'xxx']], [[3, 'bus', '1'], [8, 'st', '1']]], ['#0', '0!', 'b0 \"', 'bx %', '#3', 'b1 \"', '#8', 'b1 %']), ('unknown left extension', [[['clk', '!', 1, '0'], ['bus', '\"', 4, '0000'], ['st', '%', 3, 'xxx']], [[4, 'st', 'xx1'], [5, 'st', 'zz0'], [11, 'st', 'xxx']]], ['#0', '0!', 'b0 \"', 'bx %', '#4', 'bx1 %', '#5', 'bz0 %', '#11', 'bx %'])]]\nfor label, args, expected in fixtures[N-1]:\n    check(label, solve(*args), expected)\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"},"fixed":{"sha256":"cde980ed572a2d7507687fa01f098b8b13db92d6bd1b0946cf9bd5d4a24d9ac0","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(*args):\n    sigs, samples = args\n    cur = {name: init for name, _, _, init in sigs}\n    ids = {name: (i, w) for name, i, w, _ in sigs}\n    def fmt(name, v):\n        i, w = ids[name]\n        if w == 1:\n            return v + i\n        s = v.lstrip('0') or '0'\n        if s[:1] in ('x', 'z'):\n            s = s[0] + s.lstrip(s[0])\n        return 'b' + s + ' ' + i\n    lines = ['#0'] + [fmt(name, init) for name, _, _, init in sigs]\n    last_t = 0\n    for t, name, v in samples:\n        if cur[name] == v:\n            continue\n        cur[name] = v\n        if t != last_t:\n            lines.append('#' + str(t))\n            last_t = t\n        lines.append(fmt(name, v))\n    return lines\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('clock toggles', [[['clk', '!', 1, '0'], ['bus', '\"', 4, '0000'], ['st', '%', 3, 'xxx']], [[5, 'clk', '1'], [10, 'clk', '0'], [11, 'clk', '1']]], ['#0', '0!', 'b0 \"', 'bx %', '#5', '1!', '#10', '0!', '#11', '1!']), ('redundant samples suppressed', [[['clk', '!', 1, '0'], ['bus', '\"', 4, '0000'], ['st', '%', 3, 'xxx']], [[3, 'bus', '0000'], [4, 'bus', '0011'], [6, 'clk', '0'], [8, 'clk', '1']]], ['#0', '0!', 'b0 \"', 'bx %', '#4', 'b11 \"', '#8', '1!']), ('return to initial value', [[['clk', '!', 1, '0'], ['bus', '\"', 4, '0000'], ['st', '%', 3, 'xxx']], [[2, 'clk', '1'], [5, 'clk', '0']]], ['#0', '0!', 'b0 \"', 'bx %', '#2', '1!', '#5', '0!']), ('redundant then real change at one time', [[['clk', '!', 1, '0'], ['bus', '\"', 4, '0000'], ['st', '%', 3, 'xxx']], [[5, 'bus', '0000'], [5, 'clk', '1'], [10, 'clk', '1'], [10, 'bus', '1000']]], ['#0', '0!', 'b0 \"', 'bx %', '#5', '1!', '#10', 'b1000 \"']), ('vector back to all zeros', [[['clk', '!', 1, '0'], ['bus', '\"', 4, '0000'], ['st', '%', 3, 'xxx']], [[1, 'bus', '0100'], [3, 'bus', '0000']]], ['#0', '0!', 'b0 \"', 'bx %', '#1', 'b100 \"', '#3', 'b0 \"']), ('short vector values', [[['clk', '!', 1, '0'], ['bus', '\"', 4, '0000'], ['st', '%', 3, 'xxx']], [[3, 'bus', '1'], [4, 'st', '1']]], ['#0', '0!', 'b0 \"', 'bx %', '#3', 'b1 \"', '#4', 'b1 %']), ('unknown left extension', [[['clk', '!', 1, '0'], ['bus', '\"', 4, '0000'], ['st', '%', 3, 'xxx']], [[4, 'st', 'xx1'], [5, 'st', 'zz0'], [7, 'st', 'xxx']]], ['#0', '0!', 'b0 \"', 'bx %', '#4', 'bx1 %', '#5', 'bz0 %', '#7', 'bx %'])], [('clock toggles', [[['clk', '!', 1, '0'], ['bus', '\"', 4, '0000'], ['st', '%', 3, 'xxx']], [[5, 'clk', '1'], [10, 'clk', '0'], [12, 'clk', '1']]], ['#0', '0!', 'b0 \"', 'bx %', '#5', '1!', '#10', '0!', '#12', '1!']), ('redundant samples suppressed', [[['clk', '!', 1, '0'], ['bus', '\"', 4, '0000'], ['st', '%', 3, 'xxx']], [[3, 'bus', '0000'], [4, 'bus', '0011'], [6, 'clk', '0'], [9, 'clk', '1']]], ['#0', '0!', 'b0 \"', 'bx %', '#4', 'b11 \"', '#9', '1!']), ('return to initial value', [[['clk', '!', 1, '0'], ['bus', '\"', 4, '0000'], ['st', '%', 3, 'xxx']], [[2, 'clk', '1'], [6, 'clk', '0']]], ['#0', '0!', 'b0 \"', 'bx %', '#2', '1!', '#6', '0!']), ('redundant then real change at one time', [[['clk', '!', 1, '0'], ['bus', '\"', 4, '0000'], ['st', '%', 3, 'xxx']], [[5, 'bus', '0000'], [5, 'clk', '1'], [11, 'clk', '1'], [11, 'bus', '1000']]], ['#0', '0!', 'b0 \"', 'bx %', '#5', '1!', '#11', 'b1000 \"']), ('vector back to all zeros', [[['clk', '!', 1, '0'], ['bus', '\"', 4, '0000'], ['st', '%', 3, 'xxx']], [[1, 'bus', '0100'], [4, 'bus', '0000']]], ['#0', '0!', 'b0 \"', 'bx %', '#1', 'b100 \"', '#4', 'b0 \"']), ('short vector values', [[['clk', '!', 1, '0'], ['bus', '\"', 4, '0000'], ['st', '%', 3, 'xxx']], [[3, 'bus', '1'], [5, 'st', '1']]], ['#0', '0!', 'b0 \"', 'bx %', '#3', 'b1 \"', '#5', 'b1 %']), ('unknown left extension', [[['clk', '!', 1, '0'], ['bus', '\"', 4, '0000'], ['st', '%', 3, 'xxx']], [[4, 'st', 'xx1'], [5, 'st', 'zz0'], [8, 'st', 'xxx']]], ['#0', '0!', 'b0 \"', 'bx %', '#4', 'bx1 %', '#5', 'bz0 %', '#8', 'bx %'])], [('clock toggles', [[['clk', '!', 1, '0'], ['bus', '\"', 4, '0000'], ['st', '%', 3, 'xxx']], [[5, 'clk', '1'], [10, 'clk', '0'], [13, 'clk', '1']]], ['#0', '0!', 'b0 \"', 'bx %', '#5', '1!', '#10', '0!', '#13', '1!']), ('redundant samples suppressed', [[['clk', '!', 1, '0'], ['bus', '\"', 4, '0000'], ['st', '%', 3, 'xxx']], [[3, 'bus', '0000'], [4, 'bus', '0011'], [6, 'clk', '0'], [10, 'clk', '1']]], ['#0', '0!', 'b0 \"', 'bx %', '#4', 'b11 \"', '#10', '1!']), ('return to initial value', [[['clk', '!', 1, '0'], ['bus', '\"', 4, '0000'], ['st', '%', 3, 'xxx']], [[2, 'clk', '1'], [7, 'clk', '0']]], ['#0', '0!', 'b0 \"', 'bx %', '#2', '1!', '#7', '0!']), ('redundant then real change at one time', [[['clk', '!', 1, '0'], ['bus', '\"', 4, '0000'], ['st', '%', 3, 'xxx']], [[5, 'bus', '0000'], [5, 'clk', '1'], [12, 'clk', '1'], [12, 'bus', '1000']]], ['#0', '0!', 'b0 \"', 'bx %', '#5', '1!', '#12', 'b1000 \"']), ('vector back to all zeros', [[['clk', '!', 1, '0'], ['bus', '\"', 4, '0000'], ['st', '%', 3, 'xxx']], [[1, 'bus', '0100'], [5, 'bus', '0000']]], ['#0', '0!', 'b0 \"', 'bx %', '#1', 'b100 \"', '#5', 'b0 \"']), ('short vector values', [[['clk', '!', 1, '0'], ['bus', '\"', 4, '0000'], ['st', '%', 3, 'xxx']], [[3, 'bus', '1'], [6, 'st', '1']]], ['#0', '0!', 'b0 \"', 'bx %', '#3', 'b1 \"', '#6', 'b1 %']), ('unknown left extension', [[['clk', '!', 1, '0'], ['bus', '\"', 4, '0000'], ['st', '%', 3, 'xxx']], [[4, 'st', 'xx1'], [5, 'st', 'zz0'], [9, 'st', 'xxx']]], ['#0', '0!', 'b0 \"', 'bx %', '#4', 'bx1 %', '#5', 'bz0 %', '#9', 'bx %'])], [('clock toggles', [[['clk', '!', 1, '0'], ['bus', '\"', 4, '0000'], ['st', '%', 3, 'xxx']], [[5, 'clk', '1'], [10, 'clk', '0'], [14, 'clk', '1']]], ['#0', '0!', 'b0 \"', 'bx %', '#5', '1!', '#10', '0!', '#14', '1!']), ('redundant samples suppressed', [[['clk', '!', 1, '0'], ['bus', '\"', 4, '0000'], ['st', '%', 3, 'xxx']], [[3, 'bus', '0000'], [4, 'bus', '0011'], [6, 'clk', '0'], [11, 'clk', '1']]], ['#0', '0!', 'b0 \"', 'bx %', '#4', 'b11 \"', '#11', '1!']), ('return to initial value', [[['clk', '!', 1, '0'], ['bus', '\"', 4, '0000'], ['st', '%', 3, 'xxx']], [[2, 'clk', '1'], [8, 'clk', '0']]], ['#0', '0!', 'b0 \"', 'bx %', '#2', '1!', '#8', '0!']), ('redundant then real change at one time', [[['clk', '!', 1, '0'], ['bus', '\"', 4, '0000'], ['st', '%', 3, 'xxx']], [[5, 'bus', '0000'], [5, 'clk', '1'], [13, 'clk', '1'], [13, 'bus', '1000']]], ['#0', '0!', 'b0 \"', 'bx %', '#5', '1!', '#13', 'b1000 \"']), ('vector back to all zeros', [[['clk', '!', 1, '0'], ['bus', '\"', 4, '0000'], ['st', '%', 3, 'xxx']], [[1, 'bus', '0100'], [6, 'bus', '0000']]], ['#0', '0!', 'b0 \"', 'bx %', '#1', 'b100 \"', '#6', 'b0 \"']), ('short vector values', [[['clk', '!', 1, '0'], ['bus', '\"', 4, '0000'], ['st', '%', 3, 'xxx']], [[3, 'bus', '1'], [7, 'st', '1']]], ['#0', '0!', 'b0 \"', 'bx %', '#3', 'b1 \"', '#7', 'b1 %']), ('unknown left extension', [[['clk', '!', 1, '0'], ['bus', '\"', 4, '0000'], ['st', '%', 3, 'xxx']], [[4, 'st', 'xx1'], [5, 'st', 'zz0'], [10, 'st', 'xxx']]], ['#0', '0!', 'b0 \"', 'bx %', '#4', 'bx1 %', '#5', 'bz0 %', '#10', 'bx %'])], [('clock toggles', [[['clk', '!', 1, '0'], ['bus', '\"', 4, '0000'], ['st', '%', 3, 'xxx']], [[5, 'clk', '1'], [10, 'clk', '0'], [15, 'clk', '1']]], ['#0', '0!', 'b0 \"', 'bx %', '#5', '1!', '#10', '0!', '#15', '1!']), ('redundant samples suppressed', [[['clk', '!', 1, '0'], ['bus', '\"', 4, '0000'], ['st', '%', 3, 'xxx']], [[3, 'bus', '0000'], [4, 'bus', '0011'], [6, 'clk', '0'], [12, 'clk', '1']]], ['#0', '0!', 'b0 \"', 'bx %', '#4', 'b11 \"', '#12', '1!']), ('return to initial value', [[['clk', '!', 1, '0'], ['bus', '\"', 4, '0000'], ['st', '%', 3, 'xxx']], [[2, 'clk', '1'], [9, 'clk', '0']]], ['#0', '0!', 'b0 \"', 'bx %', '#2', '1!', '#9', '0!']), ('redundant then real change at one time', [[['clk', '!', 1, '0'], ['bus', '\"', 4, '0000'], ['st', '%', 3, 'xxx']], [[5, 'bus', '0000'], [5, 'clk', '1'], [14, 'clk', '1'], [14, 'bus', '1000']]], ['#0', '0!', 'b0 \"', 'bx %', '#5', '1!', '#14', 'b1000 \"']), ('vector back to all zeros', [[['clk', '!', 1, '0'], ['bus', '\"', 4, '0000'], ['st', '%', 3, 'xxx']], [[1, 'bus', '0100'], [7, 'bus', '0000']]], ['#0', '0!', 'b0 \"', 'bx %', '#1', 'b100 \"', '#7', 'b0 \"']), ('short vector values', [[['clk', '!', 1, '0'], ['bus', '\"', 4, '0000'], ['st', '%', 3, 'xxx']], [[3, 'bus', '1'], [8, 'st', '1']]], ['#0', '0!', 'b0 \"', 'bx %', '#3', 'b1 \"', '#8', 'b1 %']), ('unknown left extension', [[['clk', '!', 1, '0'], ['bus', '\"', 4, '0000'], ['st', '%', 3, 'xxx']], [[4, 'st', 'xx1'], [5, 'st', 'zz0'], [11, 'st', 'xxx']]], ['#0', '0!', 'b0 \"', 'bx %', '#4', 'bx1 %', '#5', 'bz0 %', '#11', 'bx %'])]]\nfor label, args, expected in fixtures[N-1]:\n    check(label, solve(*args), expected)\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"}},"limitations":"A deterministic bounded teaching model of one simulator rule set; the contract is stipulated and is not a claim of conformance to any HDL standard or commercial simulator. This reproducer isolates one failure mechanism. Results cover the supplied fixtures. Variants within a family share a test contract and should remain grouped when constructing evaluation splits. Related mechanisms with a shared evaluation_group must also remain together; these controlled models are not independent production incidents.","method":"Deterministic executable model with adversarial boundary fixtures.","provenance":{"created_by":"Failure Map","dependencies":"Python standard library","family":"w2-digital-logic-simulation-vcd-writer-redundant-change-filter","generated_at":"2026-09-29T14:51:14.656459+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Waveform dumps are how simulator results are inspected; missing, duplicated or mis-extended changes mislead debugging.","repair":"Skip a sample whose value equals the signal's current value.","root_cause":"Samples are written without comparing against the current value of the signal.","sha256":"01e0d27c7caf6682f577054a0551b2cacdbe37454447272989b3d5e6a1491e65","title":"Unchanged samples written as value changes · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":41.413,"exit_code":1,"observations":[{"actual":["#0","0!","b0 \"","bx %","#5","1!","#11","1!"],"check":"clock toggles","expected":["#0","0!","b0 \"","bx %","#5","1!","#10","0!","#11","1!"],"passed":false},{"actual":["#0","0!","b0 \"","bx %","#4","b11 \"","#8","1!"],"check":"redundant samples suppressed","expected":["#0","0!","b0 \"","bx %","#4","b11 \"","#8","1!"],"passed":true},{"actual":["#0","0!","b0 \"","bx %","#2","1!"],"check":"return to initial value","expected":["#0","0!","b0 \"","bx %","#2","1!","#5","0!"],"passed":false},{"actual":["#0","0!","b0 \"","bx %","#5","1!","#10","1!","b1000 \""],"check":"redundant then real change at one time","expected":["#0","0!","b0 \"","bx %","#5","1!","#10","b1000 \""],"passed":false},{"actual":["#0","0!","b0 \"","bx %","#1","b100 \""],"check":"vector back to all zeros","expected":["#0","0!","b0 \"","bx %","#1","b100 \"","#3","b0 \""],"passed":false},{"actual":["#0","0!","b0 \"","bx %","#3","b1 \"","#4","b1 %"],"check":"short vector values","expected":["#0","0!","b0 \"","bx %","#3","b1 \"","#4","b1 %"],"passed":true},{"actual":["#0","0!","b0 \"","bx %","#4","bx1 %","#5","bz0 %"],"check":"unknown left extension","expected":["#0","0!","b0 \"","bx %","#4","bx1 %","#5","bz0 %","#7","bx %"],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"clock toggles\", \"actual\": [\"#0\", \"0!\", \"b0 \\\"\", \"bx %\", \"#5\", \"1!\", \"#11\", \"1!\"], \"expected\": [\"#0\", \"0!\", \"b0 \\\"\", \"bx %\", \"#5\", \"1!\", \"#10\", \"0!\", \"#11\", \"1!\"], \"passed\": false}, {\"check\": \"redundant samples suppressed\", \"actual\": [\"#0\", \"0!\", \"b0 \\\"\", \"bx %\", \"#4\", \"b11 \\\"\", \"#8\", \"1!\"], \"expected\": [\"#0\", \"0!\", \"b0 \\\"\", \"bx %\", \"#4\", \"b11 \\\"\", \"#8\", \"1!\"], \"passed\": true}, {\"check\": \"return to initial value\", \"actual\": [\"#0\", \"0!\", \"b0 \\\"\", \"bx %\", \"#2\", \"1!\"], \"expected\": [\"#0\", \"0!\", \"b0 \\\"\", \"bx %\", \"#2\", \"1!\", \"#5\", \"0!\"], \"passed\": false}, {\"check\": \"redundant then real change at one time\", \"actual\": [\"#0\", \"0!\", \"b0 \\\"\", \"bx %\", \"#5\", \"1!\", \"#10\", \"1!\", \"b1000 \\\"\"], \"expected\": [\"#0\", \"0!\", \"b0 \\\"\", \"bx %\", \"#5\", \"1!\", \"#10\", \"b1000 \\\"\"], \"passed\": false}, {\"check\": \"vector back to all zeros\", \"actual\": [\"#0\", \"0!\", \"b0 \\\"\", \"bx %\", \"#1\", \"b100 \\\"\"], \"expected\": [\"#0\", \"0!\", \"b0 \\\"\", \"bx %\", \"#1\", \"b100 \\\"\", \"#3\", \"b0 \\\"\"], \"passed\": false}, {\"check\": \"short vector values\", \"actual\": [\"#0\", \"0!\", \"b0 \\\"\", \"bx %\", \"#3\", \"b1 \\\"\", \"#4\", \"b1 %\"], \"expected\": [\"#0\", \"0!\", \"b0 \\\"\", \"bx %\", \"#3\", \"b1 \\\"\", \"#4\", \"b1 %\"], \"passed\": true}, {\"check\": \"unknown left extension\", \"actual\": [\"#0\", \"0!\", \"b0 \\\"\", \"bx %\", \"#4\", \"bx1 %\", \"#5\", \"bz0 %\"], \"expected\": [\"#0\", \"0!\", \"b0 \\\"\", \"bx %\", \"#4\", \"bx1 %\", \"#5\", \"bz0 %\", \"#7\", \"bx %\"], \"passed\": false}], \"passed\": false}\n"},"broken":{"elapsed_ms":43.395,"exit_code":1,"observations":[{"actual":["#0","0!","b0 \"","bx %","#5","1!","#10","0!","#11","1!"],"check":"clock toggles","expected":["#0","0!","b0 \"","bx %","#5","1!","#10","0!","#11","1!"],"passed":true},{"actual":["#0","0!","b0 \"","bx %","#3","b0 \"","#4","b11 \"","#6","0!","#8","1!"],"check":"redundant samples suppressed","expected":["#0","0!","b0 \"","bx %","#4","b11 \"","#8","1!"],"passed":false},{"actual":["#0","0!","b0 \"","bx %","#2","1!","#5","0!"],"check":"return to initial value","expected":["#0","0!","b0 \"","bx %","#2","1!","#5","0!"],"passed":true},{"actual":["#0","0!","b0 \"","bx %","#5","b0 \"","1!","#10","1!","b1000 \""],"check":"redundant then real change at one time","expected":["#0","0!","b0 \"","bx %","#5","1!","#10","b1000 \""],"passed":false},{"actual":["#0","0!","b0 \"","bx %","#1","b100 \"","#3","b0 \""],"check":"vector back to all zeros","expected":["#0","0!","b0 \"","bx %","#1","b100 \"","#3","b0 \""],"passed":true},{"actual":["#0","0!","b0 \"","bx %","#3","b1 \"","#4","b1 %"],"check":"short vector values","expected":["#0","0!","b0 \"","bx %","#3","b1 \"","#4","b1 %"],"passed":true},{"actual":["#0","0!","b0 \"","bx %","#4","bx1 %","#5","bz0 %","#7","bx %"],"check":"unknown left extension","expected":["#0","0!","b0 \"","bx %","#4","bx1 %","#5","bz0 %","#7","bx %"],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"clock toggles\", \"actual\": [\"#0\", \"0!\", \"b0 \\\"\", \"bx %\", \"#5\", \"1!\", \"#10\", \"0!\", \"#11\", \"1!\"], \"expected\": [\"#0\", \"0!\", \"b0 \\\"\", \"bx %\", \"#5\", \"1!\", \"#10\", \"0!\", \"#11\", \"1!\"], \"passed\": true}, {\"check\": \"redundant samples suppressed\", \"actual\": [\"#0\", \"0!\", \"b0 \\\"\", \"bx %\", \"#3\", \"b0 \\\"\", \"#4\", \"b11 \\\"\", \"#6\", \"0!\", \"#8\", \"1!\"], \"expected\": [\"#0\", \"0!\", \"b0 \\\"\", \"bx %\", \"#4\", \"b11 \\\"\", \"#8\", \"1!\"], \"passed\": false}, {\"check\": \"return to initial value\", \"actual\": [\"#0\", \"0!\", \"b0 \\\"\", \"bx %\", \"#2\", \"1!\", \"#5\", \"0!\"], \"expected\": [\"#0\", \"0!\", \"b0 \\\"\", \"bx %\", \"#2\", \"1!\", \"#5\", \"0!\"], \"passed\": true}, {\"check\": \"redundant then real change at one time\", \"actual\": [\"#0\", \"0!\", \"b0 \\\"\", \"bx %\", \"#5\", \"b0 \\\"\", \"1!\", \"#10\", \"1!\", \"b1000 \\\"\"], \"expected\": [\"#0\", \"0!\", \"b0 \\\"\", \"bx %\", \"#5\", \"1!\", \"#10\", \"b1000 \\\"\"], \"passed\": false}, {\"check\": \"vector back to all zeros\", \"actual\": [\"#0\", \"0!\", \"b0 \\\"\", \"bx %\", \"#1\", \"b100 \\\"\", \"#3\", \"b0 \\\"\"], \"expected\": [\"#0\", \"0!\", \"b0 \\\"\", \"bx %\", \"#1\", \"b100 \\\"\", \"#3\", \"b0 \\\"\"], \"passed\": true}, {\"check\": \"short vector values\", \"actual\": [\"#0\", \"0!\", \"b0 \\\"\", \"bx %\", \"#3\", \"b1 \\\"\", \"#4\", \"b1 %\"], \"expected\": [\"#0\", \"0!\", \"b0 \\\"\", \"bx %\", \"#3\", \"b1 \\\"\", \"#4\", \"b1 %\"], \"passed\": true}, {\"check\": \"unknown left extension\", \"actual\": [\"#0\", \"0!\", \"b0 \\\"\", \"bx %\", \"#4\", \"bx1 %\", \"#5\", \"bz0 %\", \"#7\", \"bx %\"], \"expected\": [\"#0\", \"0!\", \"b0 \\\"\", \"bx %\", \"#4\", \"bx1 %\", \"#5\", \"bz0 %\", \"#7\", \"bx %\"], \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":41.951,"exit_code":0,"observations":[{"actual":["#0","0!","b0 \"","bx %","#5","1!","#10","0!","#11","1!"],"check":"clock toggles","expected":["#0","0!","b0 \"","bx %","#5","1!","#10","0!","#11","1!"],"passed":true},{"actual":["#0","0!","b0 \"","bx %","#4","b11 \"","#8","1!"],"check":"redundant samples suppressed","expected":["#0","0!","b0 \"","bx %","#4","b11 \"","#8","1!"],"passed":true},{"actual":["#0","0!","b0 \"","bx %","#2","1!","#5","0!"],"check":"return to initial value","expected":["#0","0!","b0 \"","bx %","#2","1!","#5","0!"],"passed":true},{"actual":["#0","0!","b0 \"","bx %","#5","1!","#10","b1000 \""],"check":"redundant then real change at one time","expected":["#0","0!","b0 \"","bx %","#5","1!","#10","b1000 \""],"passed":true},{"actual":["#0","0!","b0 \"","bx %","#1","b100 \"","#3","b0 \""],"check":"vector back to all zeros","expected":["#0","0!","b0 \"","bx %","#1","b100 \"","#3","b0 \""],"passed":true},{"actual":["#0","0!","b0 \"","bx %","#3","b1 \"","#4","b1 %"],"check":"short vector values","expected":["#0","0!","b0 \"","bx %","#3","b1 \"","#4","b1 %"],"passed":true},{"actual":["#0","0!","b0 \"","bx %","#4","bx1 %","#5","bz0 %","#7","bx %"],"check":"unknown left extension","expected":["#0","0!","b0 \"","bx %","#4","bx1 %","#5","bz0 %","#7","bx %"],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"clock toggles\", \"actual\": [\"#0\", \"0!\", \"b0 \\\"\", \"bx %\", \"#5\", \"1!\", \"#10\", \"0!\", \"#11\", \"1!\"], \"expected\": [\"#0\", \"0!\", \"b0 \\\"\", \"bx %\", \"#5\", \"1!\", \"#10\", \"0!\", \"#11\", \"1!\"], \"passed\": true}, {\"check\": \"redundant samples suppressed\", \"actual\": [\"#0\", \"0!\", \"b0 \\\"\", \"bx %\", \"#4\", \"b11 \\\"\", \"#8\", \"1!\"], \"expected\": [\"#0\", \"0!\", \"b0 \\\"\", \"bx %\", \"#4\", \"b11 \\\"\", \"#8\", \"1!\"], \"passed\": true}, {\"check\": \"return to initial value\", \"actual\": [\"#0\", \"0!\", \"b0 \\\"\", \"bx %\", \"#2\", \"1!\", \"#5\", \"0!\"], \"expected\": [\"#0\", \"0!\", \"b0 \\\"\", \"bx %\", \"#2\", \"1!\", \"#5\", \"0!\"], \"passed\": true}, {\"check\": \"redundant then real change at one time\", \"actual\": [\"#0\", \"0!\", \"b0 \\\"\", \"bx %\", \"#5\", \"1!\", \"#10\", \"b1000 \\\"\"], \"expected\": [\"#0\", \"0!\", \"b0 \\\"\", \"bx %\", \"#5\", \"1!\", \"#10\", \"b1000 \\\"\"], \"passed\": true}, {\"check\": \"vector back to all zeros\", \"actual\": [\"#0\", \"0!\", \"b0 \\\"\", \"bx %\", \"#1\", \"b100 \\\"\", \"#3\", \"b0 \\\"\"], \"expected\": [\"#0\", \"0!\", \"b0 \\\"\", \"bx %\", \"#1\", \"b100 \\\"\", \"#3\", \"b0 \\\"\"], \"passed\": true}, {\"check\": \"short vector values\", \"actual\": [\"#0\", \"0!\", \"b0 \\\"\", \"bx %\", \"#3\", \"b1 \\\"\", \"#4\", \"b1 %\"], \"expected\": [\"#0\", \"0!\", \"b0 \\\"\", \"bx %\", \"#3\", \"b1 \\\"\", \"#4\", \"b1 %\"], \"passed\": true}, {\"check\": \"unknown left extension\", \"actual\": [\"#0\", \"0!\", \"b0 \\\"\", \"bx %\", \"#4\", \"bx1 %\", \"#5\", \"bz0 %\", \"#7\", \"bx %\"], \"expected\": [\"#0\", \"0!\", \"b0 \\\"\", \"bx %\", \"#4\", \"bx1 %\", \"#5\", \"bz0 %\", \"#7\", \"bx %\"], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}