{"abstract":"Relevelling stops as soon as the offset is back inside the start band.","category":"Elevator dispatch scheduling","checks":8,"contract":"While standing at a floor the level offset (mm) is sampled. Beyond +-200 mm the sample is a fault and any relevel stops. Relevelling starts when |offset| > 10 and continues until |offset| <= 3 (hysteresis). A relevel runs with doors open when |offset| <= 75, otherwise the doors close first (close-relevel). Output hold, relevel, close-relevel or fault per sample.","evaluation_group":"w2-elevator_dispatch_scheduling-relevelling-control","failed_approach":"A strict comparison keeps relevelling at exactly 3 mm.","family":"w2-elevator_dispatch_scheduling-relevelling-control-stop-hysteresis","id":"FA-67661","implementations":{"attempt":{"sha256":"51ae84bb3990c1b0422bc52996fd82147e12045b277cad39f85fc4c1bf84f225","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    active = False\n    out = []\n    for off in x['samples']:\n        a = abs(off)\n        if a > 200:\n            out.append('fault')\n            active = False\n            continue\n        if active:\n            if a < 3:\n                active = False\n                out.append('hold')\n            else:\n                out.append('relevel' if a <= 75 else 'close-relevel')\n        elif a > 10:\n            active = True\n            out.append('relevel' if a <= 75 else 'close-relevel')\n        else:\n            out.append('hold')\n    return out\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: hysteresis band', {'samples': [11, 8, 4, 3]}, ['relevel', 'relevel', 'relevel', 'hold']), ('sampled regression 3', {'samples': [76, -250, 201, -11, 10, 201, 4]}, ['close-relevel', 'fault', 'fault', 'relevel', 'relevel', 'fault', 'hold']), ('regression: negative offsets', {'samples': [-11, -4, -3]}, ['relevel', 'relevel', 'hold']), ('boundary: large offset while relevelling', {'samples': [20, 90, 30]}, ['relevel', 'close-relevel', 'relevel']), ('boundary: fault clears relevelling', {'samples': [20, 250, 5]}, ['relevel', 'fault', 'hold']), ('sampled regression 1', {'samples': [200, 40, 200, 9, 4]}, ['close-relevel', 'relevel', 'close-relevel', 'relevel', 'relevel']), ('sampled regression 4', {'samples': [150, 4, 200, 201, 4, -250, 9, 0]}, ['close-relevel', 'relevel', 'close-relevel', 'fault', 'hold', 'fault', 'hold', 'hold']), ('sampled regression 7', {'samples': [-250, 201, 4, 2, 4, 11, 76, 75, 10]}, ['fault', 'fault', 'hold', 'hold', 'hold', 'relevel', 'close-relevel', 'relevel', 'relevel'])], [('regression: negative offsets', {'samples': [-11, -4, -3]}, ['relevel', 'relevel', 'hold']), ('sampled regression 16', {'samples': [200, 75, -76, 10, 0, 40]}, ['close-relevel', 'relevel', 'close-relevel', 'relevel', 'hold', 'relevel']), ('control 19', {'samples': [75, 76, 3, -3, -3]}, ['relevel', 'close-relevel', 'hold', 'hold', 'hold']), ('boundary: fault clears relevelling', {'samples': [20, 250, 5]}, ['relevel', 'fault', 'hold']), ('boundary: exactly at the fault limit', {'samples': [200, 201]}, ['close-relevel', 'fault']), ('control 12', {'samples': [-4, 150, 11]}, ['hold', 'close-relevel', 'relevel']), ('control 15', {'samples': [-3, 2, 75, 201, 75, 200]}, ['hold', 'hold', 'relevel', 'fault', 'relevel', 'close-relevel']), ('sampled regression 18', {'samples': [-76, 10, 10, -250, 201, -4, 40]}, ['close-relevel', 'relevel', 'relevel', 'fault', 'fault', 'hold', 'relevel'])], [('regression: hysteresis band', {'samples': [11, 8, 4, 3]}, ['relevel', 'relevel', 'relevel', 'hold']), ('sampled regression 31', {'samples': [-3, -250, -76, 150, 10, 75, 75, -76, 75, 10]}, ['hold', 'fault', 'close-relevel', 'close-relevel', 'relevel', 'relevel', 'relevel', 'close-relevel', 'relevel', 'relevel']), ('sampled regression 45', {'samples': [150, 75, 4, 75, -11, 75, 40, -4, 3, 9]}, ['close-relevel', 'relevel', 'relevel', 'relevel', 'relevel', 'relevel', 'relevel', 'relevel', 'hold', 'hold']), ('regression: negative offsets', {'samples': [-11, -4, -3]}, ['relevel', 'relevel', 'hold']), ('boundary: open door limit', {'samples': [75, 76]}, ['relevel', 'close-relevel']), ('sampled regression 23', {'samples': [3, 10, 200, 0, 3, -4, 0, 200, -4, 150]}, ['hold', 'hold', 'close-relevel', 'hold', 'hold', 'hold', 'hold', 'close-relevel', 'relevel', 'close-relevel']), ('control 26', {'samples': [76, 201, 3, 3]}, ['close-relevel', 'fault', 'hold', 'hold']), ('control 29', {'samples': [2, 4, 75, 0, 11, -3, -3, 4]}, ['hold', 'hold', 'relevel', 'hold', 'relevel', 'hold', 'hold', 'hold'])], [('regression: negative offsets', {'samples': [-11, -4, -3]}, ['relevel', 'relevel', 'hold']), ('sampled regression 46', {'samples': [-4, 150, -4, 200, 200, -3, 9]}, ['hold', 'close-relevel', 'relevel', 'close-relevel', 'close-relevel', 'hold', 'hold']), ('control 64', {'samples': [201, -3, 11, 200, 3, 0]}, ['fault', 'hold', 'relevel', 'close-relevel', 'hold', 'hold']), ('regression: hysteresis band', {'samples': [11, 8, 4, 3]}, ['relevel', 'relevel', 'relevel', 'hold']), ('boundary: large offset while relevelling', {'samples': [20, 90, 30]}, ['relevel', 'close-relevel', 'relevel']), ('sampled regression 34', {'samples': [150, 10, 200]}, ['close-relevel', 'relevel', 'close-relevel']), ('sampled regression 37', {'samples': [-76, 0, 76, 11, -11, 200, 150, 9]}, ['close-relevel', 'hold', 'close-relevel', 'relevel', 'relevel', 'close-relevel', 'close-relevel', 'relevel']), ('sampled regression 40', {'samples': [40, 76, -4]}, ['relevel', 'close-relevel', 'relevel'])], [('regression: hysteresis band', {'samples': [11, 8, 4, 3]}, ['relevel', 'relevel', 'relevel', 'hold']), ('sampled regression 58', {'samples': [75, 2, 10, 0, -11, 2, -11, 10]}, ['relevel', 'hold', 'hold', 'hold', 'relevel', 'hold', 'relevel', 'relevel']), ('control 78', {'samples': [3, 201, 2, 75, 3, 10, 2]}, ['hold', 'fault', 'hold', 'relevel', 'hold', 'hold', 'hold']), ('boundary: fault clears relevelling', {'samples': [20, 250, 5]}, ['relevel', 'fault', 'hold']), ('boundary: exactly at the fault limit', {'samples': [200, 201]}, ['close-relevel', 'fault']), ('sampled regression 45', {'samples': [150, 75, 4, 75, -11, 75, 40, -4, 3, 9]}, ['close-relevel', 'relevel', 'relevel', 'relevel', 'relevel', 'relevel', 'relevel', 'relevel', 'hold', 'hold']), ('sampled regression 48', {'samples': [150, -76, 10, 4, -250, 40, 10]}, ['close-relevel', 'close-relevel', 'relevel', 'relevel', 'fault', 'relevel', 'relevel']), ('sampled regression 51', {'samples': [200, -4, -4, 76, 75, 76]}, ['close-relevel', 'relevel', 'relevel', 'close-relevel', 'relevel', 'close-relevel'])]]\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":"f09ce5709a0767e11e7db94155b39a01cc63084ff139d9c1400b84037a92a2b6","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    active = False\n    out = []\n    for off in x['samples']:\n        a = abs(off)\n        if a > 200:\n            out.append('fault')\n            active = False\n            continue\n        if active:\n            if a <= 10:\n                active = False\n                out.append('hold')\n            else:\n                out.append('relevel' if a <= 75 else 'close-relevel')\n        elif a > 10:\n            active = True\n            out.append('relevel' if a <= 75 else 'close-relevel')\n        else:\n            out.append('hold')\n    return out\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: hysteresis band', {'samples': [11, 8, 4, 3]}, ['relevel', 'relevel', 'relevel', 'hold']), ('sampled regression 3', {'samples': [76, -250, 201, -11, 10, 201, 4]}, ['close-relevel', 'fault', 'fault', 'relevel', 'relevel', 'fault', 'hold']), ('regression: negative offsets', {'samples': [-11, -4, -3]}, ['relevel', 'relevel', 'hold']), ('boundary: large offset while relevelling', {'samples': [20, 90, 30]}, ['relevel', 'close-relevel', 'relevel']), ('boundary: fault clears relevelling', {'samples': [20, 250, 5]}, ['relevel', 'fault', 'hold']), ('sampled regression 1', {'samples': [200, 40, 200, 9, 4]}, ['close-relevel', 'relevel', 'close-relevel', 'relevel', 'relevel']), ('sampled regression 4', {'samples': [150, 4, 200, 201, 4, -250, 9, 0]}, ['close-relevel', 'relevel', 'close-relevel', 'fault', 'hold', 'fault', 'hold', 'hold']), ('sampled regression 7', {'samples': [-250, 201, 4, 2, 4, 11, 76, 75, 10]}, ['fault', 'fault', 'hold', 'hold', 'hold', 'relevel', 'close-relevel', 'relevel', 'relevel'])], [('regression: negative offsets', {'samples': [-11, -4, -3]}, ['relevel', 'relevel', 'hold']), ('sampled regression 16', {'samples': [200, 75, -76, 10, 0, 40]}, ['close-relevel', 'relevel', 'close-relevel', 'relevel', 'hold', 'relevel']), ('control 19', {'samples': [75, 76, 3, -3, -3]}, ['relevel', 'close-relevel', 'hold', 'hold', 'hold']), ('boundary: fault clears relevelling', {'samples': [20, 250, 5]}, ['relevel', 'fault', 'hold']), ('boundary: exactly at the fault limit', {'samples': [200, 201]}, ['close-relevel', 'fault']), ('control 12', {'samples': [-4, 150, 11]}, ['hold', 'close-relevel', 'relevel']), ('control 15', {'samples': [-3, 2, 75, 201, 75, 200]}, ['hold', 'hold', 'relevel', 'fault', 'relevel', 'close-relevel']), ('sampled regression 18', {'samples': [-76, 10, 10, -250, 201, -4, 40]}, ['close-relevel', 'relevel', 'relevel', 'fault', 'fault', 'hold', 'relevel'])], [('regression: hysteresis band', {'samples': [11, 8, 4, 3]}, ['relevel', 'relevel', 'relevel', 'hold']), ('sampled regression 31', {'samples': [-3, -250, -76, 150, 10, 75, 75, -76, 75, 10]}, ['hold', 'fault', 'close-relevel', 'close-relevel', 'relevel', 'relevel', 'relevel', 'close-relevel', 'relevel', 'relevel']), ('sampled regression 45', {'samples': [150, 75, 4, 75, -11, 75, 40, -4, 3, 9]}, ['close-relevel', 'relevel', 'relevel', 'relevel', 'relevel', 'relevel', 'relevel', 'relevel', 'hold', 'hold']), ('regression: negative offsets', {'samples': [-11, -4, -3]}, ['relevel', 'relevel', 'hold']), ('boundary: open door limit', {'samples': [75, 76]}, ['relevel', 'close-relevel']), ('sampled regression 23', {'samples': [3, 10, 200, 0, 3, -4, 0, 200, -4, 150]}, ['hold', 'hold', 'close-relevel', 'hold', 'hold', 'hold', 'hold', 'close-relevel', 'relevel', 'close-relevel']), ('control 26', {'samples': [76, 201, 3, 3]}, ['close-relevel', 'fault', 'hold', 'hold']), ('control 29', {'samples': [2, 4, 75, 0, 11, -3, -3, 4]}, ['hold', 'hold', 'relevel', 'hold', 'relevel', 'hold', 'hold', 'hold'])], [('regression: negative offsets', {'samples': [-11, -4, -3]}, ['relevel', 'relevel', 'hold']), ('sampled regression 46', {'samples': [-4, 150, -4, 200, 200, -3, 9]}, ['hold', 'close-relevel', 'relevel', 'close-relevel', 'close-relevel', 'hold', 'hold']), ('control 64', {'samples': [201, -3, 11, 200, 3, 0]}, ['fault', 'hold', 'relevel', 'close-relevel', 'hold', 'hold']), ('regression: hysteresis band', {'samples': [11, 8, 4, 3]}, ['relevel', 'relevel', 'relevel', 'hold']), ('boundary: large offset while relevelling', {'samples': [20, 90, 30]}, ['relevel', 'close-relevel', 'relevel']), ('sampled regression 34', {'samples': [150, 10, 200]}, ['close-relevel', 'relevel', 'close-relevel']), ('sampled regression 37', {'samples': [-76, 0, 76, 11, -11, 200, 150, 9]}, ['close-relevel', 'hold', 'close-relevel', 'relevel', 'relevel', 'close-relevel', 'close-relevel', 'relevel']), ('sampled regression 40', {'samples': [40, 76, -4]}, ['relevel', 'close-relevel', 'relevel'])], [('regression: hysteresis band', {'samples': [11, 8, 4, 3]}, ['relevel', 'relevel', 'relevel', 'hold']), ('sampled regression 58', {'samples': [75, 2, 10, 0, -11, 2, -11, 10]}, ['relevel', 'hold', 'hold', 'hold', 'relevel', 'hold', 'relevel', 'relevel']), ('control 78', {'samples': [3, 201, 2, 75, 3, 10, 2]}, ['hold', 'fault', 'hold', 'relevel', 'hold', 'hold', 'hold']), ('boundary: fault clears relevelling', {'samples': [20, 250, 5]}, ['relevel', 'fault', 'hold']), ('boundary: exactly at the fault limit', {'samples': [200, 201]}, ['close-relevel', 'fault']), ('sampled regression 45', {'samples': [150, 75, 4, 75, -11, 75, 40, -4, 3, 9]}, ['close-relevel', 'relevel', 'relevel', 'relevel', 'relevel', 'relevel', 'relevel', 'relevel', 'hold', 'hold']), ('sampled regression 48', {'samples': [150, -76, 10, 4, -250, 40, 10]}, ['close-relevel', 'close-relevel', 'relevel', 'relevel', 'fault', 'relevel', 'relevel']), ('sampled regression 51', {'samples': [200, -4, -4, 76, 75, 76]}, ['close-relevel', 'relevel', 'relevel', 'close-relevel', 'relevel', 'close-relevel'])]]\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":"8be7942cc46a41b9a97f50fe8b0fb43130edae2c7dd5bec84c535c6b39935415","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    active = False\n    out = []\n    for off in x['samples']:\n        a = abs(off)\n        if a > 200:\n            out.append('fault')\n            active = False\n            continue\n        if active:\n            if a <= 3:\n                active = False\n                out.append('hold')\n            else:\n                out.append('relevel' if a <= 75 else 'close-relevel')\n        elif a > 10:\n            active = True\n            out.append('relevel' if a <= 75 else 'close-relevel')\n        else:\n            out.append('hold')\n    return out\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('regression: hysteresis band', {'samples': [11, 8, 4, 3]}, ['relevel', 'relevel', 'relevel', 'hold']), ('sampled regression 3', {'samples': [76, -250, 201, -11, 10, 201, 4]}, ['close-relevel', 'fault', 'fault', 'relevel', 'relevel', 'fault', 'hold']), ('regression: negative offsets', {'samples': [-11, -4, -3]}, ['relevel', 'relevel', 'hold']), ('boundary: large offset while relevelling', {'samples': [20, 90, 30]}, ['relevel', 'close-relevel', 'relevel']), ('boundary: fault clears relevelling', {'samples': [20, 250, 5]}, ['relevel', 'fault', 'hold']), ('sampled regression 1', {'samples': [200, 40, 200, 9, 4]}, ['close-relevel', 'relevel', 'close-relevel', 'relevel', 'relevel']), ('sampled regression 4', {'samples': [150, 4, 200, 201, 4, -250, 9, 0]}, ['close-relevel', 'relevel', 'close-relevel', 'fault', 'hold', 'fault', 'hold', 'hold']), ('sampled regression 7', {'samples': [-250, 201, 4, 2, 4, 11, 76, 75, 10]}, ['fault', 'fault', 'hold', 'hold', 'hold', 'relevel', 'close-relevel', 'relevel', 'relevel'])], [('regression: negative offsets', {'samples': [-11, -4, -3]}, ['relevel', 'relevel', 'hold']), ('sampled regression 16', {'samples': [200, 75, -76, 10, 0, 40]}, ['close-relevel', 'relevel', 'close-relevel', 'relevel', 'hold', 'relevel']), ('control 19', {'samples': [75, 76, 3, -3, -3]}, ['relevel', 'close-relevel', 'hold', 'hold', 'hold']), ('boundary: fault clears relevelling', {'samples': [20, 250, 5]}, ['relevel', 'fault', 'hold']), ('boundary: exactly at the fault limit', {'samples': [200, 201]}, ['close-relevel', 'fault']), ('control 12', {'samples': [-4, 150, 11]}, ['hold', 'close-relevel', 'relevel']), ('control 15', {'samples': [-3, 2, 75, 201, 75, 200]}, ['hold', 'hold', 'relevel', 'fault', 'relevel', 'close-relevel']), ('sampled regression 18', {'samples': [-76, 10, 10, -250, 201, -4, 40]}, ['close-relevel', 'relevel', 'relevel', 'fault', 'fault', 'hold', 'relevel'])], [('regression: hysteresis band', {'samples': [11, 8, 4, 3]}, ['relevel', 'relevel', 'relevel', 'hold']), ('sampled regression 31', {'samples': [-3, -250, -76, 150, 10, 75, 75, -76, 75, 10]}, ['hold', 'fault', 'close-relevel', 'close-relevel', 'relevel', 'relevel', 'relevel', 'close-relevel', 'relevel', 'relevel']), ('sampled regression 45', {'samples': [150, 75, 4, 75, -11, 75, 40, -4, 3, 9]}, ['close-relevel', 'relevel', 'relevel', 'relevel', 'relevel', 'relevel', 'relevel', 'relevel', 'hold', 'hold']), ('regression: negative offsets', {'samples': [-11, -4, -3]}, ['relevel', 'relevel', 'hold']), ('boundary: open door limit', {'samples': [75, 76]}, ['relevel', 'close-relevel']), ('sampled regression 23', {'samples': [3, 10, 200, 0, 3, -4, 0, 200, -4, 150]}, ['hold', 'hold', 'close-relevel', 'hold', 'hold', 'hold', 'hold', 'close-relevel', 'relevel', 'close-relevel']), ('control 26', {'samples': [76, 201, 3, 3]}, ['close-relevel', 'fault', 'hold', 'hold']), ('control 29', {'samples': [2, 4, 75, 0, 11, -3, -3, 4]}, ['hold', 'hold', 'relevel', 'hold', 'relevel', 'hold', 'hold', 'hold'])], [('regression: negative offsets', {'samples': [-11, -4, -3]}, ['relevel', 'relevel', 'hold']), ('sampled regression 46', {'samples': [-4, 150, -4, 200, 200, -3, 9]}, ['hold', 'close-relevel', 'relevel', 'close-relevel', 'close-relevel', 'hold', 'hold']), ('control 64', {'samples': [201, -3, 11, 200, 3, 0]}, ['fault', 'hold', 'relevel', 'close-relevel', 'hold', 'hold']), ('regression: hysteresis band', {'samples': [11, 8, 4, 3]}, ['relevel', 'relevel', 'relevel', 'hold']), ('boundary: large offset while relevelling', {'samples': [20, 90, 30]}, ['relevel', 'close-relevel', 'relevel']), ('sampled regression 34', {'samples': [150, 10, 200]}, ['close-relevel', 'relevel', 'close-relevel']), ('sampled regression 37', {'samples': [-76, 0, 76, 11, -11, 200, 150, 9]}, ['close-relevel', 'hold', 'close-relevel', 'relevel', 'relevel', 'close-relevel', 'close-relevel', 'relevel']), ('sampled regression 40', {'samples': [40, 76, -4]}, ['relevel', 'close-relevel', 'relevel'])], [('regression: hysteresis band', {'samples': [11, 8, 4, 3]}, ['relevel', 'relevel', 'relevel', 'hold']), ('sampled regression 58', {'samples': [75, 2, 10, 0, -11, 2, -11, 10]}, ['relevel', 'hold', 'hold', 'hold', 'relevel', 'hold', 'relevel', 'relevel']), ('control 78', {'samples': [3, 201, 2, 75, 3, 10, 2]}, ['hold', 'fault', 'hold', 'relevel', 'hold', 'hold', 'hold']), ('boundary: fault clears relevelling', {'samples': [20, 250, 5]}, ['relevel', 'fault', 'hold']), ('boundary: exactly at the fault limit', {'samples': [200, 201]}, ['close-relevel', 'fault']), ('sampled regression 45', {'samples': [150, 75, 4, 75, -11, 75, 40, -4, 3, 9]}, ['close-relevel', 'relevel', 'relevel', 'relevel', 'relevel', 'relevel', 'relevel', 'relevel', 'hold', 'hold']), ('sampled regression 48', {'samples': [150, -76, 10, 4, -250, 40, 10]}, ['close-relevel', 'close-relevel', 'relevel', 'relevel', 'fault', 'relevel', 'relevel']), ('sampled regression 51', {'samples': [200, -4, -4, 76, 75, 76]}, ['close-relevel', 'relevel', 'relevel', 'close-relevel', 'relevel', 'close-relevel'])]]\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":"Stipulated toy lift-control contract for a bounded teaching model; it makes no claim of conformance to any lift code or vendor dispatcher and omits real safety cases. 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-elevator_dispatch_scheduling-relevelling-control-stop-hysteresis","generated_at":"2026-09-29T14:47:55.046637+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Lift group controllers make these decisions many times per minute; a wrong answer strands passengers, wastes trips or overrides a safety rule.","repair":"Stop relevelling only at |offset| <= 3.","root_cause":"The stop threshold equals the start threshold, removing the hysteresis.","sha256":"785ea96f882e47e9c6296621bf22fb7d271f43ee95760269b09281d3e0cfb029","title":"Car relevelling with doors open: stop hysteresis · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":41.687,"exit_code":1,"observations":[{"actual":["relevel","relevel","relevel","relevel"],"check":"regression: hysteresis band","expected":["relevel","relevel","relevel","hold"],"passed":false},{"actual":["close-relevel","fault","fault","relevel","relevel","fault","hold"],"check":"sampled regression 3","expected":["close-relevel","fault","fault","relevel","relevel","fault","hold"],"passed":true},{"actual":["relevel","relevel","relevel"],"check":"regression: negative offsets","expected":["relevel","relevel","hold"],"passed":false},{"actual":["relevel","close-relevel","relevel"],"check":"boundary: large offset while relevelling","expected":["relevel","close-relevel","relevel"],"passed":true},{"actual":["relevel","fault","hold"],"check":"boundary: fault clears relevelling","expected":["relevel","fault","hold"],"passed":true},{"actual":["close-relevel","relevel","close-relevel","relevel","relevel"],"check":"sampled regression 1","expected":["close-relevel","relevel","close-relevel","relevel","relevel"],"passed":true},{"actual":["close-relevel","relevel","close-relevel","fault","hold","fault","hold","hold"],"check":"sampled regression 4","expected":["close-relevel","relevel","close-relevel","fault","hold","fault","hold","hold"],"passed":true},{"actual":["fault","fault","hold","hold","hold","relevel","close-relevel","relevel","relevel"],"check":"sampled regression 7","expected":["fault","fault","hold","hold","hold","relevel","close-relevel","relevel","relevel"],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: hysteresis band\", \"actual\": [\"relevel\", \"relevel\", \"relevel\", \"relevel\"], \"expected\": [\"relevel\", \"relevel\", \"relevel\", \"hold\"], \"passed\": false}, {\"check\": \"sampled regression 3\", \"actual\": [\"close-relevel\", \"fault\", \"fault\", \"relevel\", \"relevel\", \"fault\", \"hold\"], \"expected\": [\"close-relevel\", \"fault\", \"fault\", \"relevel\", \"relevel\", \"fault\", \"hold\"], \"passed\": true}, {\"check\": \"regression: negative offsets\", \"actual\": [\"relevel\", \"relevel\", \"relevel\"], \"expected\": [\"relevel\", \"relevel\", \"hold\"], \"passed\": false}, {\"check\": \"boundary: large offset while relevelling\", \"actual\": [\"relevel\", \"close-relevel\", \"relevel\"], \"expected\": [\"relevel\", \"close-relevel\", \"relevel\"], \"passed\": true}, {\"check\": \"boundary: fault clears relevelling\", \"actual\": [\"relevel\", \"fault\", \"hold\"], \"expected\": [\"relevel\", \"fault\", \"hold\"], \"passed\": true}, {\"check\": \"sampled regression 1\", \"actual\": [\"close-relevel\", \"relevel\", \"close-relevel\", \"relevel\", \"relevel\"], \"expected\": [\"close-relevel\", \"relevel\", \"close-relevel\", \"relevel\", \"relevel\"], \"passed\": true}, {\"check\": \"sampled regression 4\", \"actual\": [\"close-relevel\", \"relevel\", \"close-relevel\", \"fault\", \"hold\", \"fault\", \"hold\", \"hold\"], \"expected\": [\"close-relevel\", \"relevel\", \"close-relevel\", \"fault\", \"hold\", \"fault\", \"hold\", \"hold\"], \"passed\": true}, {\"check\": \"sampled regression 7\", \"actual\": [\"fault\", \"fault\", \"hold\", \"hold\", \"hold\", \"relevel\", \"close-relevel\", \"relevel\", \"relevel\"], \"expected\": [\"fault\", \"fault\", \"hold\", \"hold\", \"hold\", \"relevel\", \"close-relevel\", \"relevel\", \"relevel\"], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":39.489,"exit_code":1,"observations":[{"actual":["relevel","hold","hold","hold"],"check":"regression: hysteresis band","expected":["relevel","relevel","relevel","hold"],"passed":false},{"actual":["close-relevel","fault","fault","relevel","hold","fault","hold"],"check":"sampled regression 3","expected":["close-relevel","fault","fault","relevel","relevel","fault","hold"],"passed":false},{"actual":["relevel","hold","hold"],"check":"regression: negative offsets","expected":["relevel","relevel","hold"],"passed":false},{"actual":["relevel","close-relevel","relevel"],"check":"boundary: large offset while relevelling","expected":["relevel","close-relevel","relevel"],"passed":true},{"actual":["relevel","fault","hold"],"check":"boundary: fault clears relevelling","expected":["relevel","fault","hold"],"passed":true},{"actual":["close-relevel","relevel","close-relevel","hold","hold"],"check":"sampled regression 1","expected":["close-relevel","relevel","close-relevel","relevel","relevel"],"passed":false},{"actual":["close-relevel","hold","close-relevel","fault","hold","fault","hold","hold"],"check":"sampled regression 4","expected":["close-relevel","relevel","close-relevel","fault","hold","fault","hold","hold"],"passed":false},{"actual":["fault","fault","hold","hold","hold","relevel","close-relevel","relevel","hold"],"check":"sampled regression 7","expected":["fault","fault","hold","hold","hold","relevel","close-relevel","relevel","relevel"],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: hysteresis band\", \"actual\": [\"relevel\", \"hold\", \"hold\", \"hold\"], \"expected\": [\"relevel\", \"relevel\", \"relevel\", \"hold\"], \"passed\": false}, {\"check\": \"sampled regression 3\", \"actual\": [\"close-relevel\", \"fault\", \"fault\", \"relevel\", \"hold\", \"fault\", \"hold\"], \"expected\": [\"close-relevel\", \"fault\", \"fault\", \"relevel\", \"relevel\", \"fault\", \"hold\"], \"passed\": false}, {\"check\": \"regression: negative offsets\", \"actual\": [\"relevel\", \"hold\", \"hold\"], \"expected\": [\"relevel\", \"relevel\", \"hold\"], \"passed\": false}, {\"check\": \"boundary: large offset while relevelling\", \"actual\": [\"relevel\", \"close-relevel\", \"relevel\"], \"expected\": [\"relevel\", \"close-relevel\", \"relevel\"], \"passed\": true}, {\"check\": \"boundary: fault clears relevelling\", \"actual\": [\"relevel\", \"fault\", \"hold\"], \"expected\": [\"relevel\", \"fault\", \"hold\"], \"passed\": true}, {\"check\": \"sampled regression 1\", \"actual\": [\"close-relevel\", \"relevel\", \"close-relevel\", \"hold\", \"hold\"], \"expected\": [\"close-relevel\", \"relevel\", \"close-relevel\", \"relevel\", \"relevel\"], \"passed\": false}, {\"check\": \"sampled regression 4\", \"actual\": [\"close-relevel\", \"hold\", \"close-relevel\", \"fault\", \"hold\", \"fault\", \"hold\", \"hold\"], \"expected\": [\"close-relevel\", \"relevel\", \"close-relevel\", \"fault\", \"hold\", \"fault\", \"hold\", \"hold\"], \"passed\": false}, {\"check\": \"sampled regression 7\", \"actual\": [\"fault\", \"fault\", \"hold\", \"hold\", \"hold\", \"relevel\", \"close-relevel\", \"relevel\", \"hold\"], \"expected\": [\"fault\", \"fault\", \"hold\", \"hold\", \"hold\", \"relevel\", \"close-relevel\", \"relevel\", \"relevel\"], \"passed\": false}], \"passed\": false}\n"},"fixed":{"elapsed_ms":41.716,"exit_code":0,"observations":[{"actual":["relevel","relevel","relevel","hold"],"check":"regression: hysteresis band","expected":["relevel","relevel","relevel","hold"],"passed":true},{"actual":["close-relevel","fault","fault","relevel","relevel","fault","hold"],"check":"sampled regression 3","expected":["close-relevel","fault","fault","relevel","relevel","fault","hold"],"passed":true},{"actual":["relevel","relevel","hold"],"check":"regression: negative offsets","expected":["relevel","relevel","hold"],"passed":true},{"actual":["relevel","close-relevel","relevel"],"check":"boundary: large offset while relevelling","expected":["relevel","close-relevel","relevel"],"passed":true},{"actual":["relevel","fault","hold"],"check":"boundary: fault clears relevelling","expected":["relevel","fault","hold"],"passed":true},{"actual":["close-relevel","relevel","close-relevel","relevel","relevel"],"check":"sampled regression 1","expected":["close-relevel","relevel","close-relevel","relevel","relevel"],"passed":true},{"actual":["close-relevel","relevel","close-relevel","fault","hold","fault","hold","hold"],"check":"sampled regression 4","expected":["close-relevel","relevel","close-relevel","fault","hold","fault","hold","hold"],"passed":true},{"actual":["fault","fault","hold","hold","hold","relevel","close-relevel","relevel","relevel"],"check":"sampled regression 7","expected":["fault","fault","hold","hold","hold","relevel","close-relevel","relevel","relevel"],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression: hysteresis band\", \"actual\": [\"relevel\", \"relevel\", \"relevel\", \"hold\"], \"expected\": [\"relevel\", \"relevel\", \"relevel\", \"hold\"], \"passed\": true}, {\"check\": \"sampled regression 3\", \"actual\": [\"close-relevel\", \"fault\", \"fault\", \"relevel\", \"relevel\", \"fault\", \"hold\"], \"expected\": [\"close-relevel\", \"fault\", \"fault\", \"relevel\", \"relevel\", \"fault\", \"hold\"], \"passed\": true}, {\"check\": \"regression: negative offsets\", \"actual\": [\"relevel\", \"relevel\", \"hold\"], \"expected\": [\"relevel\", \"relevel\", \"hold\"], \"passed\": true}, {\"check\": \"boundary: large offset while relevelling\", \"actual\": [\"relevel\", \"close-relevel\", \"relevel\"], \"expected\": [\"relevel\", \"close-relevel\", \"relevel\"], \"passed\": true}, {\"check\": \"boundary: fault clears relevelling\", \"actual\": [\"relevel\", \"fault\", \"hold\"], \"expected\": [\"relevel\", \"fault\", \"hold\"], \"passed\": true}, {\"check\": \"sampled regression 1\", \"actual\": [\"close-relevel\", \"relevel\", \"close-relevel\", \"relevel\", \"relevel\"], \"expected\": [\"close-relevel\", \"relevel\", \"close-relevel\", \"relevel\", \"relevel\"], \"passed\": true}, {\"check\": \"sampled regression 4\", \"actual\": [\"close-relevel\", \"relevel\", \"close-relevel\", \"fault\", \"hold\", \"fault\", \"hold\", \"hold\"], \"expected\": [\"close-relevel\", \"relevel\", \"close-relevel\", \"fault\", \"hold\", \"fault\", \"hold\", \"hold\"], \"passed\": true}, {\"check\": \"sampled regression 7\", \"actual\": [\"fault\", \"fault\", \"hold\", \"hold\", \"hold\", \"relevel\", \"close-relevel\", \"relevel\", \"relevel\"], \"expected\": [\"fault\", \"fault\", \"hold\", \"hold\", \"hold\", \"relevel\", \"close-relevel\", \"relevel\", \"relevel\"], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}