{"abstract":"Bodies sleep one frame late relative to the contract.","category":"Physics integrator stability","checks":8,"contract":"solve(v, omega, lin_damp, ang_damp, dt, max_speed, sleep_lin, sleep_ang, sleep_time, kicks): per frame, a sleeping body wakes (timer reset) only when that frame's kick is nonzero, else it is skipped. Add the kick [dvx,dvy,domega], damp with 1/(1+dt*c) (linear and angular coefficients), clamp speed magnitude, then accumulate sleep time while |v|<sleep_lin and |omega|<sleep_ang (else reset). When timer>=sleep_time the body sleeps and velocities are zeroed. Return [vx, vy, omega, timer, asleep, frame index slept or -1].","evaluation_group":"w2-physics_integrator_stability-damping-clamp-sleep","failed_approach":"Subtracting one frame from the requirement sleeps a frame early.","family":"w2-physics_integrator_stability-damping-clamp-sleep-sleep-time-threshold","id":"FA-87276","implementations":{"attempt":{"sha256":"6cc1481c85226d8966d1a1b807d17c5fb3c193ea00b3391b7e628a6320995941","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nN = 1\nobservations = []\ndef solve(v, omega, lin_damp, ang_damp, dt, max_speed, sleep_lin, sleep_ang, sleep_time, kicks):\n    vx, vy = v\n    w = omega\n    timer = 0.0\n    asleep = False\n    slept_at = -1\n    for f, (ax, ay, aw) in enumerate(kicks):\n        if asleep:\n            if ax or ay or aw:\n                asleep = False\n                timer = 0.0\n            else:\n                continue\n        vx += ax\n        vy += ay\n        w += aw\n        dl = 1.0 / (1.0 + dt * lin_damp)\n        vx *= dl\n        vy *= dl\n        w *= 1.0 / (1.0 + dt * ang_damp)\n        sp = math.hypot(vx, vy)\n        if sp > max_speed:\n            s = max_speed / sp\n            vx *= s\n            vy *= s\n        if math.hypot(vx, vy) < sleep_lin and abs(w) < sleep_ang:\n            timer += dt\n        else:\n            timer = 0.0\n        if timer >= sleep_time - dt:\n            asleep = True\n            slept_at = f\n            vx = vy = w = 0.0\n    return [round(vx, 6), round(vy, 6), round(w, 6), round(timer, 6), asleep, slept_at]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[[[[0.03, 0.06], 0.0, 2.0, 5.0, 0.0625, 8.0, 0.5, 0.3, 0.125, [[0, 0, 0], [0, 0, -1.5], [0, 0, 0], [0, 0, 1.5], [0, 0, 0], [0, 0, -1.5], [0, 0, 0]]], [0.013154, 0.026308, -0.658704, 0.0, False, -1]], [[[0.04, 0.03], 0.2, 2.0, 5.0, 0.015625, 3.0, 0.5, 1.0, 0.015625, [[0, 0, 0], [0, 0, 0], [0, -3, 0], [1, 0, 2], [0, 0, 0], [0, 0, 0], [0, 0, 0]]], [0.884187, -2.572181, 1.480313, 0.0, False, 0]], [[[0.07, -0.09], 0.0, 2.0, 0.5, 0.03125, 8.0, 0.5, 1.0, 0.09375, [[0, 0, -0.5], [0, 0, -0.5], [0, 0, 0], [0, 0, 0.5]]], [0.0, 0.0, 0.492308, 0.03125, False, 2]], [[[-0.01, -0.07], 0.0, 2.0, 0.5, 0.015625, 8.0, 0.5, 1.0, 0.03125, [[0, 0, 3.0], [0, 0, -3.0], [0, 0, 0], [0, 0, 3.0], [0, 0, -3.0], [0, 0, -3.0], [0, 0, 3.0]]], [0.0, 0.0, 0.000356, 0.015625, False, 2]], [[[-0.01, -0.04], 0.74, 20.0, 40.0, 0.0625, 8.0, 0.5, 1.0, 0.125, [[5, 0, 0.5], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [-2, -3, 0]]], [-0.888889, -1.333333, 0.0, 0.0, False, 3]], [[[2.14, -0.12], 1.88, 80.0, 0.5, 0.015625, 8.0, 0.5, 0.3, 0.03125, [[0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0]]], [0.007331, -0.000411, 1.780327, 0.0, False, -1]], [[[-0.02, 0.07], 0.0, 2.0, 5.0, 0.03125, 8.0, 0.5, 0.3, 0.0625, [[0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0.5], [0, 0, 0.5]]], [0.0, 0.0, 0.806428, 0.0, False, 1]], [[[-0.0, 0.04], -1.42, 0.5, 40.0, 0.0625, 8.0, 0.5, 1.0, 0.0625, [[0, 1, 0.5], [0, 0, 0.5], [-2, -3, -1], [0, 0, 0], [0, 1, -1]]], [-1.823636, -0.874067, -0.307458, 0.0, False, -1]]], [[[[0.01, -0.0], -0.96, 80.0, 5.0, 0.03125, 8.0, 2.0, 1.0, 0.0625, [[0, 8, 0.5], [0, 0, 0], [0, 0, 0]]], [0.0, 0.0, 0.0, 0.0625, True, 2]], [[[0.03, 0.01], 0.0, 2.0, 5.0, 0.0625, 8.0, 0.5, 1.0, 0.125, [[0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 3.0], [0, 0, 3.0], [0, 0, -3.0], [0, 0, 0], [0, 0, 0], [0, 0, 0]]], [0.0, 0.0, 0.0, 0.125, True, 6]], [[[-0.01, -0.02], -1.79, 2.0, 40.0, 0.015625, 3.0, 0.5, 0.3, 0.03125, [[0, 0, -1], [0, 0, 0], [5, 1, 2], [1, 8, 2], [1, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0]]], [1.68995, 2.044541, 0.140151, 0.0, False, -1]], [[[-2.24, -3.75], -1.0, 20.0, 0.5, 0.015625, 3.0, 2.0, 0.3, 0.046875, [[0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [-2, 0, 2], [1, 1, 0.5]]], [-0.57379, 0.469444, 1.532879, 0.0, False, -1]], [[[3.68, -0.77], 1.93, 2.0, 5.0, 0.0625, 8.0, 0.5, 0.3, 0.0625, [[0, 8, 2], [0, 1, 0], [0, 0, 0], [0, 0, 0], [1, 8, -1], [0, 8, 0.5], [-2, -3, 0], [0, 0, 0]]], [-0.8094, 3.903439, 0.330434, 0.0, False, -1]], [[[0.03, -0.02], -1.31, 80.0, 40.0, 0.0625, 8.0, 2.0, 0.3, 0.0625, [[0, 0, 0], [0, 0, 0], [0, 0, -1], [0, 0, 0]]], [0.0, 0.0, 0.0, 0.0625, True, 2]], [[[-0.04, -0.04], -1.97, 80.0, 0.5, 0.015625, 8.0, 0.5, 1.0, 0.046875, [[5, 1, 0], [0, 0, 0], [-2, 0, 0.5], [0, 0, 0], [0, 8, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [5, -3, 2]]], [2.218727, -1.193952, 0.621244, 0.0, False, -1]], [[[4.19, 1.85], -0.69, 80.0, 0.5, 0.015625, 8.0, 0.5, 1.0, 0.015625, [[0, 1, 0.5], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 1, 0.5], [-2, 1, -1]]], [-0.888889, 0.444444, -0.992248, 0.0, False, 4]]], [[[[-0.05, -0.07], 0.0, 2.0, 0.5, 0.015625, 8.0, 0.5, 0.3, 0.03125, [[0, 0, -0.5], [0, 0, 0], [0, 0, 0], [0, 0, 0.5], [0, 0, -0.5], [0, 0, 0], [0, 0, 0.5], [0, 0, 0]]], [0.0, 0.0, 0.0, 0.03125, True, 7]], [[[4.02, -0.48], -0.66, 2.0, 5.0, 0.03125, 3.0, 0.5, 1.0, 0.0625, [[0, 0, 0], [1, -3, 0.5], [0, 0, 0]]], [2.158391, -1.820348, -0.052966, 0.0, False, -1]], [[[0.04, 0.0], 1.58, 80.0, 5.0, 0.015625, 8.0, 2.0, 0.3, 0.046875, [[0, 0, 0], [0, 0, 0], [0, 0, 0], [0, -3, 0], [0, 0, 0], [1, 0, -1], [-2, 8, -1], [0, 0, 0], [5, 0, 2]]], [2.085685, 0.67921, 1.119786, 0.0, False, -1]], [[[0.18, 0.67], -0.31, 0.5, 5.0, 0.03125, 3.0, 2.0, 0.3, 0.0625, [[0, 0, 0], [0, 0, -1], [0, -3, 2], [0, 0, 0], [1, 1, -1], [0, 0, 0], [0, 0, 0], [0, 0, 0]]], [0.0, 0.0, 0.0, 0.0625, True, 5]], [[[0.09, -0.1], 0.0, 0.5, 0.5, 0.03125, 8.0, 0.5, 1.0, 0.0625, [[0, 0, 0], [0, 0, 1.5], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0]]], [0.082005, -0.091117, 1.388111, 0.0, False, -1]], [[[-4.16, 4.12], -1.07, 80.0, 40.0, 0.03125, 3.0, 0.5, 0.3, 0.0625, [[0, 0, 0], [0, 0, 2], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 1, -1], [0, 0, 0]]], [0.0, 0.081633, -0.197531, 0.03125, False, 4]], [[[0.04, -0.02], -1.17, 20.0, 5.0, 0.0625, 3.0, 0.5, 1.0, 0.125, [[0, 0, -1], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0]]], [0.0, 0.0, 0.0, 0.125, True, 3]], [[[0.01, -0.0], 0.7, 0.5, 0.5, 0.0625, 8.0, 2.0, 1.0, 0.1875, [[0, 0, 0], [0, 0, 0], [1, 8, 0.5], [5, -3, 2]]], [5.797639, 4.613407, 3.028481, 0.0, False, -1]]], [[[[-0.03, -0.0], 0.97, 2.0, 5.0, 0.015625, 8.0, 0.5, 1.0, 0.015625, [[0, 0, 0], [0, 0, 0], [0, 1, 0.5], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [5, 8, 0]]], [3.941435, 6.961687, 0.295315, 0.0, False, 0]], [[[3.82, 5.03], 0.39, 2.0, 5.0, 0.03125, 3.0, 2.0, 1.0, 0.03125, [[0, 0, 0], [0, 0, 0], [0, -3, 0], [0, 0, 0], [-2, -3, 0.5], [0, 0, 0]]], [-1.566212, -2.349318, 0.373996, 0.0, False, 2]], [[[-2.34, -1.3], 0.07, 80.0, 5.0, 0.0625, 8.0, 0.5, 0.3, 0.1875, [[0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0]]], [0.0, 0.0, 0.0, 0.1875, True, 2]], [[[-0.04, 0.1], 0.0, 0.5, 0.5, 0.015625, 8.0, 0.5, 0.3, 0.03125, [[0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, -1.5]]], [0.0, 0.0, -1.488372, 0.0, False, 1]], [[[-0.04, -0.04], 0.45, 20.0, 40.0, 0.0625, 3.0, 0.5, 0.3, 0.0625, [[0, 1, -1], [0, 0, 0], [0, 0, 0]]], [0.0, 0.0, 0.0, 0.0625, True, 0]], [[[5.83, 2.38], -1.72, 80.0, 5.0, 0.015625, 8.0, 0.5, 1.0, 0.03125, [[0, 0, 0], [0, 0, 0], [1, 0, 2]]], [0.956269, 0.208944, 0.482545, 0.0, False, -1]], [[[-0.05, -0.02], 1.89, 0.5, 40.0, 0.0625, 3.0, 2.0, 0.3, 0.1875, [[0, 0, 0], [5, 0, -1], [1, 1, -1], [0, 0, 0], [1, 0, 2]]], [2.951277, 0.538484, 0.54504, 0.0, False, -1]], [[[-0.01, 0.0], 0.0, 0.5, 0.5, 0.0625, 8.0, 0.5, 1.0, 0.125, [[0, 0, 1.5], [0, 0, -1.5], [0, 0, -1.5], [0, 0, 1.5], [0, 0, 1.5], [0, 0, 0], [0, 0, 0]]], [-0.008062, 0.0, 1.370126, 0.0, False, -1]]], [[[[0.03, -0.04], -1.19, 2.0, 5.0, 0.0625, 3.0, 0.5, 1.0, 0.0625, [[0, 0, 0], [0, 0, 0], [0, 0, 0], [5, -3, 2]]], [2.572479, -1.543487, 1.52381, 0.0, False, 0]], [[[-3.48, 1.74], 1.67, 20.0, 40.0, 0.0625, 3.0, 2.0, 1.0, 0.1875, [[1, -3, 0.5], [0, -3, 0.5], [0, 0, 0], [0, 0, 0], [0, 0, 0]]], [0.0, 0.0, 0.0, 0.1875, True, 2]], [[[0.45, -2.24], -0.91, 0.5, 0.5, 0.015625, 8.0, 2.0, 0.3, 0.046875, [[1, -3, 2], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [5, 0, 0], [0, 0, 0], [0, 0, 0], [5, 0, 0]]], [7.339549, -3.182927, 1.008391, 0.0, False, -1]], [[[0.04, 0.03], 0.6, 2.0, 0.5, 0.015625, 3.0, 2.0, 0.3, 0.015625, [[0, 0, 0], [0, 0, 0], [0, 1, -1], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0]]], [0.030324, 0.82896, -0.387568, 0.0, False, -1]], [[[-4.0, -0.28], -1.66, 20.0, 0.5, 0.0625, 8.0, 0.5, 1.0, 0.125, [[-2, 8, 2], [0, 0, 0], [-2, 0, 2], [0, 0, 0], [0, 0, 0]]], [-0.279632, 0.133877, 2.11515, 0.0, False, -1]], [[[-4.04, -5.1], 0.88, 80.0, 40.0, 0.0625, 8.0, 0.5, 1.0, 0.0625, [[0, 0, 0], [0, 0, 0], [0, 0, 0]]], [0.0, 0.0, 0.0, 0.0625, True, 1]], [[[0.02, 0.01], 0.18, 20.0, 40.0, 0.03125, 8.0, 2.0, 0.3, 0.0625, [[0, 0, 0], [0, 0, 0], [-2, -3, 2], [-2, 0, 2], [0, 0, 0], [0, 0, 0], [0, 8, 2]]], [-0.463332, 4.658316, 1.001609, 0.0, False, 1]], [[[0.05, -0.01], 0.0, 0.5, 0.5, 0.0625, 8.0, 0.5, 1.0, 0.1875, [[0, 0, 0.5], [0, 0, -0.5], [0, 0, -0.5], [0, 0, 0], [0, 0, 0]]], [0.0, 0.0, 0.0, 0.1875, True, 2]]]]\nfor i, (args, expected) in enumerate(fixtures[N-1]):\n    check(\"case %d\" % i, 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":"4e2650245a6d65be4ac1729b48a641211e4cdb89af67aa76d31340f01fbd605e","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nN = 1\nobservations = []\ndef solve(v, omega, lin_damp, ang_damp, dt, max_speed, sleep_lin, sleep_ang, sleep_time, kicks):\n    vx, vy = v\n    w = omega\n    timer = 0.0\n    asleep = False\n    slept_at = -1\n    for f, (ax, ay, aw) in enumerate(kicks):\n        if asleep:\n            if ax or ay or aw:\n                asleep = False\n                timer = 0.0\n            else:\n                continue\n        vx += ax\n        vy += ay\n        w += aw\n        dl = 1.0 / (1.0 + dt * lin_damp)\n        vx *= dl\n        vy *= dl\n        w *= 1.0 / (1.0 + dt * ang_damp)\n        sp = math.hypot(vx, vy)\n        if sp > max_speed:\n            s = max_speed / sp\n            vx *= s\n            vy *= s\n        if math.hypot(vx, vy) < sleep_lin and abs(w) < sleep_ang:\n            timer += dt\n        else:\n            timer = 0.0\n        if timer > sleep_time:\n            asleep = True\n            slept_at = f\n            vx = vy = w = 0.0\n    return [round(vx, 6), round(vy, 6), round(w, 6), round(timer, 6), asleep, slept_at]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[[[[0.03, 0.06], 0.0, 2.0, 5.0, 0.0625, 8.0, 0.5, 0.3, 0.125, [[0, 0, 0], [0, 0, -1.5], [0, 0, 0], [0, 0, 1.5], [0, 0, 0], [0, 0, -1.5], [0, 0, 0]]], [0.013154, 0.026308, -0.658704, 0.0, False, -1]], [[[0.04, 0.03], 0.2, 2.0, 5.0, 0.015625, 3.0, 0.5, 1.0, 0.015625, [[0, 0, 0], [0, 0, 0], [0, -3, 0], [1, 0, 2], [0, 0, 0], [0, 0, 0], [0, 0, 0]]], [0.884187, -2.572181, 1.480313, 0.0, False, 0]], [[[0.07, -0.09], 0.0, 2.0, 0.5, 0.03125, 8.0, 0.5, 1.0, 0.09375, [[0, 0, -0.5], [0, 0, -0.5], [0, 0, 0], [0, 0, 0.5]]], [0.0, 0.0, 0.492308, 0.03125, False, 2]], [[[-0.01, -0.07], 0.0, 2.0, 0.5, 0.015625, 8.0, 0.5, 1.0, 0.03125, [[0, 0, 3.0], [0, 0, -3.0], [0, 0, 0], [0, 0, 3.0], [0, 0, -3.0], [0, 0, -3.0], [0, 0, 3.0]]], [0.0, 0.0, 0.000356, 0.015625, False, 2]], [[[-0.01, -0.04], 0.74, 20.0, 40.0, 0.0625, 8.0, 0.5, 1.0, 0.125, [[5, 0, 0.5], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [-2, -3, 0]]], [-0.888889, -1.333333, 0.0, 0.0, False, 3]], [[[2.14, -0.12], 1.88, 80.0, 0.5, 0.015625, 8.0, 0.5, 0.3, 0.03125, [[0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0]]], [0.007331, -0.000411, 1.780327, 0.0, False, -1]], [[[-0.02, 0.07], 0.0, 2.0, 5.0, 0.03125, 8.0, 0.5, 0.3, 0.0625, [[0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0.5], [0, 0, 0.5]]], [0.0, 0.0, 0.806428, 0.0, False, 1]], [[[-0.0, 0.04], -1.42, 0.5, 40.0, 0.0625, 8.0, 0.5, 1.0, 0.0625, [[0, 1, 0.5], [0, 0, 0.5], [-2, -3, -1], [0, 0, 0], [0, 1, -1]]], [-1.823636, -0.874067, -0.307458, 0.0, False, -1]]], [[[[0.01, -0.0], -0.96, 80.0, 5.0, 0.03125, 8.0, 2.0, 1.0, 0.0625, [[0, 8, 0.5], [0, 0, 0], [0, 0, 0]]], [0.0, 0.0, 0.0, 0.0625, True, 2]], [[[0.03, 0.01], 0.0, 2.0, 5.0, 0.0625, 8.0, 0.5, 1.0, 0.125, [[0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 3.0], [0, 0, 3.0], [0, 0, -3.0], [0, 0, 0], [0, 0, 0], [0, 0, 0]]], [0.0, 0.0, 0.0, 0.125, True, 6]], [[[-0.01, -0.02], -1.79, 2.0, 40.0, 0.015625, 3.0, 0.5, 0.3, 0.03125, [[0, 0, -1], [0, 0, 0], [5, 1, 2], [1, 8, 2], [1, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0]]], [1.68995, 2.044541, 0.140151, 0.0, False, -1]], [[[-2.24, -3.75], -1.0, 20.0, 0.5, 0.015625, 3.0, 2.0, 0.3, 0.046875, [[0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [-2, 0, 2], [1, 1, 0.5]]], [-0.57379, 0.469444, 1.532879, 0.0, False, -1]], [[[3.68, -0.77], 1.93, 2.0, 5.0, 0.0625, 8.0, 0.5, 0.3, 0.0625, [[0, 8, 2], [0, 1, 0], [0, 0, 0], [0, 0, 0], [1, 8, -1], [0, 8, 0.5], [-2, -3, 0], [0, 0, 0]]], [-0.8094, 3.903439, 0.330434, 0.0, False, -1]], [[[0.03, -0.02], -1.31, 80.0, 40.0, 0.0625, 8.0, 2.0, 0.3, 0.0625, [[0, 0, 0], [0, 0, 0], [0, 0, -1], [0, 0, 0]]], [0.0, 0.0, 0.0, 0.0625, True, 2]], [[[-0.04, -0.04], -1.97, 80.0, 0.5, 0.015625, 8.0, 0.5, 1.0, 0.046875, [[5, 1, 0], [0, 0, 0], [-2, 0, 0.5], [0, 0, 0], [0, 8, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [5, -3, 2]]], [2.218727, -1.193952, 0.621244, 0.0, False, -1]], [[[4.19, 1.85], -0.69, 80.0, 0.5, 0.015625, 8.0, 0.5, 1.0, 0.015625, [[0, 1, 0.5], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 1, 0.5], [-2, 1, -1]]], [-0.888889, 0.444444, -0.992248, 0.0, False, 4]]], [[[[-0.05, -0.07], 0.0, 2.0, 0.5, 0.015625, 8.0, 0.5, 0.3, 0.03125, [[0, 0, -0.5], [0, 0, 0], [0, 0, 0], [0, 0, 0.5], [0, 0, -0.5], [0, 0, 0], [0, 0, 0.5], [0, 0, 0]]], [0.0, 0.0, 0.0, 0.03125, True, 7]], [[[4.02, -0.48], -0.66, 2.0, 5.0, 0.03125, 3.0, 0.5, 1.0, 0.0625, [[0, 0, 0], [1, -3, 0.5], [0, 0, 0]]], [2.158391, -1.820348, -0.052966, 0.0, False, -1]], [[[0.04, 0.0], 1.58, 80.0, 5.0, 0.015625, 8.0, 2.0, 0.3, 0.046875, [[0, 0, 0], [0, 0, 0], [0, 0, 0], [0, -3, 0], [0, 0, 0], [1, 0, -1], [-2, 8, -1], [0, 0, 0], [5, 0, 2]]], [2.085685, 0.67921, 1.119786, 0.0, False, -1]], [[[0.18, 0.67], -0.31, 0.5, 5.0, 0.03125, 3.0, 2.0, 0.3, 0.0625, [[0, 0, 0], [0, 0, -1], [0, -3, 2], [0, 0, 0], [1, 1, -1], [0, 0, 0], [0, 0, 0], [0, 0, 0]]], [0.0, 0.0, 0.0, 0.0625, True, 5]], [[[0.09, -0.1], 0.0, 0.5, 0.5, 0.03125, 8.0, 0.5, 1.0, 0.0625, [[0, 0, 0], [0, 0, 1.5], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0]]], [0.082005, -0.091117, 1.388111, 0.0, False, -1]], [[[-4.16, 4.12], -1.07, 80.0, 40.0, 0.03125, 3.0, 0.5, 0.3, 0.0625, [[0, 0, 0], [0, 0, 2], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 1, -1], [0, 0, 0]]], [0.0, 0.081633, -0.197531, 0.03125, False, 4]], [[[0.04, -0.02], -1.17, 20.0, 5.0, 0.0625, 3.0, 0.5, 1.0, 0.125, [[0, 0, -1], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0]]], [0.0, 0.0, 0.0, 0.125, True, 3]], [[[0.01, -0.0], 0.7, 0.5, 0.5, 0.0625, 8.0, 2.0, 1.0, 0.1875, [[0, 0, 0], [0, 0, 0], [1, 8, 0.5], [5, -3, 2]]], [5.797639, 4.613407, 3.028481, 0.0, False, -1]]], [[[[-0.03, -0.0], 0.97, 2.0, 5.0, 0.015625, 8.0, 0.5, 1.0, 0.015625, [[0, 0, 0], [0, 0, 0], [0, 1, 0.5], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [5, 8, 0]]], [3.941435, 6.961687, 0.295315, 0.0, False, 0]], [[[3.82, 5.03], 0.39, 2.0, 5.0, 0.03125, 3.0, 2.0, 1.0, 0.03125, [[0, 0, 0], [0, 0, 0], [0, -3, 0], [0, 0, 0], [-2, -3, 0.5], [0, 0, 0]]], [-1.566212, -2.349318, 0.373996, 0.0, False, 2]], [[[-2.34, -1.3], 0.07, 80.0, 5.0, 0.0625, 8.0, 0.5, 0.3, 0.1875, [[0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0]]], [0.0, 0.0, 0.0, 0.1875, True, 2]], [[[-0.04, 0.1], 0.0, 0.5, 0.5, 0.015625, 8.0, 0.5, 0.3, 0.03125, [[0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, -1.5]]], [0.0, 0.0, -1.488372, 0.0, False, 1]], [[[-0.04, -0.04], 0.45, 20.0, 40.0, 0.0625, 3.0, 0.5, 0.3, 0.0625, [[0, 1, -1], [0, 0, 0], [0, 0, 0]]], [0.0, 0.0, 0.0, 0.0625, True, 0]], [[[5.83, 2.38], -1.72, 80.0, 5.0, 0.015625, 8.0, 0.5, 1.0, 0.03125, [[0, 0, 0], [0, 0, 0], [1, 0, 2]]], [0.956269, 0.208944, 0.482545, 0.0, False, -1]], [[[-0.05, -0.02], 1.89, 0.5, 40.0, 0.0625, 3.0, 2.0, 0.3, 0.1875, [[0, 0, 0], [5, 0, -1], [1, 1, -1], [0, 0, 0], [1, 0, 2]]], [2.951277, 0.538484, 0.54504, 0.0, False, -1]], [[[-0.01, 0.0], 0.0, 0.5, 0.5, 0.0625, 8.0, 0.5, 1.0, 0.125, [[0, 0, 1.5], [0, 0, -1.5], [0, 0, -1.5], [0, 0, 1.5], [0, 0, 1.5], [0, 0, 0], [0, 0, 0]]], [-0.008062, 0.0, 1.370126, 0.0, False, -1]]], [[[[0.03, -0.04], -1.19, 2.0, 5.0, 0.0625, 3.0, 0.5, 1.0, 0.0625, [[0, 0, 0], [0, 0, 0], [0, 0, 0], [5, -3, 2]]], [2.572479, -1.543487, 1.52381, 0.0, False, 0]], [[[-3.48, 1.74], 1.67, 20.0, 40.0, 0.0625, 3.0, 2.0, 1.0, 0.1875, [[1, -3, 0.5], [0, -3, 0.5], [0, 0, 0], [0, 0, 0], [0, 0, 0]]], [0.0, 0.0, 0.0, 0.1875, True, 2]], [[[0.45, -2.24], -0.91, 0.5, 0.5, 0.015625, 8.0, 2.0, 0.3, 0.046875, [[1, -3, 2], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [5, 0, 0], [0, 0, 0], [0, 0, 0], [5, 0, 0]]], [7.339549, -3.182927, 1.008391, 0.0, False, -1]], [[[0.04, 0.03], 0.6, 2.0, 0.5, 0.015625, 3.0, 2.0, 0.3, 0.015625, [[0, 0, 0], [0, 0, 0], [0, 1, -1], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0]]], [0.030324, 0.82896, -0.387568, 0.0, False, -1]], [[[-4.0, -0.28], -1.66, 20.0, 0.5, 0.0625, 8.0, 0.5, 1.0, 0.125, [[-2, 8, 2], [0, 0, 0], [-2, 0, 2], [0, 0, 0], [0, 0, 0]]], [-0.279632, 0.133877, 2.11515, 0.0, False, -1]], [[[-4.04, -5.1], 0.88, 80.0, 40.0, 0.0625, 8.0, 0.5, 1.0, 0.0625, [[0, 0, 0], [0, 0, 0], [0, 0, 0]]], [0.0, 0.0, 0.0, 0.0625, True, 1]], [[[0.02, 0.01], 0.18, 20.0, 40.0, 0.03125, 8.0, 2.0, 0.3, 0.0625, [[0, 0, 0], [0, 0, 0], [-2, -3, 2], [-2, 0, 2], [0, 0, 0], [0, 0, 0], [0, 8, 2]]], [-0.463332, 4.658316, 1.001609, 0.0, False, 1]], [[[0.05, -0.01], 0.0, 0.5, 0.5, 0.0625, 8.0, 0.5, 1.0, 0.1875, [[0, 0, 0.5], [0, 0, -0.5], [0, 0, -0.5], [0, 0, 0], [0, 0, 0]]], [0.0, 0.0, 0.0, 0.1875, True, 2]]]]\nfor i, (args, expected) in enumerate(fixtures[N-1]):\n    check(\"case %d\" % i, 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":"52202281c58bf4552dc5acb95238e86ebc2aa5f3063690854272f327382e64e5","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nN = 1\nobservations = []\ndef solve(v, omega, lin_damp, ang_damp, dt, max_speed, sleep_lin, sleep_ang, sleep_time, kicks):\n    vx, vy = v\n    w = omega\n    timer = 0.0\n    asleep = False\n    slept_at = -1\n    for f, (ax, ay, aw) in enumerate(kicks):\n        if asleep:\n            if ax or ay or aw:\n                asleep = False\n                timer = 0.0\n            else:\n                continue\n        vx += ax\n        vy += ay\n        w += aw\n        dl = 1.0 / (1.0 + dt * lin_damp)\n        vx *= dl\n        vy *= dl\n        w *= 1.0 / (1.0 + dt * ang_damp)\n        sp = math.hypot(vx, vy)\n        if sp > max_speed:\n            s = max_speed / sp\n            vx *= s\n            vy *= s\n        if math.hypot(vx, vy) < sleep_lin and abs(w) < sleep_ang:\n            timer += dt\n        else:\n            timer = 0.0\n        if timer >= sleep_time:\n            asleep = True\n            slept_at = f\n            vx = vy = w = 0.0\n    return [round(vx, 6), round(vy, 6), round(w, 6), round(timer, 6), asleep, slept_at]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[[[[0.03, 0.06], 0.0, 2.0, 5.0, 0.0625, 8.0, 0.5, 0.3, 0.125, [[0, 0, 0], [0, 0, -1.5], [0, 0, 0], [0, 0, 1.5], [0, 0, 0], [0, 0, -1.5], [0, 0, 0]]], [0.013154, 0.026308, -0.658704, 0.0, False, -1]], [[[0.04, 0.03], 0.2, 2.0, 5.0, 0.015625, 3.0, 0.5, 1.0, 0.015625, [[0, 0, 0], [0, 0, 0], [0, -3, 0], [1, 0, 2], [0, 0, 0], [0, 0, 0], [0, 0, 0]]], [0.884187, -2.572181, 1.480313, 0.0, False, 0]], [[[0.07, -0.09], 0.0, 2.0, 0.5, 0.03125, 8.0, 0.5, 1.0, 0.09375, [[0, 0, -0.5], [0, 0, -0.5], [0, 0, 0], [0, 0, 0.5]]], [0.0, 0.0, 0.492308, 0.03125, False, 2]], [[[-0.01, -0.07], 0.0, 2.0, 0.5, 0.015625, 8.0, 0.5, 1.0, 0.03125, [[0, 0, 3.0], [0, 0, -3.0], [0, 0, 0], [0, 0, 3.0], [0, 0, -3.0], [0, 0, -3.0], [0, 0, 3.0]]], [0.0, 0.0, 0.000356, 0.015625, False, 2]], [[[-0.01, -0.04], 0.74, 20.0, 40.0, 0.0625, 8.0, 0.5, 1.0, 0.125, [[5, 0, 0.5], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [-2, -3, 0]]], [-0.888889, -1.333333, 0.0, 0.0, False, 3]], [[[2.14, -0.12], 1.88, 80.0, 0.5, 0.015625, 8.0, 0.5, 0.3, 0.03125, [[0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0]]], [0.007331, -0.000411, 1.780327, 0.0, False, -1]], [[[-0.02, 0.07], 0.0, 2.0, 5.0, 0.03125, 8.0, 0.5, 0.3, 0.0625, [[0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0.5], [0, 0, 0.5]]], [0.0, 0.0, 0.806428, 0.0, False, 1]], [[[-0.0, 0.04], -1.42, 0.5, 40.0, 0.0625, 8.0, 0.5, 1.0, 0.0625, [[0, 1, 0.5], [0, 0, 0.5], [-2, -3, -1], [0, 0, 0], [0, 1, -1]]], [-1.823636, -0.874067, -0.307458, 0.0, False, -1]]], [[[[0.01, -0.0], -0.96, 80.0, 5.0, 0.03125, 8.0, 2.0, 1.0, 0.0625, [[0, 8, 0.5], [0, 0, 0], [0, 0, 0]]], [0.0, 0.0, 0.0, 0.0625, True, 2]], [[[0.03, 0.01], 0.0, 2.0, 5.0, 0.0625, 8.0, 0.5, 1.0, 0.125, [[0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 3.0], [0, 0, 3.0], [0, 0, -3.0], [0, 0, 0], [0, 0, 0], [0, 0, 0]]], [0.0, 0.0, 0.0, 0.125, True, 6]], [[[-0.01, -0.02], -1.79, 2.0, 40.0, 0.015625, 3.0, 0.5, 0.3, 0.03125, [[0, 0, -1], [0, 0, 0], [5, 1, 2], [1, 8, 2], [1, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0]]], [1.68995, 2.044541, 0.140151, 0.0, False, -1]], [[[-2.24, -3.75], -1.0, 20.0, 0.5, 0.015625, 3.0, 2.0, 0.3, 0.046875, [[0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [-2, 0, 2], [1, 1, 0.5]]], [-0.57379, 0.469444, 1.532879, 0.0, False, -1]], [[[3.68, -0.77], 1.93, 2.0, 5.0, 0.0625, 8.0, 0.5, 0.3, 0.0625, [[0, 8, 2], [0, 1, 0], [0, 0, 0], [0, 0, 0], [1, 8, -1], [0, 8, 0.5], [-2, -3, 0], [0, 0, 0]]], [-0.8094, 3.903439, 0.330434, 0.0, False, -1]], [[[0.03, -0.02], -1.31, 80.0, 40.0, 0.0625, 8.0, 2.0, 0.3, 0.0625, [[0, 0, 0], [0, 0, 0], [0, 0, -1], [0, 0, 0]]], [0.0, 0.0, 0.0, 0.0625, True, 2]], [[[-0.04, -0.04], -1.97, 80.0, 0.5, 0.015625, 8.0, 0.5, 1.0, 0.046875, [[5, 1, 0], [0, 0, 0], [-2, 0, 0.5], [0, 0, 0], [0, 8, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [5, -3, 2]]], [2.218727, -1.193952, 0.621244, 0.0, False, -1]], [[[4.19, 1.85], -0.69, 80.0, 0.5, 0.015625, 8.0, 0.5, 1.0, 0.015625, [[0, 1, 0.5], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 1, 0.5], [-2, 1, -1]]], [-0.888889, 0.444444, -0.992248, 0.0, False, 4]]], [[[[-0.05, -0.07], 0.0, 2.0, 0.5, 0.015625, 8.0, 0.5, 0.3, 0.03125, [[0, 0, -0.5], [0, 0, 0], [0, 0, 0], [0, 0, 0.5], [0, 0, -0.5], [0, 0, 0], [0, 0, 0.5], [0, 0, 0]]], [0.0, 0.0, 0.0, 0.03125, True, 7]], [[[4.02, -0.48], -0.66, 2.0, 5.0, 0.03125, 3.0, 0.5, 1.0, 0.0625, [[0, 0, 0], [1, -3, 0.5], [0, 0, 0]]], [2.158391, -1.820348, -0.052966, 0.0, False, -1]], [[[0.04, 0.0], 1.58, 80.0, 5.0, 0.015625, 8.0, 2.0, 0.3, 0.046875, [[0, 0, 0], [0, 0, 0], [0, 0, 0], [0, -3, 0], [0, 0, 0], [1, 0, -1], [-2, 8, -1], [0, 0, 0], [5, 0, 2]]], [2.085685, 0.67921, 1.119786, 0.0, False, -1]], [[[0.18, 0.67], -0.31, 0.5, 5.0, 0.03125, 3.0, 2.0, 0.3, 0.0625, [[0, 0, 0], [0, 0, -1], [0, -3, 2], [0, 0, 0], [1, 1, -1], [0, 0, 0], [0, 0, 0], [0, 0, 0]]], [0.0, 0.0, 0.0, 0.0625, True, 5]], [[[0.09, -0.1], 0.0, 0.5, 0.5, 0.03125, 8.0, 0.5, 1.0, 0.0625, [[0, 0, 0], [0, 0, 1.5], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0]]], [0.082005, -0.091117, 1.388111, 0.0, False, -1]], [[[-4.16, 4.12], -1.07, 80.0, 40.0, 0.03125, 3.0, 0.5, 0.3, 0.0625, [[0, 0, 0], [0, 0, 2], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 1, -1], [0, 0, 0]]], [0.0, 0.081633, -0.197531, 0.03125, False, 4]], [[[0.04, -0.02], -1.17, 20.0, 5.0, 0.0625, 3.0, 0.5, 1.0, 0.125, [[0, 0, -1], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0]]], [0.0, 0.0, 0.0, 0.125, True, 3]], [[[0.01, -0.0], 0.7, 0.5, 0.5, 0.0625, 8.0, 2.0, 1.0, 0.1875, [[0, 0, 0], [0, 0, 0], [1, 8, 0.5], [5, -3, 2]]], [5.797639, 4.613407, 3.028481, 0.0, False, -1]]], [[[[-0.03, -0.0], 0.97, 2.0, 5.0, 0.015625, 8.0, 0.5, 1.0, 0.015625, [[0, 0, 0], [0, 0, 0], [0, 1, 0.5], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [5, 8, 0]]], [3.941435, 6.961687, 0.295315, 0.0, False, 0]], [[[3.82, 5.03], 0.39, 2.0, 5.0, 0.03125, 3.0, 2.0, 1.0, 0.03125, [[0, 0, 0], [0, 0, 0], [0, -3, 0], [0, 0, 0], [-2, -3, 0.5], [0, 0, 0]]], [-1.566212, -2.349318, 0.373996, 0.0, False, 2]], [[[-2.34, -1.3], 0.07, 80.0, 5.0, 0.0625, 8.0, 0.5, 0.3, 0.1875, [[0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0]]], [0.0, 0.0, 0.0, 0.1875, True, 2]], [[[-0.04, 0.1], 0.0, 0.5, 0.5, 0.015625, 8.0, 0.5, 0.3, 0.03125, [[0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, -1.5]]], [0.0, 0.0, -1.488372, 0.0, False, 1]], [[[-0.04, -0.04], 0.45, 20.0, 40.0, 0.0625, 3.0, 0.5, 0.3, 0.0625, [[0, 1, -1], [0, 0, 0], [0, 0, 0]]], [0.0, 0.0, 0.0, 0.0625, True, 0]], [[[5.83, 2.38], -1.72, 80.0, 5.0, 0.015625, 8.0, 0.5, 1.0, 0.03125, [[0, 0, 0], [0, 0, 0], [1, 0, 2]]], [0.956269, 0.208944, 0.482545, 0.0, False, -1]], [[[-0.05, -0.02], 1.89, 0.5, 40.0, 0.0625, 3.0, 2.0, 0.3, 0.1875, [[0, 0, 0], [5, 0, -1], [1, 1, -1], [0, 0, 0], [1, 0, 2]]], [2.951277, 0.538484, 0.54504, 0.0, False, -1]], [[[-0.01, 0.0], 0.0, 0.5, 0.5, 0.0625, 8.0, 0.5, 1.0, 0.125, [[0, 0, 1.5], [0, 0, -1.5], [0, 0, -1.5], [0, 0, 1.5], [0, 0, 1.5], [0, 0, 0], [0, 0, 0]]], [-0.008062, 0.0, 1.370126, 0.0, False, -1]]], [[[[0.03, -0.04], -1.19, 2.0, 5.0, 0.0625, 3.0, 0.5, 1.0, 0.0625, [[0, 0, 0], [0, 0, 0], [0, 0, 0], [5, -3, 2]]], [2.572479, -1.543487, 1.52381, 0.0, False, 0]], [[[-3.48, 1.74], 1.67, 20.0, 40.0, 0.0625, 3.0, 2.0, 1.0, 0.1875, [[1, -3, 0.5], [0, -3, 0.5], [0, 0, 0], [0, 0, 0], [0, 0, 0]]], [0.0, 0.0, 0.0, 0.1875, True, 2]], [[[0.45, -2.24], -0.91, 0.5, 0.5, 0.015625, 8.0, 2.0, 0.3, 0.046875, [[1, -3, 2], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [5, 0, 0], [0, 0, 0], [0, 0, 0], [5, 0, 0]]], [7.339549, -3.182927, 1.008391, 0.0, False, -1]], [[[0.04, 0.03], 0.6, 2.0, 0.5, 0.015625, 3.0, 2.0, 0.3, 0.015625, [[0, 0, 0], [0, 0, 0], [0, 1, -1], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0]]], [0.030324, 0.82896, -0.387568, 0.0, False, -1]], [[[-4.0, -0.28], -1.66, 20.0, 0.5, 0.0625, 8.0, 0.5, 1.0, 0.125, [[-2, 8, 2], [0, 0, 0], [-2, 0, 2], [0, 0, 0], [0, 0, 0]]], [-0.279632, 0.133877, 2.11515, 0.0, False, -1]], [[[-4.04, -5.1], 0.88, 80.0, 40.0, 0.0625, 8.0, 0.5, 1.0, 0.0625, [[0, 0, 0], [0, 0, 0], [0, 0, 0]]], [0.0, 0.0, 0.0, 0.0625, True, 1]], [[[0.02, 0.01], 0.18, 20.0, 40.0, 0.03125, 8.0, 2.0, 0.3, 0.0625, [[0, 0, 0], [0, 0, 0], [-2, -3, 2], [-2, 0, 2], [0, 0, 0], [0, 0, 0], [0, 8, 2]]], [-0.463332, 4.658316, 1.001609, 0.0, False, 1]], [[[0.05, -0.01], 0.0, 0.5, 0.5, 0.0625, 8.0, 0.5, 1.0, 0.1875, [[0, 0, 0.5], [0, 0, -0.5], [0, 0, -0.5], [0, 0, 0], [0, 0, 0]]], [0.0, 0.0, 0.0, 0.1875, True, 2]]]]\nfor i, (args, expected) in enumerate(fixtures[N-1]):\n    check(\"case %d\" % i, 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 with stipulated toy conventions and rounded float output; not a production physics engine or a proof of numerical stability. 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-physics_integrator_stability-damping-clamp-sleep-sleep-time-threshold","generated_at":"2026-09-29T14:50:57.302276+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Game and robotics physics loops depend on integrator update order, step control and stabilization terms; a wrong decision point turns a stable simulation into drifting or exploding motion.","repair":"Sleep as soon as timer >= sleep_time.","root_cause":"The comparison is timer > sleep_time.","sha256":"d6e51de29b067ecd6bf590a8628f219e85add2e16fda5d0c1464e481dffb174b","title":"Body sleeps only after strictly exceeding the required rest time · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":46.752,"exit_code":1,"observations":[{"actual":[0.0,0.0,-0.658704,0.0,false,0],"check":"case 0","expected":[0.013154,0.026308,-0.658704,0.0,false,-1],"passed":false},{"actual":[0.0,0.0,0.0,0.0,true,3],"check":"case 1","expected":[0.884187,-2.572181,1.480313,0.0,false,0],"passed":false},{"actual":[0.0,0.0,0.492308,0.03125,false,1],"check":"case 2","expected":[0.0,0.0,0.492308,0.03125,false,2],"passed":false},{"actual":[0.0,0.0,0.0,0.015625,true,6],"check":"case 3","expected":[0.0,0.0,0.000356,0.015625,false,2],"passed":false},{"actual":[-0.888889,-1.333333,0.0,0.0,false,2],"check":"case 4","expected":[-0.888889,-1.333333,0.0,0.0,false,3],"passed":false},{"actual":[0.007331,-0.000411,1.780327,0.0,false,-1],"check":"case 5","expected":[0.007331,-0.000411,1.780327,0.0,false,-1],"passed":true},{"actual":[0.0,0.0,0.806428,0.0,false,0],"check":"case 6","expected":[0.0,0.0,0.806428,0.0,false,1],"passed":false},{"actual":[0.0,0.0,0.0,0.0,true,4],"check":"case 7","expected":[-1.823636,-0.874067,-0.307458,0.0,false,-1],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"case 0\", \"actual\": [0.0, 0.0, -0.658704, 0.0, false, 0], \"expected\": [0.013154, 0.026308, -0.658704, 0.0, false, -1], \"passed\": false}, {\"check\": \"case 1\", \"actual\": [0.0, 0.0, 0.0, 0.0, true, 3], \"expected\": [0.884187, -2.572181, 1.480313, 0.0, false, 0], \"passed\": false}, {\"check\": \"case 2\", \"actual\": [0.0, 0.0, 0.492308, 0.03125, false, 1], \"expected\": [0.0, 0.0, 0.492308, 0.03125, false, 2], \"passed\": false}, {\"check\": \"case 3\", \"actual\": [0.0, 0.0, 0.0, 0.015625, true, 6], \"expected\": [0.0, 0.0, 0.000356, 0.015625, false, 2], \"passed\": false}, {\"check\": \"case 4\", \"actual\": [-0.888889, -1.333333, 0.0, 0.0, false, 2], \"expected\": [-0.888889, -1.333333, 0.0, 0.0, false, 3], \"passed\": false}, {\"check\": \"case 5\", \"actual\": [0.007331, -0.000411, 1.780327, 0.0, false, -1], \"expected\": [0.007331, -0.000411, 1.780327, 0.0, false, -1], \"passed\": true}, {\"check\": \"case 6\", \"actual\": [0.0, 0.0, 0.806428, 0.0, false, 0], \"expected\": [0.0, 0.0, 0.806428, 0.0, false, 1], \"passed\": false}, {\"check\": \"case 7\", \"actual\": [0.0, 0.0, 0.0, 0.0, true, 4], \"expected\": [-1.823636, -0.874067, -0.307458, 0.0, false, -1], \"passed\": false}], \"passed\": false}\n"},"broken":{"elapsed_ms":43.196,"exit_code":1,"observations":[{"actual":[0.013154,0.026308,-0.658704,0.0,false,-1],"check":"case 0","expected":[0.013154,0.026308,-0.658704,0.0,false,-1],"passed":true},{"actual":[0.884187,-2.572181,1.480313,0.0,false,1],"check":"case 1","expected":[0.884187,-2.572181,1.480313,0.0,false,0],"passed":false},{"actual":[0.0,0.0,0.0,0.125,true,3],"check":"case 2","expected":[0.0,0.0,0.492308,0.03125,false,2],"passed":false},{"actual":[-0.008062,-0.056435,-0.021839,0.015625,false,-1],"check":"case 3","expected":[0.0,0.0,0.000356,0.015625,false,2],"passed":false},{"actual":[-0.888889,-1.333333,0.0,0.0,false,4],"check":"case 4","expected":[-0.888889,-1.333333,0.0,0.0,false,3],"passed":false},{"actual":[0.007331,-0.000411,1.780327,0.0,false,-1],"check":"case 5","expected":[0.007331,-0.000411,1.780327,0.0,false,-1],"passed":true},{"actual":[0.0,0.0,0.806428,0.0,false,2],"check":"case 6","expected":[0.0,0.0,0.806428,0.0,false,1],"passed":false},{"actual":[-1.823636,-0.874067,-0.307458,0.0,false,-1],"check":"case 7","expected":[-1.823636,-0.874067,-0.307458,0.0,false,-1],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"case 0\", \"actual\": [0.013154, 0.026308, -0.658704, 0.0, false, -1], \"expected\": [0.013154, 0.026308, -0.658704, 0.0, false, -1], \"passed\": true}, {\"check\": \"case 1\", \"actual\": [0.884187, -2.572181, 1.480313, 0.0, false, 1], \"expected\": [0.884187, -2.572181, 1.480313, 0.0, false, 0], \"passed\": false}, {\"check\": \"case 2\", \"actual\": [0.0, 0.0, 0.0, 0.125, true, 3], \"expected\": [0.0, 0.0, 0.492308, 0.03125, false, 2], \"passed\": false}, {\"check\": \"case 3\", \"actual\": [-0.008062, -0.056435, -0.021839, 0.015625, false, -1], \"expected\": [0.0, 0.0, 0.000356, 0.015625, false, 2], \"passed\": false}, {\"check\": \"case 4\", \"actual\": [-0.888889, -1.333333, 0.0, 0.0, false, 4], \"expected\": [-0.888889, -1.333333, 0.0, 0.0, false, 3], \"passed\": false}, {\"check\": \"case 5\", \"actual\": [0.007331, -0.000411, 1.780327, 0.0, false, -1], \"expected\": [0.007331, -0.000411, 1.780327, 0.0, false, -1], \"passed\": true}, {\"check\": \"case 6\", \"actual\": [0.0, 0.0, 0.806428, 0.0, false, 2], \"expected\": [0.0, 0.0, 0.806428, 0.0, false, 1], \"passed\": false}, {\"check\": \"case 7\", \"actual\": [-1.823636, -0.874067, -0.307458, 0.0, false, -1], \"expected\": [-1.823636, -0.874067, -0.307458, 0.0, false, -1], \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":44.949,"exit_code":0,"observations":[{"actual":[0.013154,0.026308,-0.658704,0.0,false,-1],"check":"case 0","expected":[0.013154,0.026308,-0.658704,0.0,false,-1],"passed":true},{"actual":[0.884187,-2.572181,1.480313,0.0,false,0],"check":"case 1","expected":[0.884187,-2.572181,1.480313,0.0,false,0],"passed":true},{"actual":[0.0,0.0,0.492308,0.03125,false,2],"check":"case 2","expected":[0.0,0.0,0.492308,0.03125,false,2],"passed":true},{"actual":[0.0,0.0,0.000356,0.015625,false,2],"check":"case 3","expected":[0.0,0.0,0.000356,0.015625,false,2],"passed":true},{"actual":[-0.888889,-1.333333,0.0,0.0,false,3],"check":"case 4","expected":[-0.888889,-1.333333,0.0,0.0,false,3],"passed":true},{"actual":[0.007331,-0.000411,1.780327,0.0,false,-1],"check":"case 5","expected":[0.007331,-0.000411,1.780327,0.0,false,-1],"passed":true},{"actual":[0.0,0.0,0.806428,0.0,false,1],"check":"case 6","expected":[0.0,0.0,0.806428,0.0,false,1],"passed":true},{"actual":[-1.823636,-0.874067,-0.307458,0.0,false,-1],"check":"case 7","expected":[-1.823636,-0.874067,-0.307458,0.0,false,-1],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"case 0\", \"actual\": [0.013154, 0.026308, -0.658704, 0.0, false, -1], \"expected\": [0.013154, 0.026308, -0.658704, 0.0, false, -1], \"passed\": true}, {\"check\": \"case 1\", \"actual\": [0.884187, -2.572181, 1.480313, 0.0, false, 0], \"expected\": [0.884187, -2.572181, 1.480313, 0.0, false, 0], \"passed\": true}, {\"check\": \"case 2\", \"actual\": [0.0, 0.0, 0.492308, 0.03125, false, 2], \"expected\": [0.0, 0.0, 0.492308, 0.03125, false, 2], \"passed\": true}, {\"check\": \"case 3\", \"actual\": [0.0, 0.0, 0.000356, 0.015625, false, 2], \"expected\": [0.0, 0.0, 0.000356, 0.015625, false, 2], \"passed\": true}, {\"check\": \"case 4\", \"actual\": [-0.888889, -1.333333, 0.0, 0.0, false, 3], \"expected\": [-0.888889, -1.333333, 0.0, 0.0, false, 3], \"passed\": true}, {\"check\": \"case 5\", \"actual\": [0.007331, -0.000411, 1.780327, 0.0, false, -1], \"expected\": [0.007331, -0.000411, 1.780327, 0.0, false, -1], \"passed\": true}, {\"check\": \"case 6\", \"actual\": [0.0, 0.0, 0.806428, 0.0, false, 1], \"expected\": [0.0, 0.0, 0.806428, 0.0, false, 1], \"passed\": true}, {\"check\": \"case 7\", \"actual\": [-1.823636, -0.874067, -0.307458, 0.0, false, -1], \"expected\": [-1.823636, -0.874067, -0.307458, 0.0, false, -1], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}