{"abstract":"Descending loops run zero times or stop early.","category":"Bytecode virtual machines","checks":10,"contract":"Numeric for-loop preparation (Lua-style FORPREP/FORLOOP). A zero step is an error. With integer init and step, a float limit is floored for positive steps and ceiled for negative ones; the loop is skipped when init is already past the limit in the step direction; otherwise the iteration count (limit - init) // step is precomputed (for negative steps (init - limit) // -step) and the loop runs count + 1 times. Otherwise the loop uses floats and re-tests v <= limit (v >= limit for negative steps). Return at most the first 20 control values.","evaluation_group":"w2-bytecode-virtual-machines-numeric-for-loop","failed_approach":"Negating a floor division rounds the count up when the distance is not a multiple of the step.","family":"w2-bytecode-virtual-machines-numeric-for-loop-negative-step-count","id":"FA-90241","implementations":{"attempt":{"sha256":"cbcee84bc035a7a44ef46f40a695ac15cd97d93c7fba1259e37ebf966a6e19b1","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nN = 1\nobservations = []\ndef solve(init, limit, step):\n    if step == 0:\n        return 'error: for step is zero'\n    if isinstance(init, int) and isinstance(step, int):\n        if isinstance(limit, float):\n            limit = math.floor(limit) if step > 0 else math.ceil(limit)\n        if (step > 0 and init > limit) or (step < 0 and init < limit):\n            return []\n        count = (limit - init) // step if step > 0 else -((init - limit) // step)\n        out = []\n        v = init\n        for _ in range(min(count, 19) + 1):\n            out.append(v)\n            v += step\n        return out\n    out = []\n    v = float(init)\n    while (v <= limit if step > 0 else v >= limit) and len(out) < 20:\n        out.append(v)\n        v += step\n    return out\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncases = [[('regression: ascending integer loop', (1, 4, 1), [1, 2, 3, 4]),\n  ('descending loop with remainder', (11, 1, -3), [11, 8, 5, 2]),\n  ('descending loop with odd step', (7, 0, -2), [7, 5, 3, 1]),\n  ('float limit floors for ascending loops', (-5, -3.5, 1), [-5, -4]),\n  ('float limit ceils for descending loops', (6, 2.5, -1), [6, 5, 4, 3]),\n  ('init equal to limit runs once', (1, 1, 1), [1]),\n  ('descending init equal to limit runs once', (1, 1, -1), [1]),\n  ('long loop is capped at 20 values',\n   (0, 101, 1),\n   [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]),\n  ('float loop reaches its limit exactly', (1.0, 0.0, -0.25), [1.0, 0.75, 0.5, 0.25, 0.0]),\n  ('control: zero step', (1, 6, 0), 'error: for step is zero')],\n [('regression: ascending integer loop', (1, 5, 1), [1, 2, 3, 4, 5]),\n  ('descending loop with remainder', (12, 1, -3), [12, 9, 6, 3]),\n  ('descending loop with odd step', (7, 0, -2), [7, 5, 3, 1]),\n  ('float limit floors for ascending loops', (-5, -4.5, 1), [-5]),\n  ('float limit ceils for descending loops', (7, 2.5, -1), [7, 6, 5, 4, 3]),\n  ('init equal to limit runs once', (2, 2, 1), [2]),\n  ('descending init equal to limit runs once', (2, 2, -1), [2]),\n  ('long loop is capped at 20 values',\n   (0, 102, 1),\n   [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]),\n  ('float loop reaches its limit exactly', (1.0, 0.0, -0.25), [1.0, 0.75, 0.5, 0.25, 0.0]),\n  ('control: zero step', (1, 7, 0), 'error: for step is zero')],\n [('regression: ascending integer loop', (1, 6, 1), [1, 2, 3, 4, 5, 6]),\n  ('descending loop with remainder', (13, 1, -3), [13, 10, 7, 4, 1]),\n  ('descending loop with odd step', (7, 0, -2), [7, 5, 3, 1]),\n  ('float limit floors for ascending loops', (-5, -5.5, 1), []),\n  ('float limit ceils for descending loops', (8, 2.5, -1), [8, 7, 6, 5, 4, 3]),\n  ('init equal to limit runs once', (3, 3, 1), [3]),\n  ('descending init equal to limit runs once', (3, 3, -1), [3]),\n  ('long loop is capped at 20 values',\n   (0, 103, 1),\n   [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]),\n  ('float loop reaches its limit exactly', (1.0, 0.0, -0.25), [1.0, 0.75, 0.5, 0.25, 0.0]),\n  ('control: zero step', (1, 8, 0), 'error: for step is zero')],\n [('regression: ascending integer loop', (1, 7, 1), [1, 2, 3, 4, 5, 6, 7]),\n  ('descending loop with remainder', (14, 1, -3), [14, 11, 8, 5, 2]),\n  ('descending loop with odd step', (7, 0, -2), [7, 5, 3, 1]),\n  ('float limit floors for ascending loops', (-5, -6.5, 1), []),\n  ('float limit ceils for descending loops', (9, 2.5, -1), [9, 8, 7, 6, 5, 4, 3]),\n  ('init equal to limit runs once', (4, 4, 1), [4]),\n  ('descending init equal to limit runs once', (4, 4, -1), [4]),\n  ('long loop is capped at 20 values',\n   (0, 104, 1),\n   [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]),\n  ('float loop reaches its limit exactly', (1.0, 0.0, -0.25), [1.0, 0.75, 0.5, 0.25, 0.0]),\n  ('control: zero step', (1, 9, 0), 'error: for step is zero')],\n [('regression: ascending integer loop', (1, 8, 1), [1, 2, 3, 4, 5, 6, 7, 8]),\n  ('descending loop with remainder', (15, 1, -3), [15, 12, 9, 6, 3]),\n  ('descending loop with odd step', (7, 0, -2), [7, 5, 3, 1]),\n  ('float limit floors for ascending loops', (-5, -7.5, 1), []),\n  ('float limit ceils for descending loops', (10, 2.5, -1), [10, 9, 8, 7, 6, 5, 4, 3]),\n  ('init equal to limit runs once', (5, 5, 1), [5]),\n  ('descending init equal to limit runs once', (5, 5, -1), [5]),\n  ('long loop is capped at 20 values',\n   (0, 105, 1),\n   [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]),\n  ('float loop reaches its limit exactly', (1.0, 0.0, -0.25), [1.0, 0.75, 0.5, 0.25, 0.0]),\n  ('control: zero step', (1, 10, 0), 'error: for step is zero')]]\nfor label, args, expected in cases[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":"b3b88a6fc623342ca9871b354a6d8b06760f8a627bedbc98ad3ca5aa899420c0","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nN = 1\nobservations = []\ndef solve(init, limit, step):\n    if step == 0:\n        return 'error: for step is zero'\n    if isinstance(init, int) and isinstance(step, int):\n        if isinstance(limit, float):\n            limit = math.floor(limit) if step > 0 else math.ceil(limit)\n        if (step > 0 and init > limit) or (step < 0 and init < limit):\n            return []\n        count = (limit - init) // step if step > 0 else (init - limit) // step\n        out = []\n        v = init\n        for _ in range(min(count, 19) + 1):\n            out.append(v)\n            v += step\n        return out\n    out = []\n    v = float(init)\n    while (v <= limit if step > 0 else v >= limit) and len(out) < 20:\n        out.append(v)\n        v += step\n    return out\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncases = [[('regression: ascending integer loop', (1, 4, 1), [1, 2, 3, 4]),\n  ('descending loop with remainder', (11, 1, -3), [11, 8, 5, 2]),\n  ('descending loop with odd step', (7, 0, -2), [7, 5, 3, 1]),\n  ('float limit floors for ascending loops', (-5, -3.5, 1), [-5, -4]),\n  ('float limit ceils for descending loops', (6, 2.5, -1), [6, 5, 4, 3]),\n  ('init equal to limit runs once', (1, 1, 1), [1]),\n  ('descending init equal to limit runs once', (1, 1, -1), [1]),\n  ('long loop is capped at 20 values',\n   (0, 101, 1),\n   [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]),\n  ('float loop reaches its limit exactly', (1.0, 0.0, -0.25), [1.0, 0.75, 0.5, 0.25, 0.0]),\n  ('control: zero step', (1, 6, 0), 'error: for step is zero')],\n [('regression: ascending integer loop', (1, 5, 1), [1, 2, 3, 4, 5]),\n  ('descending loop with remainder', (12, 1, -3), [12, 9, 6, 3]),\n  ('descending loop with odd step', (7, 0, -2), [7, 5, 3, 1]),\n  ('float limit floors for ascending loops', (-5, -4.5, 1), [-5]),\n  ('float limit ceils for descending loops', (7, 2.5, -1), [7, 6, 5, 4, 3]),\n  ('init equal to limit runs once', (2, 2, 1), [2]),\n  ('descending init equal to limit runs once', (2, 2, -1), [2]),\n  ('long loop is capped at 20 values',\n   (0, 102, 1),\n   [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]),\n  ('float loop reaches its limit exactly', (1.0, 0.0, -0.25), [1.0, 0.75, 0.5, 0.25, 0.0]),\n  ('control: zero step', (1, 7, 0), 'error: for step is zero')],\n [('regression: ascending integer loop', (1, 6, 1), [1, 2, 3, 4, 5, 6]),\n  ('descending loop with remainder', (13, 1, -3), [13, 10, 7, 4, 1]),\n  ('descending loop with odd step', (7, 0, -2), [7, 5, 3, 1]),\n  ('float limit floors for ascending loops', (-5, -5.5, 1), []),\n  ('float limit ceils for descending loops', (8, 2.5, -1), [8, 7, 6, 5, 4, 3]),\n  ('init equal to limit runs once', (3, 3, 1), [3]),\n  ('descending init equal to limit runs once', (3, 3, -1), [3]),\n  ('long loop is capped at 20 values',\n   (0, 103, 1),\n   [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]),\n  ('float loop reaches its limit exactly', (1.0, 0.0, -0.25), [1.0, 0.75, 0.5, 0.25, 0.0]),\n  ('control: zero step', (1, 8, 0), 'error: for step is zero')],\n [('regression: ascending integer loop', (1, 7, 1), [1, 2, 3, 4, 5, 6, 7]),\n  ('descending loop with remainder', (14, 1, -3), [14, 11, 8, 5, 2]),\n  ('descending loop with odd step', (7, 0, -2), [7, 5, 3, 1]),\n  ('float limit floors for ascending loops', (-5, -6.5, 1), []),\n  ('float limit ceils for descending loops', (9, 2.5, -1), [9, 8, 7, 6, 5, 4, 3]),\n  ('init equal to limit runs once', (4, 4, 1), [4]),\n  ('descending init equal to limit runs once', (4, 4, -1), [4]),\n  ('long loop is capped at 20 values',\n   (0, 104, 1),\n   [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]),\n  ('float loop reaches its limit exactly', (1.0, 0.0, -0.25), [1.0, 0.75, 0.5, 0.25, 0.0]),\n  ('control: zero step', (1, 9, 0), 'error: for step is zero')],\n [('regression: ascending integer loop', (1, 8, 1), [1, 2, 3, 4, 5, 6, 7, 8]),\n  ('descending loop with remainder', (15, 1, -3), [15, 12, 9, 6, 3]),\n  ('descending loop with odd step', (7, 0, -2), [7, 5, 3, 1]),\n  ('float limit floors for ascending loops', (-5, -7.5, 1), []),\n  ('float limit ceils for descending loops', (10, 2.5, -1), [10, 9, 8, 7, 6, 5, 4, 3]),\n  ('init equal to limit runs once', (5, 5, 1), [5]),\n  ('descending init equal to limit runs once', (5, 5, -1), [5]),\n  ('long loop is capped at 20 values',\n   (0, 105, 1),\n   [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]),\n  ('float loop reaches its limit exactly', (1.0, 0.0, -0.25), [1.0, 0.75, 0.5, 0.25, 0.0]),\n  ('control: zero step', (1, 10, 0), 'error: for step is zero')]]\nfor label, args, expected in cases[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":"025d37bd763c993ce66d1815cc231af6f3cde19aff47017fe24a9ab0d290d0fd","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nN = 1\nobservations = []\ndef solve(init, limit, step):\n    if step == 0:\n        return 'error: for step is zero'\n    if isinstance(init, int) and isinstance(step, int):\n        if isinstance(limit, float):\n            limit = math.floor(limit) if step > 0 else math.ceil(limit)\n        if (step > 0 and init > limit) or (step < 0 and init < limit):\n            return []\n        count = (limit - init) // step if step > 0 else (init - limit) // (-step)\n        out = []\n        v = init\n        for _ in range(min(count, 19) + 1):\n            out.append(v)\n            v += step\n        return out\n    out = []\n    v = float(init)\n    while (v <= limit if step > 0 else v >= limit) and len(out) < 20:\n        out.append(v)\n        v += step\n    return out\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncases = [[('regression: ascending integer loop', (1, 4, 1), [1, 2, 3, 4]),\n  ('descending loop with remainder', (11, 1, -3), [11, 8, 5, 2]),\n  ('descending loop with odd step', (7, 0, -2), [7, 5, 3, 1]),\n  ('float limit floors for ascending loops', (-5, -3.5, 1), [-5, -4]),\n  ('float limit ceils for descending loops', (6, 2.5, -1), [6, 5, 4, 3]),\n  ('init equal to limit runs once', (1, 1, 1), [1]),\n  ('descending init equal to limit runs once', (1, 1, -1), [1]),\n  ('long loop is capped at 20 values',\n   (0, 101, 1),\n   [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]),\n  ('float loop reaches its limit exactly', (1.0, 0.0, -0.25), [1.0, 0.75, 0.5, 0.25, 0.0]),\n  ('control: zero step', (1, 6, 0), 'error: for step is zero')],\n [('regression: ascending integer loop', (1, 5, 1), [1, 2, 3, 4, 5]),\n  ('descending loop with remainder', (12, 1, -3), [12, 9, 6, 3]),\n  ('descending loop with odd step', (7, 0, -2), [7, 5, 3, 1]),\n  ('float limit floors for ascending loops', (-5, -4.5, 1), [-5]),\n  ('float limit ceils for descending loops', (7, 2.5, -1), [7, 6, 5, 4, 3]),\n  ('init equal to limit runs once', (2, 2, 1), [2]),\n  ('descending init equal to limit runs once', (2, 2, -1), [2]),\n  ('long loop is capped at 20 values',\n   (0, 102, 1),\n   [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]),\n  ('float loop reaches its limit exactly', (1.0, 0.0, -0.25), [1.0, 0.75, 0.5, 0.25, 0.0]),\n  ('control: zero step', (1, 7, 0), 'error: for step is zero')],\n [('regression: ascending integer loop', (1, 6, 1), [1, 2, 3, 4, 5, 6]),\n  ('descending loop with remainder', (13, 1, -3), [13, 10, 7, 4, 1]),\n  ('descending loop with odd step', (7, 0, -2), [7, 5, 3, 1]),\n  ('float limit floors for ascending loops', (-5, -5.5, 1), []),\n  ('float limit ceils for descending loops', (8, 2.5, -1), [8, 7, 6, 5, 4, 3]),\n  ('init equal to limit runs once', (3, 3, 1), [3]),\n  ('descending init equal to limit runs once', (3, 3, -1), [3]),\n  ('long loop is capped at 20 values',\n   (0, 103, 1),\n   [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]),\n  ('float loop reaches its limit exactly', (1.0, 0.0, -0.25), [1.0, 0.75, 0.5, 0.25, 0.0]),\n  ('control: zero step', (1, 8, 0), 'error: for step is zero')],\n [('regression: ascending integer loop', (1, 7, 1), [1, 2, 3, 4, 5, 6, 7]),\n  ('descending loop with remainder', (14, 1, -3), [14, 11, 8, 5, 2]),\n  ('descending loop with odd step', (7, 0, -2), [7, 5, 3, 1]),\n  ('float limit floors for ascending loops', (-5, -6.5, 1), []),\n  ('float limit ceils for descending loops', (9, 2.5, -1), [9, 8, 7, 6, 5, 4, 3]),\n  ('init equal to limit runs once', (4, 4, 1), [4]),\n  ('descending init equal to limit runs once', (4, 4, -1), [4]),\n  ('long loop is capped at 20 values',\n   (0, 104, 1),\n   [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]),\n  ('float loop reaches its limit exactly', (1.0, 0.0, -0.25), [1.0, 0.75, 0.5, 0.25, 0.0]),\n  ('control: zero step', (1, 9, 0), 'error: for step is zero')],\n [('regression: ascending integer loop', (1, 8, 1), [1, 2, 3, 4, 5, 6, 7, 8]),\n  ('descending loop with remainder', (15, 1, -3), [15, 12, 9, 6, 3]),\n  ('descending loop with odd step', (7, 0, -2), [7, 5, 3, 1]),\n  ('float limit floors for ascending loops', (-5, -7.5, 1), []),\n  ('float limit ceils for descending loops', (10, 2.5, -1), [10, 9, 8, 7, 6, 5, 4, 3]),\n  ('init equal to limit runs once', (5, 5, 1), [5]),\n  ('descending init equal to limit runs once', (5, 5, -1), [5]),\n  ('long loop is capped at 20 values',\n   (0, 105, 1),\n   [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]),\n  ('float loop reaches its limit exactly', (1.0, 0.0, -0.25), [1.0, 0.75, 0.5, 0.25, 0.0]),\n  ('control: zero step', (1, 10, 0), 'error: for step is zero')]]\nfor label, args, expected in cases[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 bytecode virtual machine mechanism with a stipulated instruction encoding; it is not a production VM and claims no conformance to any real specification. 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-bytecode-virtual-machines-numeric-for-loop-negative-step-count","generated_at":"2026-09-29T14:51:24.869213+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Loop-preparation opcodes must precompute counts exactly to avoid off-by-one and overflow bugs.","repair":"Divide the positive distance by the magnitude of the step.","root_cause":"The count for negative steps divides a positive distance by the negative step.","sha256":"fbbcda5d2f6dfcd42764750ada9c74a1dd383ee0e35693cc3f496ba2075b7694","title":"Numeric for loop: negative-step iteration count negative · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":39.212,"exit_code":1,"observations":[{"actual":[1,2,3,4],"check":"regression: ascending integer loop","expected":[1,2,3,4],"passed":true},{"actual":[11,8,5,2,-1],"check":"descending loop with remainder","expected":[11,8,5,2],"passed":false},{"actual":[7,5,3,1,-1],"check":"descending loop with odd step","expected":[7,5,3,1],"passed":false},{"actual":[-5,-4],"check":"float limit floors for ascending loops","expected":[-5,-4],"passed":true},{"actual":[6,5,4,3],"check":"float limit ceils for descending loops","expected":[6,5,4,3],"passed":true},{"actual":[1],"check":"init equal to limit runs once","expected":[1],"passed":true},{"actual":[1],"check":"descending init equal to limit runs once","expected":[1],"passed":true},{"actual":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],"check":"long loop is capped at 20 values","expected":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],"passed":true},{"actual":[1.0,0.75,0.5,0.25,0.0],"check":"float loop reaches its limit exactly","expected":[1.0,0.75,0.5,0.25,0.0],"passed":true},{"actual":"error: for step is zero","check":"control: zero step","expected":"error: for step is zero","passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: ascending integer loop\", \"actual\": [1, 2, 3, 4], \"expected\": [1, 2, 3, 4], \"passed\": true}, {\"check\": \"descending loop with remainder\", \"actual\": [11, 8, 5, 2, -1], \"expected\": [11, 8, 5, 2], \"passed\": false}, {\"check\": \"descending loop with odd step\", \"actual\": [7, 5, 3, 1, -1], \"expected\": [7, 5, 3, 1], \"passed\": false}, {\"check\": \"float limit floors for ascending loops\", \"actual\": [-5, -4], \"expected\": [-5, -4], \"passed\": true}, {\"check\": \"float limit ceils for descending loops\", \"actual\": [6, 5, 4, 3], \"expected\": [6, 5, 4, 3], \"passed\": true}, {\"check\": \"init equal to limit runs once\", \"actual\": [1], \"expected\": [1], \"passed\": true}, {\"check\": \"descending init equal to limit runs once\", \"actual\": [1], \"expected\": [1], \"passed\": true}, {\"check\": \"long loop is capped at 20 values\", \"actual\": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19], \"expected\": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19], \"passed\": true}, {\"check\": \"float loop reaches its limit exactly\", \"actual\": [1.0, 0.75, 0.5, 0.25, 0.0], \"expected\": [1.0, 0.75, 0.5, 0.25, 0.0], \"passed\": true}, {\"check\": \"control: zero step\", \"actual\": \"error: for step is zero\", \"expected\": \"error: for step is zero\", \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":38.487,"exit_code":1,"observations":[{"actual":[1,2,3,4],"check":"regression: ascending integer loop","expected":[1,2,3,4],"passed":true},{"actual":[],"check":"descending loop with remainder","expected":[11,8,5,2],"passed":false},{"actual":[],"check":"descending loop with odd step","expected":[7,5,3,1],"passed":false},{"actual":[-5,-4],"check":"float limit floors for ascending loops","expected":[-5,-4],"passed":true},{"actual":[],"check":"float limit ceils for descending loops","expected":[6,5,4,3],"passed":false},{"actual":[1],"check":"init equal to limit runs once","expected":[1],"passed":true},{"actual":[1],"check":"descending init equal to limit runs once","expected":[1],"passed":true},{"actual":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],"check":"long loop is capped at 20 values","expected":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],"passed":true},{"actual":[1.0,0.75,0.5,0.25,0.0],"check":"float loop reaches its limit exactly","expected":[1.0,0.75,0.5,0.25,0.0],"passed":true},{"actual":"error: for step is zero","check":"control: zero step","expected":"error: for step is zero","passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: ascending integer loop\", \"actual\": [1, 2, 3, 4], \"expected\": [1, 2, 3, 4], \"passed\": true}, {\"check\": \"descending loop with remainder\", \"actual\": [], \"expected\": [11, 8, 5, 2], \"passed\": false}, {\"check\": \"descending loop with odd step\", \"actual\": [], \"expected\": [7, 5, 3, 1], \"passed\": false}, {\"check\": \"float limit floors for ascending loops\", \"actual\": [-5, -4], \"expected\": [-5, -4], \"passed\": true}, {\"check\": \"float limit ceils for descending loops\", \"actual\": [], \"expected\": [6, 5, 4, 3], \"passed\": false}, {\"check\": \"init equal to limit runs once\", \"actual\": [1], \"expected\": [1], \"passed\": true}, {\"check\": \"descending init equal to limit runs once\", \"actual\": [1], \"expected\": [1], \"passed\": true}, {\"check\": \"long loop is capped at 20 values\", \"actual\": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19], \"expected\": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19], \"passed\": true}, {\"check\": \"float loop reaches its limit exactly\", \"actual\": [1.0, 0.75, 0.5, 0.25, 0.0], \"expected\": [1.0, 0.75, 0.5, 0.25, 0.0], \"passed\": true}, {\"check\": \"control: zero step\", \"actual\": \"error: for step is zero\", \"expected\": \"error: for step is zero\", \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":38.198,"exit_code":0,"observations":[{"actual":[1,2,3,4],"check":"regression: ascending integer loop","expected":[1,2,3,4],"passed":true},{"actual":[11,8,5,2],"check":"descending loop with remainder","expected":[11,8,5,2],"passed":true},{"actual":[7,5,3,1],"check":"descending loop with odd step","expected":[7,5,3,1],"passed":true},{"actual":[-5,-4],"check":"float limit floors for ascending loops","expected":[-5,-4],"passed":true},{"actual":[6,5,4,3],"check":"float limit ceils for descending loops","expected":[6,5,4,3],"passed":true},{"actual":[1],"check":"init equal to limit runs once","expected":[1],"passed":true},{"actual":[1],"check":"descending init equal to limit runs once","expected":[1],"passed":true},{"actual":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],"check":"long loop is capped at 20 values","expected":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19],"passed":true},{"actual":[1.0,0.75,0.5,0.25,0.0],"check":"float loop reaches its limit exactly","expected":[1.0,0.75,0.5,0.25,0.0],"passed":true},{"actual":"error: for step is zero","check":"control: zero step","expected":"error: for step is zero","passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: ascending integer loop\", \"actual\": [1, 2, 3, 4], \"expected\": [1, 2, 3, 4], \"passed\": true}, {\"check\": \"descending loop with remainder\", \"actual\": [11, 8, 5, 2], \"expected\": [11, 8, 5, 2], \"passed\": true}, {\"check\": \"descending loop with odd step\", \"actual\": [7, 5, 3, 1], \"expected\": [7, 5, 3, 1], \"passed\": true}, {\"check\": \"float limit floors for ascending loops\", \"actual\": [-5, -4], \"expected\": [-5, -4], \"passed\": true}, {\"check\": \"float limit ceils for descending loops\", \"actual\": [6, 5, 4, 3], \"expected\": [6, 5, 4, 3], \"passed\": true}, {\"check\": \"init equal to limit runs once\", \"actual\": [1], \"expected\": [1], \"passed\": true}, {\"check\": \"descending init equal to limit runs once\", \"actual\": [1], \"expected\": [1], \"passed\": true}, {\"check\": \"long loop is capped at 20 values\", \"actual\": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19], \"expected\": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19], \"passed\": true}, {\"check\": \"float loop reaches its limit exactly\", \"actual\": [1.0, 0.75, 0.5, 0.25, 0.0], \"expected\": [1.0, 0.75, 0.5, 0.25, 0.0], \"passed\": true}, {\"check\": \"control: zero step\", \"actual\": \"error: for step is zero\", \"expected\": \"error: for step is zero\", \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}