{"abstract":"The adapter reports an incorrect averaged center while other fields remain valid.","category":"Astronomical coordinate conventions","checks":6,"contract":"A spectral window has first center c0, signed center step d, integer channel i starting at zero, full width w>0, channel averaging factor b, and total n channels. Edges are always ascending world-coordinate values; averaging preserves the mean of contributing channel centers. Output fields are defined by: center = d['c0']+d['i']*d['d']; edges = [d['c0']+d['i']*d['d']-d['w']/2,d['c0']+d['i']*d['d']+d['w']/2]; averaged_center = d['c0']+(d['i']*d['b']+(d['b']-1)/2)*d['d']; averaged_step = d['b']*d['d']; window_center = d['c0']+(d['n']-1)*d['d']/2; window_extent = abs((d['n']-1)*d['d'])+d['w']","evaluation_group":"astro-spectral-channel-edges","failed_approach":"A partial convention repair still uses d['c0']+(d['i']*d['b']+d['b']/2)*d['d']","family":"s3-astronomical-coordinate-conventions-spectral-channel-edges-averaged_center","id":"FA-55661","implementations":{"attempt":{"sha256":"7b300b1e991d829aa19d003e0c0e76f9005d755152db7c65b2b7726b0b884c17","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(d):\n    return {'center': d['c0']+d['i']*d['d'], 'edges': [d['c0']+d['i']*d['d']-d['w']/2,d['c0']+d['i']*d['d']+d['w']/2], 'averaged_center': d['c0']+(d['i']*d['b']+d['b']/2)*d['d'], 'averaged_step': d['b']*d['d'], 'window_center': d['c0']+(d['n']-1)*d['d']/2, 'window_extent': abs((d['n']-1)*d['d'])+d['w']}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = {1: [({'c0': 100, 'd': 4, 'i': 2, 'w': 3, 'b': 2, 'n': 8}, {'center': 108, 'edges': [106.5, 109.5], 'averaged_center': 118.0, 'averaged_step': 8, 'window_center': 114.0, 'window_extent': 31}), ({'c0': 100, 'd': -4, 'i': 2, 'w': 3, 'b': 2, 'n': 8}, {'center': 92, 'edges': [90.5, 93.5], 'averaged_center': 82.0, 'averaged_step': -8, 'window_center': 86.0, 'window_extent': 31}), ({'c0': 100, 'd': 4, 'i': 0, 'w': 3, 'b': 2, 'n': 8}, {'center': 100, 'edges': [98.5, 101.5], 'averaged_center': 102.0, 'averaged_step': 8, 'window_center': 114.0, 'window_extent': 31}), ({'c0': 100, 'd': 4, 'i': 2, 'w': 3, 'b': 1, 'n': 8}, {'center': 108, 'edges': [106.5, 109.5], 'averaged_center': 108.0, 'averaged_step': 4, 'window_center': 114.0, 'window_extent': 31}), ({'c0': 100, 'd': 4, 'i': 0, 'w': 3, 'b': 2, 'n': 1}, {'center': 100, 'edges': [98.5, 101.5], 'averaged_center': 102.0, 'averaged_step': 8, 'window_center': 100.0, 'window_extent': 3}), ({'c0': 100, 'd': 2, 'i': 2, 'w': 8, 'b': 2, 'n': 8}, {'center': 104, 'edges': [100.0, 108.0], 'averaged_center': 109.0, 'averaged_step': 4, 'window_center': 107.0, 'window_extent': 22})], 2: [({'c0': 101, 'd': 4, 'i': 2, 'w': 3, 'b': 2, 'n': 8}, {'center': 109, 'edges': [107.5, 110.5], 'averaged_center': 119.0, 'averaged_step': 8, 'window_center': 115.0, 'window_extent': 31}), ({'c0': 101, 'd': -4, 'i': 2, 'w': 3, 'b': 2, 'n': 8}, {'center': 93, 'edges': [91.5, 94.5], 'averaged_center': 83.0, 'averaged_step': -8, 'window_center': 87.0, 'window_extent': 31}), ({'c0': 101, 'd': 4, 'i': 0, 'w': 3, 'b': 2, 'n': 8}, {'center': 101, 'edges': [99.5, 102.5], 'averaged_center': 103.0, 'averaged_step': 8, 'window_center': 115.0, 'window_extent': 31}), ({'c0': 101, 'd': 4, 'i': 2, 'w': 3, 'b': 1, 'n': 8}, {'center': 109, 'edges': [107.5, 110.5], 'averaged_center': 109.0, 'averaged_step': 4, 'window_center': 115.0, 'window_extent': 31}), ({'c0': 101, 'd': 4, 'i': 0, 'w': 3, 'b': 2, 'n': 1}, {'center': 101, 'edges': [99.5, 102.5], 'averaged_center': 103.0, 'averaged_step': 8, 'window_center': 101.0, 'window_extent': 3}), ({'c0': 101, 'd': 2, 'i': 2, 'w': 8, 'b': 2, 'n': 8}, {'center': 105, 'edges': [101.0, 109.0], 'averaged_center': 110.0, 'averaged_step': 4, 'window_center': 108.0, 'window_extent': 22})], 3: [({'c0': 102, 'd': 4, 'i': 2, 'w': 3, 'b': 2, 'n': 8}, {'center': 110, 'edges': [108.5, 111.5], 'averaged_center': 120.0, 'averaged_step': 8, 'window_center': 116.0, 'window_extent': 31}), ({'c0': 102, 'd': -4, 'i': 2, 'w': 3, 'b': 2, 'n': 8}, {'center': 94, 'edges': [92.5, 95.5], 'averaged_center': 84.0, 'averaged_step': -8, 'window_center': 88.0, 'window_extent': 31}), ({'c0': 102, 'd': 4, 'i': 0, 'w': 3, 'b': 2, 'n': 8}, {'center': 102, 'edges': [100.5, 103.5], 'averaged_center': 104.0, 'averaged_step': 8, 'window_center': 116.0, 'window_extent': 31}), ({'c0': 102, 'd': 4, 'i': 2, 'w': 3, 'b': 1, 'n': 8}, {'center': 110, 'edges': [108.5, 111.5], 'averaged_center': 110.0, 'averaged_step': 4, 'window_center': 116.0, 'window_extent': 31}), ({'c0': 102, 'd': 4, 'i': 0, 'w': 3, 'b': 2, 'n': 1}, {'center': 102, 'edges': [100.5, 103.5], 'averaged_center': 104.0, 'averaged_step': 8, 'window_center': 102.0, 'window_extent': 3}), ({'c0': 102, 'd': 2, 'i': 2, 'w': 8, 'b': 2, 'n': 8}, {'center': 106, 'edges': [102.0, 110.0], 'averaged_center': 111.0, 'averaged_step': 4, 'window_center': 109.0, 'window_extent': 22})], 4: [({'c0': 103, 'd': 4, 'i': 2, 'w': 3, 'b': 2, 'n': 8}, {'center': 111, 'edges': [109.5, 112.5], 'averaged_center': 121.0, 'averaged_step': 8, 'window_center': 117.0, 'window_extent': 31}), ({'c0': 103, 'd': -4, 'i': 2, 'w': 3, 'b': 2, 'n': 8}, {'center': 95, 'edges': [93.5, 96.5], 'averaged_center': 85.0, 'averaged_step': -8, 'window_center': 89.0, 'window_extent': 31}), ({'c0': 103, 'd': 4, 'i': 0, 'w': 3, 'b': 2, 'n': 8}, {'center': 103, 'edges': [101.5, 104.5], 'averaged_center': 105.0, 'averaged_step': 8, 'window_center': 117.0, 'window_extent': 31}), ({'c0': 103, 'd': 4, 'i': 2, 'w': 3, 'b': 1, 'n': 8}, {'center': 111, 'edges': [109.5, 112.5], 'averaged_center': 111.0, 'averaged_step': 4, 'window_center': 117.0, 'window_extent': 31}), ({'c0': 103, 'd': 4, 'i': 0, 'w': 3, 'b': 2, 'n': 1}, {'center': 103, 'edges': [101.5, 104.5], 'averaged_center': 105.0, 'averaged_step': 8, 'window_center': 103.0, 'window_extent': 3}), ({'c0': 103, 'd': 2, 'i': 2, 'w': 8, 'b': 2, 'n': 8}, {'center': 107, 'edges': [103.0, 111.0], 'averaged_center': 112.0, 'averaged_step': 4, 'window_center': 110.0, 'window_extent': 22})], 5: [({'c0': 104, 'd': 4, 'i': 2, 'w': 3, 'b': 2, 'n': 8}, {'center': 112, 'edges': [110.5, 113.5], 'averaged_center': 122.0, 'averaged_step': 8, 'window_center': 118.0, 'window_extent': 31}), ({'c0': 104, 'd': -4, 'i': 2, 'w': 3, 'b': 2, 'n': 8}, {'center': 96, 'edges': [94.5, 97.5], 'averaged_center': 86.0, 'averaged_step': -8, 'window_center': 90.0, 'window_extent': 31}), ({'c0': 104, 'd': 4, 'i': 0, 'w': 3, 'b': 2, 'n': 8}, {'center': 104, 'edges': [102.5, 105.5], 'averaged_center': 106.0, 'averaged_step': 8, 'window_center': 118.0, 'window_extent': 31}), ({'c0': 104, 'd': 4, 'i': 2, 'w': 3, 'b': 1, 'n': 8}, {'center': 112, 'edges': [110.5, 113.5], 'averaged_center': 112.0, 'averaged_step': 4, 'window_center': 118.0, 'window_extent': 31}), ({'c0': 104, 'd': 4, 'i': 0, 'w': 3, 'b': 2, 'n': 1}, {'center': 104, 'edges': [102.5, 105.5], 'averaged_center': 106.0, 'averaged_step': 8, 'window_center': 104.0, 'window_extent': 3}), ({'c0': 104, 'd': 2, 'i': 2, 'w': 8, 'b': 2, 'n': 8}, {'center': 108, 'edges': [104.0, 112.0], 'averaged_center': 113.0, 'averaged_step': 4, 'window_center': 111.0, 'window_extent': 22})]}\nfor i, (record, expected) in enumerate(fixtures[N]):\n    check('astronomical fixture %s' % i, solve(record), 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":"f14467ae52ad3ff58d25384fb7afb7ad62d0cb97d36cec7c36283f7301567526","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(d):\n    return {'center': d['c0']+d['i']*d['d'], 'edges': [d['c0']+d['i']*d['d']-d['w']/2,d['c0']+d['i']*d['d']+d['w']/2], 'averaged_center': d['c0']+d['i']*d['b']*d['d'], 'averaged_step': d['b']*d['d'], 'window_center': d['c0']+(d['n']-1)*d['d']/2, 'window_extent': abs((d['n']-1)*d['d'])+d['w']}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = {1: [({'c0': 100, 'd': 4, 'i': 2, 'w': 3, 'b': 2, 'n': 8}, {'center': 108, 'edges': [106.5, 109.5], 'averaged_center': 118.0, 'averaged_step': 8, 'window_center': 114.0, 'window_extent': 31}), ({'c0': 100, 'd': -4, 'i': 2, 'w': 3, 'b': 2, 'n': 8}, {'center': 92, 'edges': [90.5, 93.5], 'averaged_center': 82.0, 'averaged_step': -8, 'window_center': 86.0, 'window_extent': 31}), ({'c0': 100, 'd': 4, 'i': 0, 'w': 3, 'b': 2, 'n': 8}, {'center': 100, 'edges': [98.5, 101.5], 'averaged_center': 102.0, 'averaged_step': 8, 'window_center': 114.0, 'window_extent': 31}), ({'c0': 100, 'd': 4, 'i': 2, 'w': 3, 'b': 1, 'n': 8}, {'center': 108, 'edges': [106.5, 109.5], 'averaged_center': 108.0, 'averaged_step': 4, 'window_center': 114.0, 'window_extent': 31}), ({'c0': 100, 'd': 4, 'i': 0, 'w': 3, 'b': 2, 'n': 1}, {'center': 100, 'edges': [98.5, 101.5], 'averaged_center': 102.0, 'averaged_step': 8, 'window_center': 100.0, 'window_extent': 3}), ({'c0': 100, 'd': 2, 'i': 2, 'w': 8, 'b': 2, 'n': 8}, {'center': 104, 'edges': [100.0, 108.0], 'averaged_center': 109.0, 'averaged_step': 4, 'window_center': 107.0, 'window_extent': 22})], 2: [({'c0': 101, 'd': 4, 'i': 2, 'w': 3, 'b': 2, 'n': 8}, {'center': 109, 'edges': [107.5, 110.5], 'averaged_center': 119.0, 'averaged_step': 8, 'window_center': 115.0, 'window_extent': 31}), ({'c0': 101, 'd': -4, 'i': 2, 'w': 3, 'b': 2, 'n': 8}, {'center': 93, 'edges': [91.5, 94.5], 'averaged_center': 83.0, 'averaged_step': -8, 'window_center': 87.0, 'window_extent': 31}), ({'c0': 101, 'd': 4, 'i': 0, 'w': 3, 'b': 2, 'n': 8}, {'center': 101, 'edges': [99.5, 102.5], 'averaged_center': 103.0, 'averaged_step': 8, 'window_center': 115.0, 'window_extent': 31}), ({'c0': 101, 'd': 4, 'i': 2, 'w': 3, 'b': 1, 'n': 8}, {'center': 109, 'edges': [107.5, 110.5], 'averaged_center': 109.0, 'averaged_step': 4, 'window_center': 115.0, 'window_extent': 31}), ({'c0': 101, 'd': 4, 'i': 0, 'w': 3, 'b': 2, 'n': 1}, {'center': 101, 'edges': [99.5, 102.5], 'averaged_center': 103.0, 'averaged_step': 8, 'window_center': 101.0, 'window_extent': 3}), ({'c0': 101, 'd': 2, 'i': 2, 'w': 8, 'b': 2, 'n': 8}, {'center': 105, 'edges': [101.0, 109.0], 'averaged_center': 110.0, 'averaged_step': 4, 'window_center': 108.0, 'window_extent': 22})], 3: [({'c0': 102, 'd': 4, 'i': 2, 'w': 3, 'b': 2, 'n': 8}, {'center': 110, 'edges': [108.5, 111.5], 'averaged_center': 120.0, 'averaged_step': 8, 'window_center': 116.0, 'window_extent': 31}), ({'c0': 102, 'd': -4, 'i': 2, 'w': 3, 'b': 2, 'n': 8}, {'center': 94, 'edges': [92.5, 95.5], 'averaged_center': 84.0, 'averaged_step': -8, 'window_center': 88.0, 'window_extent': 31}), ({'c0': 102, 'd': 4, 'i': 0, 'w': 3, 'b': 2, 'n': 8}, {'center': 102, 'edges': [100.5, 103.5], 'averaged_center': 104.0, 'averaged_step': 8, 'window_center': 116.0, 'window_extent': 31}), ({'c0': 102, 'd': 4, 'i': 2, 'w': 3, 'b': 1, 'n': 8}, {'center': 110, 'edges': [108.5, 111.5], 'averaged_center': 110.0, 'averaged_step': 4, 'window_center': 116.0, 'window_extent': 31}), ({'c0': 102, 'd': 4, 'i': 0, 'w': 3, 'b': 2, 'n': 1}, {'center': 102, 'edges': [100.5, 103.5], 'averaged_center': 104.0, 'averaged_step': 8, 'window_center': 102.0, 'window_extent': 3}), ({'c0': 102, 'd': 2, 'i': 2, 'w': 8, 'b': 2, 'n': 8}, {'center': 106, 'edges': [102.0, 110.0], 'averaged_center': 111.0, 'averaged_step': 4, 'window_center': 109.0, 'window_extent': 22})], 4: [({'c0': 103, 'd': 4, 'i': 2, 'w': 3, 'b': 2, 'n': 8}, {'center': 111, 'edges': [109.5, 112.5], 'averaged_center': 121.0, 'averaged_step': 8, 'window_center': 117.0, 'window_extent': 31}), ({'c0': 103, 'd': -4, 'i': 2, 'w': 3, 'b': 2, 'n': 8}, {'center': 95, 'edges': [93.5, 96.5], 'averaged_center': 85.0, 'averaged_step': -8, 'window_center': 89.0, 'window_extent': 31}), ({'c0': 103, 'd': 4, 'i': 0, 'w': 3, 'b': 2, 'n': 8}, {'center': 103, 'edges': [101.5, 104.5], 'averaged_center': 105.0, 'averaged_step': 8, 'window_center': 117.0, 'window_extent': 31}), ({'c0': 103, 'd': 4, 'i': 2, 'w': 3, 'b': 1, 'n': 8}, {'center': 111, 'edges': [109.5, 112.5], 'averaged_center': 111.0, 'averaged_step': 4, 'window_center': 117.0, 'window_extent': 31}), ({'c0': 103, 'd': 4, 'i': 0, 'w': 3, 'b': 2, 'n': 1}, {'center': 103, 'edges': [101.5, 104.5], 'averaged_center': 105.0, 'averaged_step': 8, 'window_center': 103.0, 'window_extent': 3}), ({'c0': 103, 'd': 2, 'i': 2, 'w': 8, 'b': 2, 'n': 8}, {'center': 107, 'edges': [103.0, 111.0], 'averaged_center': 112.0, 'averaged_step': 4, 'window_center': 110.0, 'window_extent': 22})], 5: [({'c0': 104, 'd': 4, 'i': 2, 'w': 3, 'b': 2, 'n': 8}, {'center': 112, 'edges': [110.5, 113.5], 'averaged_center': 122.0, 'averaged_step': 8, 'window_center': 118.0, 'window_extent': 31}), ({'c0': 104, 'd': -4, 'i': 2, 'w': 3, 'b': 2, 'n': 8}, {'center': 96, 'edges': [94.5, 97.5], 'averaged_center': 86.0, 'averaged_step': -8, 'window_center': 90.0, 'window_extent': 31}), ({'c0': 104, 'd': 4, 'i': 0, 'w': 3, 'b': 2, 'n': 8}, {'center': 104, 'edges': [102.5, 105.5], 'averaged_center': 106.0, 'averaged_step': 8, 'window_center': 118.0, 'window_extent': 31}), ({'c0': 104, 'd': 4, 'i': 2, 'w': 3, 'b': 1, 'n': 8}, {'center': 112, 'edges': [110.5, 113.5], 'averaged_center': 112.0, 'averaged_step': 4, 'window_center': 118.0, 'window_extent': 31}), ({'c0': 104, 'd': 4, 'i': 0, 'w': 3, 'b': 2, 'n': 1}, {'center': 104, 'edges': [102.5, 105.5], 'averaged_center': 106.0, 'averaged_step': 8, 'window_center': 104.0, 'window_extent': 3}), ({'c0': 104, 'd': 2, 'i': 2, 'w': 8, 'b': 2, 'n': 8}, {'center': 108, 'edges': [104.0, 112.0], 'averaged_center': 113.0, 'averaged_step': 4, 'window_center': 111.0, 'window_extent': 22})]}\nfor i, (record, expected) in enumerate(fixtures[N]):\n    check('astronomical fixture %s' % i, solve(record), 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":"a9d0a7962a371d3935df31ba96bbbc7dbde0495715ee41da5449dd15764d6692","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(d):\n    return {'center': d['c0']+d['i']*d['d'], 'edges': [d['c0']+d['i']*d['d']-d['w']/2,d['c0']+d['i']*d['d']+d['w']/2], 'averaged_center': d['c0']+(d['i']*d['b']+(d['b']-1)/2)*d['d'], 'averaged_step': d['b']*d['d'], 'window_center': d['c0']+(d['n']-1)*d['d']/2, 'window_extent': abs((d['n']-1)*d['d'])+d['w']}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = {1: [({'c0': 100, 'd': 4, 'i': 2, 'w': 3, 'b': 2, 'n': 8}, {'center': 108, 'edges': [106.5, 109.5], 'averaged_center': 118.0, 'averaged_step': 8, 'window_center': 114.0, 'window_extent': 31}), ({'c0': 100, 'd': -4, 'i': 2, 'w': 3, 'b': 2, 'n': 8}, {'center': 92, 'edges': [90.5, 93.5], 'averaged_center': 82.0, 'averaged_step': -8, 'window_center': 86.0, 'window_extent': 31}), ({'c0': 100, 'd': 4, 'i': 0, 'w': 3, 'b': 2, 'n': 8}, {'center': 100, 'edges': [98.5, 101.5], 'averaged_center': 102.0, 'averaged_step': 8, 'window_center': 114.0, 'window_extent': 31}), ({'c0': 100, 'd': 4, 'i': 2, 'w': 3, 'b': 1, 'n': 8}, {'center': 108, 'edges': [106.5, 109.5], 'averaged_center': 108.0, 'averaged_step': 4, 'window_center': 114.0, 'window_extent': 31}), ({'c0': 100, 'd': 4, 'i': 0, 'w': 3, 'b': 2, 'n': 1}, {'center': 100, 'edges': [98.5, 101.5], 'averaged_center': 102.0, 'averaged_step': 8, 'window_center': 100.0, 'window_extent': 3}), ({'c0': 100, 'd': 2, 'i': 2, 'w': 8, 'b': 2, 'n': 8}, {'center': 104, 'edges': [100.0, 108.0], 'averaged_center': 109.0, 'averaged_step': 4, 'window_center': 107.0, 'window_extent': 22})], 2: [({'c0': 101, 'd': 4, 'i': 2, 'w': 3, 'b': 2, 'n': 8}, {'center': 109, 'edges': [107.5, 110.5], 'averaged_center': 119.0, 'averaged_step': 8, 'window_center': 115.0, 'window_extent': 31}), ({'c0': 101, 'd': -4, 'i': 2, 'w': 3, 'b': 2, 'n': 8}, {'center': 93, 'edges': [91.5, 94.5], 'averaged_center': 83.0, 'averaged_step': -8, 'window_center': 87.0, 'window_extent': 31}), ({'c0': 101, 'd': 4, 'i': 0, 'w': 3, 'b': 2, 'n': 8}, {'center': 101, 'edges': [99.5, 102.5], 'averaged_center': 103.0, 'averaged_step': 8, 'window_center': 115.0, 'window_extent': 31}), ({'c0': 101, 'd': 4, 'i': 2, 'w': 3, 'b': 1, 'n': 8}, {'center': 109, 'edges': [107.5, 110.5], 'averaged_center': 109.0, 'averaged_step': 4, 'window_center': 115.0, 'window_extent': 31}), ({'c0': 101, 'd': 4, 'i': 0, 'w': 3, 'b': 2, 'n': 1}, {'center': 101, 'edges': [99.5, 102.5], 'averaged_center': 103.0, 'averaged_step': 8, 'window_center': 101.0, 'window_extent': 3}), ({'c0': 101, 'd': 2, 'i': 2, 'w': 8, 'b': 2, 'n': 8}, {'center': 105, 'edges': [101.0, 109.0], 'averaged_center': 110.0, 'averaged_step': 4, 'window_center': 108.0, 'window_extent': 22})], 3: [({'c0': 102, 'd': 4, 'i': 2, 'w': 3, 'b': 2, 'n': 8}, {'center': 110, 'edges': [108.5, 111.5], 'averaged_center': 120.0, 'averaged_step': 8, 'window_center': 116.0, 'window_extent': 31}), ({'c0': 102, 'd': -4, 'i': 2, 'w': 3, 'b': 2, 'n': 8}, {'center': 94, 'edges': [92.5, 95.5], 'averaged_center': 84.0, 'averaged_step': -8, 'window_center': 88.0, 'window_extent': 31}), ({'c0': 102, 'd': 4, 'i': 0, 'w': 3, 'b': 2, 'n': 8}, {'center': 102, 'edges': [100.5, 103.5], 'averaged_center': 104.0, 'averaged_step': 8, 'window_center': 116.0, 'window_extent': 31}), ({'c0': 102, 'd': 4, 'i': 2, 'w': 3, 'b': 1, 'n': 8}, {'center': 110, 'edges': [108.5, 111.5], 'averaged_center': 110.0, 'averaged_step': 4, 'window_center': 116.0, 'window_extent': 31}), ({'c0': 102, 'd': 4, 'i': 0, 'w': 3, 'b': 2, 'n': 1}, {'center': 102, 'edges': [100.5, 103.5], 'averaged_center': 104.0, 'averaged_step': 8, 'window_center': 102.0, 'window_extent': 3}), ({'c0': 102, 'd': 2, 'i': 2, 'w': 8, 'b': 2, 'n': 8}, {'center': 106, 'edges': [102.0, 110.0], 'averaged_center': 111.0, 'averaged_step': 4, 'window_center': 109.0, 'window_extent': 22})], 4: [({'c0': 103, 'd': 4, 'i': 2, 'w': 3, 'b': 2, 'n': 8}, {'center': 111, 'edges': [109.5, 112.5], 'averaged_center': 121.0, 'averaged_step': 8, 'window_center': 117.0, 'window_extent': 31}), ({'c0': 103, 'd': -4, 'i': 2, 'w': 3, 'b': 2, 'n': 8}, {'center': 95, 'edges': [93.5, 96.5], 'averaged_center': 85.0, 'averaged_step': -8, 'window_center': 89.0, 'window_extent': 31}), ({'c0': 103, 'd': 4, 'i': 0, 'w': 3, 'b': 2, 'n': 8}, {'center': 103, 'edges': [101.5, 104.5], 'averaged_center': 105.0, 'averaged_step': 8, 'window_center': 117.0, 'window_extent': 31}), ({'c0': 103, 'd': 4, 'i': 2, 'w': 3, 'b': 1, 'n': 8}, {'center': 111, 'edges': [109.5, 112.5], 'averaged_center': 111.0, 'averaged_step': 4, 'window_center': 117.0, 'window_extent': 31}), ({'c0': 103, 'd': 4, 'i': 0, 'w': 3, 'b': 2, 'n': 1}, {'center': 103, 'edges': [101.5, 104.5], 'averaged_center': 105.0, 'averaged_step': 8, 'window_center': 103.0, 'window_extent': 3}), ({'c0': 103, 'd': 2, 'i': 2, 'w': 8, 'b': 2, 'n': 8}, {'center': 107, 'edges': [103.0, 111.0], 'averaged_center': 112.0, 'averaged_step': 4, 'window_center': 110.0, 'window_extent': 22})], 5: [({'c0': 104, 'd': 4, 'i': 2, 'w': 3, 'b': 2, 'n': 8}, {'center': 112, 'edges': [110.5, 113.5], 'averaged_center': 122.0, 'averaged_step': 8, 'window_center': 118.0, 'window_extent': 31}), ({'c0': 104, 'd': -4, 'i': 2, 'w': 3, 'b': 2, 'n': 8}, {'center': 96, 'edges': [94.5, 97.5], 'averaged_center': 86.0, 'averaged_step': -8, 'window_center': 90.0, 'window_extent': 31}), ({'c0': 104, 'd': 4, 'i': 0, 'w': 3, 'b': 2, 'n': 8}, {'center': 104, 'edges': [102.5, 105.5], 'averaged_center': 106.0, 'averaged_step': 8, 'window_center': 118.0, 'window_extent': 31}), ({'c0': 104, 'd': 4, 'i': 2, 'w': 3, 'b': 1, 'n': 8}, {'center': 112, 'edges': [110.5, 113.5], 'averaged_center': 112.0, 'averaged_step': 4, 'window_center': 118.0, 'window_extent': 31}), ({'c0': 104, 'd': 4, 'i': 0, 'w': 3, 'b': 2, 'n': 1}, {'center': 104, 'edges': [102.5, 105.5], 'averaged_center': 106.0, 'averaged_step': 8, 'window_center': 104.0, 'window_extent': 3}), ({'c0': 104, 'd': 2, 'i': 2, 'w': 8, 'b': 2, 'n': 8}, {'center': 108, 'edges': [104.0, 112.0], 'averaged_center': 113.0, 'averaged_step': 4, 'window_center': 111.0, 'window_extent': 22})]}\nfor i, (record, expected) in enumerate(fixtures[N]):\n    check('astronomical fixture %s' % i, solve(record), 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":"Explicitly stipulated finite algebraic adapter; no standards conformance, physical accuracy, or production-library claim. Inputs are the documented finite valid model domain. 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":"s3-astronomical-coordinate-conventions-spectral-channel-edges-averaged_center","generated_at":"2026-09-29T14:45:59.862259+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Catalog, detector, sky-coordinate, and spectroscopy adapters must preserve the association between numeric coordinates and their declared reference conventions.","repair":"Preserve the declared model convention at this site: d['c0']+(d['i']*d['b']+(d['b']-1)/2)*d['d']","root_cause":"Channel averaging locates the output at the first input rather than its center. Faulty expression: d['c0']+d['i']*d['b']*d['d']","sha256":"c50adab0a9cf688f24dbed80d9afd0a52140de01e2e1dabb2293a6dc71853479","title":"Spectral channel edges: Channel averaging locates the output at the first input rather than its center · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":40.363,"exit_code":1,"observations":[{"actual":{"averaged_center":120.0,"averaged_step":8,"center":108,"edges":[106.5,109.5],"window_center":114.0,"window_extent":31},"check":"astronomical fixture 0","expected":{"averaged_center":118.0,"averaged_step":8,"center":108,"edges":[106.5,109.5],"window_center":114.0,"window_extent":31},"passed":false},{"actual":{"averaged_center":80.0,"averaged_step":-8,"center":92,"edges":[90.5,93.5],"window_center":86.0,"window_extent":31},"check":"astronomical fixture 1","expected":{"averaged_center":82.0,"averaged_step":-8,"center":92,"edges":[90.5,93.5],"window_center":86.0,"window_extent":31},"passed":false},{"actual":{"averaged_center":104.0,"averaged_step":8,"center":100,"edges":[98.5,101.5],"window_center":114.0,"window_extent":31},"check":"astronomical fixture 2","expected":{"averaged_center":102.0,"averaged_step":8,"center":100,"edges":[98.5,101.5],"window_center":114.0,"window_extent":31},"passed":false},{"actual":{"averaged_center":110.0,"averaged_step":4,"center":108,"edges":[106.5,109.5],"window_center":114.0,"window_extent":31},"check":"astronomical fixture 3","expected":{"averaged_center":108.0,"averaged_step":4,"center":108,"edges":[106.5,109.5],"window_center":114.0,"window_extent":31},"passed":false},{"actual":{"averaged_center":104.0,"averaged_step":8,"center":100,"edges":[98.5,101.5],"window_center":100.0,"window_extent":3},"check":"astronomical fixture 4","expected":{"averaged_center":102.0,"averaged_step":8,"center":100,"edges":[98.5,101.5],"window_center":100.0,"window_extent":3},"passed":false},{"actual":{"averaged_center":110.0,"averaged_step":4,"center":104,"edges":[100.0,108.0],"window_center":107.0,"window_extent":22},"check":"astronomical fixture 5","expected":{"averaged_center":109.0,"averaged_step":4,"center":104,"edges":[100.0,108.0],"window_center":107.0,"window_extent":22},"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"astronomical fixture 0\", \"actual\": {\"center\": 108, \"edges\": [106.5, 109.5], \"averaged_center\": 120.0, \"averaged_step\": 8, \"window_center\": 114.0, \"window_extent\": 31}, \"expected\": {\"center\": 108, \"edges\": [106.5, 109.5], \"averaged_center\": 118.0, \"averaged_step\": 8, \"window_center\": 114.0, \"window_extent\": 31}, \"passed\": false}, {\"check\": \"astronomical fixture 1\", \"actual\": {\"center\": 92, \"edges\": [90.5, 93.5], \"averaged_center\": 80.0, \"averaged_step\": -8, \"window_center\": 86.0, \"window_extent\": 31}, \"expected\": {\"center\": 92, \"edges\": [90.5, 93.5], \"averaged_center\": 82.0, \"averaged_step\": -8, \"window_center\": 86.0, \"window_extent\": 31}, \"passed\": false}, {\"check\": \"astronomical fixture 2\", \"actual\": {\"center\": 100, \"edges\": [98.5, 101.5], \"averaged_center\": 104.0, \"averaged_step\": 8, \"window_center\": 114.0, \"window_extent\": 31}, \"expected\": {\"center\": 100, \"edges\": [98.5, 101.5], \"averaged_center\": 102.0, \"averaged_step\": 8, \"window_center\": 114.0, \"window_extent\": 31}, \"passed\": false}, {\"check\": \"astronomical fixture 3\", \"actual\": {\"center\": 108, \"edges\": [106.5, 109.5], \"averaged_center\": 110.0, \"averaged_step\": 4, \"window_center\": 114.0, \"window_extent\": 31}, \"expected\": {\"center\": 108, \"edges\": [106.5, 109.5], \"averaged_center\": 108.0, \"averaged_step\": 4, \"window_center\": 114.0, \"window_extent\": 31}, \"passed\": false}, {\"check\": \"astronomical fixture 4\", \"actual\": {\"center\": 100, \"edges\": [98.5, 101.5], \"averaged_center\": 104.0, \"averaged_step\": 8, \"window_center\": 100.0, \"window_extent\": 3}, \"expected\": {\"center\": 100, \"edges\": [98.5, 101.5], \"averaged_center\": 102.0, \"averaged_step\": 8, \"window_center\": 100.0, \"window_extent\": 3}, \"passed\": false}, {\"check\": \"astronomical fixture 5\", \"actual\": {\"center\": 104, \"edges\": [100.0, 108.0], \"averaged_center\": 110.0, \"averaged_step\": 4, \"window_center\": 107.0, \"window_extent\": 22}, \"expected\": {\"center\": 104, \"edges\": [100.0, 108.0], \"averaged_center\": 109.0, \"averaged_step\": 4, \"window_center\": 107.0, \"window_extent\": 22}, \"passed\": false}], \"passed\": false}\n"},"broken":{"elapsed_ms":43.805,"exit_code":1,"observations":[{"actual":{"averaged_center":116,"averaged_step":8,"center":108,"edges":[106.5,109.5],"window_center":114.0,"window_extent":31},"check":"astronomical fixture 0","expected":{"averaged_center":118.0,"averaged_step":8,"center":108,"edges":[106.5,109.5],"window_center":114.0,"window_extent":31},"passed":false},{"actual":{"averaged_center":84,"averaged_step":-8,"center":92,"edges":[90.5,93.5],"window_center":86.0,"window_extent":31},"check":"astronomical fixture 1","expected":{"averaged_center":82.0,"averaged_step":-8,"center":92,"edges":[90.5,93.5],"window_center":86.0,"window_extent":31},"passed":false},{"actual":{"averaged_center":100,"averaged_step":8,"center":100,"edges":[98.5,101.5],"window_center":114.0,"window_extent":31},"check":"astronomical fixture 2","expected":{"averaged_center":102.0,"averaged_step":8,"center":100,"edges":[98.5,101.5],"window_center":114.0,"window_extent":31},"passed":false},{"actual":{"averaged_center":108,"averaged_step":4,"center":108,"edges":[106.5,109.5],"window_center":114.0,"window_extent":31},"check":"astronomical fixture 3","expected":{"averaged_center":108.0,"averaged_step":4,"center":108,"edges":[106.5,109.5],"window_center":114.0,"window_extent":31},"passed":true},{"actual":{"averaged_center":100,"averaged_step":8,"center":100,"edges":[98.5,101.5],"window_center":100.0,"window_extent":3},"check":"astronomical fixture 4","expected":{"averaged_center":102.0,"averaged_step":8,"center":100,"edges":[98.5,101.5],"window_center":100.0,"window_extent":3},"passed":false},{"actual":{"averaged_center":108,"averaged_step":4,"center":104,"edges":[100.0,108.0],"window_center":107.0,"window_extent":22},"check":"astronomical fixture 5","expected":{"averaged_center":109.0,"averaged_step":4,"center":104,"edges":[100.0,108.0],"window_center":107.0,"window_extent":22},"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"astronomical fixture 0\", \"actual\": {\"center\": 108, \"edges\": [106.5, 109.5], \"averaged_center\": 116, \"averaged_step\": 8, \"window_center\": 114.0, \"window_extent\": 31}, \"expected\": {\"center\": 108, \"edges\": [106.5, 109.5], \"averaged_center\": 118.0, \"averaged_step\": 8, \"window_center\": 114.0, \"window_extent\": 31}, \"passed\": false}, {\"check\": \"astronomical fixture 1\", \"actual\": {\"center\": 92, \"edges\": [90.5, 93.5], \"averaged_center\": 84, \"averaged_step\": -8, \"window_center\": 86.0, \"window_extent\": 31}, \"expected\": {\"center\": 92, \"edges\": [90.5, 93.5], \"averaged_center\": 82.0, \"averaged_step\": -8, \"window_center\": 86.0, \"window_extent\": 31}, \"passed\": false}, {\"check\": \"astronomical fixture 2\", \"actual\": {\"center\": 100, \"edges\": [98.5, 101.5], \"averaged_center\": 100, \"averaged_step\": 8, \"window_center\": 114.0, \"window_extent\": 31}, \"expected\": {\"center\": 100, \"edges\": [98.5, 101.5], \"averaged_center\": 102.0, \"averaged_step\": 8, \"window_center\": 114.0, \"window_extent\": 31}, \"passed\": false}, {\"check\": \"astronomical fixture 3\", \"actual\": {\"center\": 108, \"edges\": [106.5, 109.5], \"averaged_center\": 108, \"averaged_step\": 4, \"window_center\": 114.0, \"window_extent\": 31}, \"expected\": {\"center\": 108, \"edges\": [106.5, 109.5], \"averaged_center\": 108.0, \"averaged_step\": 4, \"window_center\": 114.0, \"window_extent\": 31}, \"passed\": true}, {\"check\": \"astronomical fixture 4\", \"actual\": {\"center\": 100, \"edges\": [98.5, 101.5], \"averaged_center\": 100, \"averaged_step\": 8, \"window_center\": 100.0, \"window_extent\": 3}, \"expected\": {\"center\": 100, \"edges\": [98.5, 101.5], \"averaged_center\": 102.0, \"averaged_step\": 8, \"window_center\": 100.0, \"window_extent\": 3}, \"passed\": false}, {\"check\": \"astronomical fixture 5\", \"actual\": {\"center\": 104, \"edges\": [100.0, 108.0], \"averaged_center\": 108, \"averaged_step\": 4, \"window_center\": 107.0, \"window_extent\": 22}, \"expected\": {\"center\": 104, \"edges\": [100.0, 108.0], \"averaged_center\": 109.0, \"averaged_step\": 4, \"window_center\": 107.0, \"window_extent\": 22}, \"passed\": false}], \"passed\": false}\n"},"fixed":{"elapsed_ms":41.741,"exit_code":0,"observations":[{"actual":{"averaged_center":118.0,"averaged_step":8,"center":108,"edges":[106.5,109.5],"window_center":114.0,"window_extent":31},"check":"astronomical fixture 0","expected":{"averaged_center":118.0,"averaged_step":8,"center":108,"edges":[106.5,109.5],"window_center":114.0,"window_extent":31},"passed":true},{"actual":{"averaged_center":82.0,"averaged_step":-8,"center":92,"edges":[90.5,93.5],"window_center":86.0,"window_extent":31},"check":"astronomical fixture 1","expected":{"averaged_center":82.0,"averaged_step":-8,"center":92,"edges":[90.5,93.5],"window_center":86.0,"window_extent":31},"passed":true},{"actual":{"averaged_center":102.0,"averaged_step":8,"center":100,"edges":[98.5,101.5],"window_center":114.0,"window_extent":31},"check":"astronomical fixture 2","expected":{"averaged_center":102.0,"averaged_step":8,"center":100,"edges":[98.5,101.5],"window_center":114.0,"window_extent":31},"passed":true},{"actual":{"averaged_center":108.0,"averaged_step":4,"center":108,"edges":[106.5,109.5],"window_center":114.0,"window_extent":31},"check":"astronomical fixture 3","expected":{"averaged_center":108.0,"averaged_step":4,"center":108,"edges":[106.5,109.5],"window_center":114.0,"window_extent":31},"passed":true},{"actual":{"averaged_center":102.0,"averaged_step":8,"center":100,"edges":[98.5,101.5],"window_center":100.0,"window_extent":3},"check":"astronomical fixture 4","expected":{"averaged_center":102.0,"averaged_step":8,"center":100,"edges":[98.5,101.5],"window_center":100.0,"window_extent":3},"passed":true},{"actual":{"averaged_center":109.0,"averaged_step":4,"center":104,"edges":[100.0,108.0],"window_center":107.0,"window_extent":22},"check":"astronomical fixture 5","expected":{"averaged_center":109.0,"averaged_step":4,"center":104,"edges":[100.0,108.0],"window_center":107.0,"window_extent":22},"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"astronomical fixture 0\", \"actual\": {\"center\": 108, \"edges\": [106.5, 109.5], \"averaged_center\": 118.0, \"averaged_step\": 8, \"window_center\": 114.0, \"window_extent\": 31}, \"expected\": {\"center\": 108, \"edges\": [106.5, 109.5], \"averaged_center\": 118.0, \"averaged_step\": 8, \"window_center\": 114.0, \"window_extent\": 31}, \"passed\": true}, {\"check\": \"astronomical fixture 1\", \"actual\": {\"center\": 92, \"edges\": [90.5, 93.5], \"averaged_center\": 82.0, \"averaged_step\": -8, \"window_center\": 86.0, \"window_extent\": 31}, \"expected\": {\"center\": 92, \"edges\": [90.5, 93.5], \"averaged_center\": 82.0, \"averaged_step\": -8, \"window_center\": 86.0, \"window_extent\": 31}, \"passed\": true}, {\"check\": \"astronomical fixture 2\", \"actual\": {\"center\": 100, \"edges\": [98.5, 101.5], \"averaged_center\": 102.0, \"averaged_step\": 8, \"window_center\": 114.0, \"window_extent\": 31}, \"expected\": {\"center\": 100, \"edges\": [98.5, 101.5], \"averaged_center\": 102.0, \"averaged_step\": 8, \"window_center\": 114.0, \"window_extent\": 31}, \"passed\": true}, {\"check\": \"astronomical fixture 3\", \"actual\": {\"center\": 108, \"edges\": [106.5, 109.5], \"averaged_center\": 108.0, \"averaged_step\": 4, \"window_center\": 114.0, \"window_extent\": 31}, \"expected\": {\"center\": 108, \"edges\": [106.5, 109.5], \"averaged_center\": 108.0, \"averaged_step\": 4, \"window_center\": 114.0, \"window_extent\": 31}, \"passed\": true}, {\"check\": \"astronomical fixture 4\", \"actual\": {\"center\": 100, \"edges\": [98.5, 101.5], \"averaged_center\": 102.0, \"averaged_step\": 8, \"window_center\": 100.0, \"window_extent\": 3}, \"expected\": {\"center\": 100, \"edges\": [98.5, 101.5], \"averaged_center\": 102.0, \"averaged_step\": 8, \"window_center\": 100.0, \"window_extent\": 3}, \"passed\": true}, {\"check\": \"astronomical fixture 5\", \"actual\": {\"center\": 104, \"edges\": [100.0, 108.0], \"averaged_center\": 109.0, \"averaged_step\": 4, \"window_center\": 107.0, \"window_extent\": 22}, \"expected\": {\"center\": 104, \"edges\": [100.0, 108.0], \"averaged_center\": 109.0, \"averaged_step\": 4, \"window_center\": 107.0, \"window_extent\": 22}, \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}