{"abstract":"Reversing scalar samples also reverses channel order inside each frame.","category":"Audio frame buffers","checks":4,"contract":"Reverse complete frame order while preserving channel order within each frame; input length is divisible by positive channels.","evaluation_group":"xaud-reverse-audio-by-frames","failed_approach":"Reversing only each frame swaps channels without reversing playback time.","family":"xaud-reverse-audio-by-frames","id":"FA-10846","implementations":{"attempt":{"sha256":"a785fb51f0391d99d02f8030f494548c468de038ab04fcebca801a5068cd5454","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nN = 1\nobservations = []\ndef solve(samples, channels):\n    return [x for i in range(0,len(samples),channels) for x in reversed(samples[i:i+channels])]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('fixture 1',solve(*([1, 2, 3, 4, 5, 6], 2)),[5, 6, 3, 4, 1, 2])\ncheck('fixture 2',solve(*([1, 2], 2)),[1, 2])\ncheck('fixture 3',solve(*([], 2)),[])\ncheck('fixture 4',solve(*([1, 2, 3], 1)),[3, 2, 1])\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":"ea09c05400af466a3abc1765abff8f23f2df5a054f9c916df52ed55890654425","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nN = 1\nobservations = []\ndef solve(samples, channels):\n    return list(reversed(samples))\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('fixture 1',solve(*([1, 2, 3, 4, 5, 6], 2)),[5, 6, 3, 4, 1, 2])\ncheck('fixture 2',solve(*([1, 2], 2)),[1, 2])\ncheck('fixture 3',solve(*([], 2)),[])\ncheck('fixture 4',solve(*([1, 2, 3], 1)),[3, 2, 1])\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":"89667a85e6713b3b0d5bc2fe34eff8c4860109ee802c1e79169e988898a80f5b","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nN = 1\nobservations = []\ndef solve(samples, channels):\n    return [x for i in range(len(samples)-channels,-1,-channels) for x in samples[i:i+channels]]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncheck('fixture 1',solve(*([1, 2, 3, 4, 5, 6], 2)),[5, 6, 3, 4, 1, 2])\ncheck('fixture 2',solve(*([1, 2], 2)),[1, 2])\ncheck('fixture 3',solve(*([], 2)),[])\ncheck('fixture 4',solve(*([1, 2, 3], 1)),[3, 2, 1])\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":" 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":"xaud-reverse-audio-by-frames","generated_at":"2026-09-29T14:38:42.737810+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"A pure Python local audio pipeline stage with explicit sample formats and frame conventions; no real-time device or signal-spectrum claims.","repair":"Apply the explicit PCM/playback contract: Reverse complete frame order while preserving channel order within each frame; input length is divisible by positive channels.","root_cause":"Reversing scalar samples also reverses channel order inside each frame.","sha256":"4caf183c7e10fb7e33b9d491ccb9b11af882ccc1ae98550f39e931e3820b855b","title":"Reverse audio by frames · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":38.327,"exit_code":1,"observations":[{"actual":[2,1,4,3,6,5],"check":"fixture 1","expected":[5,6,3,4,1,2],"passed":false},{"actual":[2,1],"check":"fixture 2","expected":[1,2],"passed":false},{"actual":[],"check":"fixture 3","expected":[],"passed":true},{"actual":[1,2,3],"check":"fixture 4","expected":[3,2,1],"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"fixture 1\", \"actual\": [2, 1, 4, 3, 6, 5], \"expected\": [5, 6, 3, 4, 1, 2], \"passed\": false}, {\"check\": \"fixture 2\", \"actual\": [2, 1], \"expected\": [1, 2], \"passed\": false}, {\"check\": \"fixture 3\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"fixture 4\", \"actual\": [1, 2, 3], \"expected\": [3, 2, 1], \"passed\": false}], \"passed\": false}\n"},"broken":{"elapsed_ms":38.213,"exit_code":1,"observations":[{"actual":[6,5,4,3,2,1],"check":"fixture 1","expected":[5,6,3,4,1,2],"passed":false},{"actual":[2,1],"check":"fixture 2","expected":[1,2],"passed":false},{"actual":[],"check":"fixture 3","expected":[],"passed":true},{"actual":[3,2,1],"check":"fixture 4","expected":[3,2,1],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"fixture 1\", \"actual\": [6, 5, 4, 3, 2, 1], \"expected\": [5, 6, 3, 4, 1, 2], \"passed\": false}, {\"check\": \"fixture 2\", \"actual\": [2, 1], \"expected\": [1, 2], \"passed\": false}, {\"check\": \"fixture 3\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"fixture 4\", \"actual\": [3, 2, 1], \"expected\": [3, 2, 1], \"passed\": true}], \"passed\": false}\n"},"fixed":{"elapsed_ms":39.154,"exit_code":0,"observations":[{"actual":[5,6,3,4,1,2],"check":"fixture 1","expected":[5,6,3,4,1,2],"passed":true},{"actual":[1,2],"check":"fixture 2","expected":[1,2],"passed":true},{"actual":[],"check":"fixture 3","expected":[],"passed":true},{"actual":[3,2,1],"check":"fixture 4","expected":[3,2,1],"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"fixture 1\", \"actual\": [5, 6, 3, 4, 1, 2], \"expected\": [5, 6, 3, 4, 1, 2], \"passed\": true}, {\"check\": \"fixture 2\", \"actual\": [1, 2], \"expected\": [1, 2], \"passed\": true}, {\"check\": \"fixture 3\", \"actual\": [], \"expected\": [], \"passed\": true}, {\"check\": \"fixture 4\", \"actual\": [3, 2, 1], \"expected\": [3, 2, 1], \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}