{"abstract":"The adapter reports an incorrect next order wavelength while other fields remain valid.","category":"Astronomical coordinate conventions","checks":6,"contract":"A stipulated grating adapter supplies spacing g, signed sine of incidence a, signed sine of diffraction b, positive order m, focal length F, and separate calibration line wavelength line. Wavelength is g*(a+b)/m. A Littrow reference has b=a; supplied diffraction cosine c permits a local angular dispersion derivative. Output fields are defined by: wavelength = d['g']*(d['a']+d['b'])/d['m']; littrow_wavelength = 2*d['g']*d['a']/d['m']; angular_dispersion = d['g']*d['c']/d['m']; linear_dispersion = d['g']*d['c']/(d['m']*d['F']); inferred_diffraction_sine = d['m']*d['line']/d['g']-d['a']; next_order_wavelength = d['g']*(d['a']+d['b'])/(d['m']+1)","contract_signature":"d","evaluation_group":"astro-spectrograph-grating-coordinate","failed_approach":"A partial convention repair still uses d['g']*(d['a']+d['b'])/(d['m']+d['b'])","family":"s3-astronomical-coordinate-conventions-spectrograph-grating-coordinate-next_order_wavelength","id":"FA-56216","implementations":{"attempt":{"sha256":"2082e27aa1469f5f7ce4b788d0d9e59d9c7032734cf7c03e96fc2a99e632fa36","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(d):\n    return {'wavelength': d['g']*(d['a']+d['b'])/d['m'], 'littrow_wavelength': 2*d['g']*d['a']/d['m'], 'angular_dispersion': d['g']*d['c']/d['m'], 'linear_dispersion': d['g']*d['c']/(d['m']*d['F']), 'inferred_diffraction_sine': d['m']*d['line']/d['g']-d['a'], 'next_order_wavelength': d['g']*(d['a']+d['b'])/(d['m']+d['b'])}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = {1: [({'g': 120, 'a': 0.5, 'b': 0.25, 'm': 3, 'F': 10, 'c': 0.5, 'line': 10}, {'wavelength': 30.0, 'littrow_wavelength': 40.0, 'angular_dispersion': 20.0, 'linear_dispersion': 2.0, 'inferred_diffraction_sine': -0.25, 'next_order_wavelength': 22.5}), ({'g': 120, 'a': 0, 'b': 0.25, 'm': 3, 'F': 10, 'c': 0.5, 'line': 10}, {'wavelength': 10.0, 'littrow_wavelength': 0.0, 'angular_dispersion': 20.0, 'linear_dispersion': 2.0, 'inferred_diffraction_sine': 0.25, 'next_order_wavelength': 7.5}), ({'g': 120, 'a': 0.5, 'b': -0.25, 'm': 3, 'F': 10, 'c': 0.5, 'line': 10}, {'wavelength': 10.0, 'littrow_wavelength': 40.0, 'angular_dispersion': 20.0, 'linear_dispersion': 2.0, 'inferred_diffraction_sine': -0.25, 'next_order_wavelength': 7.5}), ({'g': 120, 'a': 0.5, 'b': 0.25, 'm': 1, 'F': 10, 'c': 0.5, 'line': 10}, {'wavelength': 90.0, 'littrow_wavelength': 120.0, 'angular_dispersion': 60.0, 'linear_dispersion': 6.0, 'inferred_diffraction_sine': -0.4166666666666667, 'next_order_wavelength': 45.0}), ({'g': 120, 'a': 0.25, 'b': 0.25, 'm': 3, 'F': 10, 'c': 0.5, 'line': 10}, {'wavelength': 20.0, 'littrow_wavelength': 20.0, 'angular_dispersion': 20.0, 'linear_dispersion': 2.0, 'inferred_diffraction_sine': 0.0, 'next_order_wavelength': 15.0}), ({'g': 120, 'a': 0.5, 'b': 0.25, 'm': 3, 'F': 20, 'c': 1, 'line': 10}, {'wavelength': 30.0, 'littrow_wavelength': 40.0, 'angular_dispersion': 40.0, 'linear_dispersion': 2.0, 'inferred_diffraction_sine': -0.25, 'next_order_wavelength': 22.5})], 2: [({'g': 121, 'a': 0.5, 'b': 0.25, 'm': 3, 'F': 10, 'c': 0.5, 'line': 10}, {'wavelength': 30.25, 'littrow_wavelength': 40.333333333333336, 'angular_dispersion': 20.166666666666668, 'linear_dispersion': 2.0166666666666666, 'inferred_diffraction_sine': -0.25206611570247933, 'next_order_wavelength': 22.6875}), ({'g': 121, 'a': 0, 'b': 0.25, 'm': 3, 'F': 10, 'c': 0.5, 'line': 10}, {'wavelength': 10.083333333333334, 'littrow_wavelength': 0.0, 'angular_dispersion': 20.166666666666668, 'linear_dispersion': 2.0166666666666666, 'inferred_diffraction_sine': 0.24793388429752067, 'next_order_wavelength': 7.5625}), ({'g': 121, 'a': 0.5, 'b': -0.25, 'm': 3, 'F': 10, 'c': 0.5, 'line': 10}, {'wavelength': 10.083333333333334, 'littrow_wavelength': 40.333333333333336, 'angular_dispersion': 20.166666666666668, 'linear_dispersion': 2.0166666666666666, 'inferred_diffraction_sine': -0.25206611570247933, 'next_order_wavelength': 7.5625}), ({'g': 121, 'a': 0.5, 'b': 0.25, 'm': 1, 'F': 10, 'c': 0.5, 'line': 10}, {'wavelength': 90.75, 'littrow_wavelength': 121.0, 'angular_dispersion': 60.5, 'linear_dispersion': 6.05, 'inferred_diffraction_sine': -0.41735537190082644, 'next_order_wavelength': 45.375}), ({'g': 121, 'a': 0.25, 'b': 0.25, 'm': 3, 'F': 10, 'c': 0.5, 'line': 10}, {'wavelength': 20.166666666666668, 'littrow_wavelength': 20.166666666666668, 'angular_dispersion': 20.166666666666668, 'linear_dispersion': 2.0166666666666666, 'inferred_diffraction_sine': -0.002066115702479332, 'next_order_wavelength': 15.125}), ({'g': 121, 'a': 0.5, 'b': 0.25, 'm': 3, 'F': 20, 'c': 1, 'line': 10}, {'wavelength': 30.25, 'littrow_wavelength': 40.333333333333336, 'angular_dispersion': 40.333333333333336, 'linear_dispersion': 2.0166666666666666, 'inferred_diffraction_sine': -0.25206611570247933, 'next_order_wavelength': 22.6875})], 3: [({'g': 122, 'a': 0.5, 'b': 0.25, 'm': 3, 'F': 10, 'c': 0.5, 'line': 10}, {'wavelength': 30.5, 'littrow_wavelength': 40.666666666666664, 'angular_dispersion': 20.333333333333332, 'linear_dispersion': 2.033333333333333, 'inferred_diffraction_sine': -0.2540983606557377, 'next_order_wavelength': 22.875}), ({'g': 122, 'a': 0, 'b': 0.25, 'm': 3, 'F': 10, 'c': 0.5, 'line': 10}, {'wavelength': 10.166666666666666, 'littrow_wavelength': 0.0, 'angular_dispersion': 20.333333333333332, 'linear_dispersion': 2.033333333333333, 'inferred_diffraction_sine': 0.2459016393442623, 'next_order_wavelength': 7.625}), ({'g': 122, 'a': 0.5, 'b': -0.25, 'm': 3, 'F': 10, 'c': 0.5, 'line': 10}, {'wavelength': 10.166666666666666, 'littrow_wavelength': 40.666666666666664, 'angular_dispersion': 20.333333333333332, 'linear_dispersion': 2.033333333333333, 'inferred_diffraction_sine': -0.2540983606557377, 'next_order_wavelength': 7.625}), ({'g': 122, 'a': 0.5, 'b': 0.25, 'm': 1, 'F': 10, 'c': 0.5, 'line': 10}, {'wavelength': 91.5, 'littrow_wavelength': 122.0, 'angular_dispersion': 61.0, 'linear_dispersion': 6.1, 'inferred_diffraction_sine': -0.4180327868852459, 'next_order_wavelength': 45.75}), ({'g': 122, 'a': 0.25, 'b': 0.25, 'm': 3, 'F': 10, 'c': 0.5, 'line': 10}, {'wavelength': 20.333333333333332, 'littrow_wavelength': 20.333333333333332, 'angular_dispersion': 20.333333333333332, 'linear_dispersion': 2.033333333333333, 'inferred_diffraction_sine': -0.0040983606557377095, 'next_order_wavelength': 15.25}), ({'g': 122, 'a': 0.5, 'b': 0.25, 'm': 3, 'F': 20, 'c': 1, 'line': 10}, {'wavelength': 30.5, 'littrow_wavelength': 40.666666666666664, 'angular_dispersion': 40.666666666666664, 'linear_dispersion': 2.033333333333333, 'inferred_diffraction_sine': -0.2540983606557377, 'next_order_wavelength': 22.875})], 4: [({'g': 123, 'a': 0.5, 'b': 0.25, 'm': 3, 'F': 10, 'c': 0.5, 'line': 10}, {'wavelength': 30.75, 'littrow_wavelength': 41.0, 'angular_dispersion': 20.5, 'linear_dispersion': 2.05, 'inferred_diffraction_sine': -0.25609756097560976, 'next_order_wavelength': 23.0625}), ({'g': 123, 'a': 0, 'b': 0.25, 'm': 3, 'F': 10, 'c': 0.5, 'line': 10}, {'wavelength': 10.25, 'littrow_wavelength': 0.0, 'angular_dispersion': 20.5, 'linear_dispersion': 2.05, 'inferred_diffraction_sine': 0.24390243902439024, 'next_order_wavelength': 7.6875}), ({'g': 123, 'a': 0.5, 'b': -0.25, 'm': 3, 'F': 10, 'c': 0.5, 'line': 10}, {'wavelength': 10.25, 'littrow_wavelength': 41.0, 'angular_dispersion': 20.5, 'linear_dispersion': 2.05, 'inferred_diffraction_sine': -0.25609756097560976, 'next_order_wavelength': 7.6875}), ({'g': 123, 'a': 0.5, 'b': 0.25, 'm': 1, 'F': 10, 'c': 0.5, 'line': 10}, {'wavelength': 92.25, 'littrow_wavelength': 123.0, 'angular_dispersion': 61.5, 'linear_dispersion': 6.15, 'inferred_diffraction_sine': -0.4186991869918699, 'next_order_wavelength': 46.125}), ({'g': 123, 'a': 0.25, 'b': 0.25, 'm': 3, 'F': 10, 'c': 0.5, 'line': 10}, {'wavelength': 20.5, 'littrow_wavelength': 20.5, 'angular_dispersion': 20.5, 'linear_dispersion': 2.05, 'inferred_diffraction_sine': -0.0060975609756097615, 'next_order_wavelength': 15.375}), ({'g': 123, 'a': 0.5, 'b': 0.25, 'm': 3, 'F': 20, 'c': 1, 'line': 10}, {'wavelength': 30.75, 'littrow_wavelength': 41.0, 'angular_dispersion': 41.0, 'linear_dispersion': 2.05, 'inferred_diffraction_sine': -0.25609756097560976, 'next_order_wavelength': 23.0625})], 5: [({'g': 124, 'a': 0.5, 'b': 0.25, 'm': 3, 'F': 10, 'c': 0.5, 'line': 10}, {'wavelength': 31.0, 'littrow_wavelength': 41.333333333333336, 'angular_dispersion': 20.666666666666668, 'linear_dispersion': 2.066666666666667, 'inferred_diffraction_sine': -0.25806451612903225, 'next_order_wavelength': 23.25}), ({'g': 124, 'a': 0, 'b': 0.25, 'm': 3, 'F': 10, 'c': 0.5, 'line': 10}, {'wavelength': 10.333333333333334, 'littrow_wavelength': 0.0, 'angular_dispersion': 20.666666666666668, 'linear_dispersion': 2.066666666666667, 'inferred_diffraction_sine': 0.24193548387096775, 'next_order_wavelength': 7.75}), ({'g': 124, 'a': 0.5, 'b': -0.25, 'm': 3, 'F': 10, 'c': 0.5, 'line': 10}, {'wavelength': 10.333333333333334, 'littrow_wavelength': 41.333333333333336, 'angular_dispersion': 20.666666666666668, 'linear_dispersion': 2.066666666666667, 'inferred_diffraction_sine': -0.25806451612903225, 'next_order_wavelength': 7.75}), ({'g': 124, 'a': 0.5, 'b': 0.25, 'm': 1, 'F': 10, 'c': 0.5, 'line': 10}, {'wavelength': 93.0, 'littrow_wavelength': 124.0, 'angular_dispersion': 62.0, 'linear_dispersion': 6.2, 'inferred_diffraction_sine': -0.41935483870967744, 'next_order_wavelength': 46.5}), ({'g': 124, 'a': 0.25, 'b': 0.25, 'm': 3, 'F': 10, 'c': 0.5, 'line': 10}, {'wavelength': 20.666666666666668, 'littrow_wavelength': 20.666666666666668, 'angular_dispersion': 20.666666666666668, 'linear_dispersion': 2.066666666666667, 'inferred_diffraction_sine': -0.008064516129032251, 'next_order_wavelength': 15.5}), ({'g': 124, 'a': 0.5, 'b': 0.25, 'm': 3, 'F': 20, 'c': 1, 'line': 10}, {'wavelength': 31.0, 'littrow_wavelength': 41.333333333333336, 'angular_dispersion': 41.333333333333336, 'linear_dispersion': 2.066666666666667, 'inferred_diffraction_sine': -0.25806451612903225, 'next_order_wavelength': 23.25})]}\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":"0eca2bb09c64c5f34c9c5cad5e78a8bd7547e99d4d840b6a76210d79ea2d8ceb","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(d):\n    return {'wavelength': d['g']*(d['a']+d['b'])/d['m'], 'littrow_wavelength': 2*d['g']*d['a']/d['m'], 'angular_dispersion': d['g']*d['c']/d['m'], 'linear_dispersion': d['g']*d['c']/(d['m']*d['F']), 'inferred_diffraction_sine': d['m']*d['line']/d['g']-d['a'], 'next_order_wavelength': d['g']*(d['a']+d['b'])/d['m']+1}\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = {1: [({'g': 120, 'a': 0.5, 'b': 0.25, 'm': 3, 'F': 10, 'c': 0.5, 'line': 10}, {'wavelength': 30.0, 'littrow_wavelength': 40.0, 'angular_dispersion': 20.0, 'linear_dispersion': 2.0, 'inferred_diffraction_sine': -0.25, 'next_order_wavelength': 22.5}), ({'g': 120, 'a': 0, 'b': 0.25, 'm': 3, 'F': 10, 'c': 0.5, 'line': 10}, {'wavelength': 10.0, 'littrow_wavelength': 0.0, 'angular_dispersion': 20.0, 'linear_dispersion': 2.0, 'inferred_diffraction_sine': 0.25, 'next_order_wavelength': 7.5}), ({'g': 120, 'a': 0.5, 'b': -0.25, 'm': 3, 'F': 10, 'c': 0.5, 'line': 10}, {'wavelength': 10.0, 'littrow_wavelength': 40.0, 'angular_dispersion': 20.0, 'linear_dispersion': 2.0, 'inferred_diffraction_sine': -0.25, 'next_order_wavelength': 7.5}), ({'g': 120, 'a': 0.5, 'b': 0.25, 'm': 1, 'F': 10, 'c': 0.5, 'line': 10}, {'wavelength': 90.0, 'littrow_wavelength': 120.0, 'angular_dispersion': 60.0, 'linear_dispersion': 6.0, 'inferred_diffraction_sine': -0.4166666666666667, 'next_order_wavelength': 45.0}), ({'g': 120, 'a': 0.25, 'b': 0.25, 'm': 3, 'F': 10, 'c': 0.5, 'line': 10}, {'wavelength': 20.0, 'littrow_wavelength': 20.0, 'angular_dispersion': 20.0, 'linear_dispersion': 2.0, 'inferred_diffraction_sine': 0.0, 'next_order_wavelength': 15.0}), ({'g': 120, 'a': 0.5, 'b': 0.25, 'm': 3, 'F': 20, 'c': 1, 'line': 10}, {'wavelength': 30.0, 'littrow_wavelength': 40.0, 'angular_dispersion': 40.0, 'linear_dispersion': 2.0, 'inferred_diffraction_sine': -0.25, 'next_order_wavelength': 22.5})], 2: [({'g': 121, 'a': 0.5, 'b': 0.25, 'm': 3, 'F': 10, 'c': 0.5, 'line': 10}, {'wavelength': 30.25, 'littrow_wavelength': 40.333333333333336, 'angular_dispersion': 20.166666666666668, 'linear_dispersion': 2.0166666666666666, 'inferred_diffraction_sine': -0.25206611570247933, 'next_order_wavelength': 22.6875}), ({'g': 121, 'a': 0, 'b': 0.25, 'm': 3, 'F': 10, 'c': 0.5, 'line': 10}, {'wavelength': 10.083333333333334, 'littrow_wavelength': 0.0, 'angular_dispersion': 20.166666666666668, 'linear_dispersion': 2.0166666666666666, 'inferred_diffraction_sine': 0.24793388429752067, 'next_order_wavelength': 7.5625}), ({'g': 121, 'a': 0.5, 'b': -0.25, 'm': 3, 'F': 10, 'c': 0.5, 'line': 10}, {'wavelength': 10.083333333333334, 'littrow_wavelength': 40.333333333333336, 'angular_dispersion': 20.166666666666668, 'linear_dispersion': 2.0166666666666666, 'inferred_diffraction_sine': -0.25206611570247933, 'next_order_wavelength': 7.5625}), ({'g': 121, 'a': 0.5, 'b': 0.25, 'm': 1, 'F': 10, 'c': 0.5, 'line': 10}, {'wavelength': 90.75, 'littrow_wavelength': 121.0, 'angular_dispersion': 60.5, 'linear_dispersion': 6.05, 'inferred_diffraction_sine': -0.41735537190082644, 'next_order_wavelength': 45.375}), ({'g': 121, 'a': 0.25, 'b': 0.25, 'm': 3, 'F': 10, 'c': 0.5, 'line': 10}, {'wavelength': 20.166666666666668, 'littrow_wavelength': 20.166666666666668, 'angular_dispersion': 20.166666666666668, 'linear_dispersion': 2.0166666666666666, 'inferred_diffraction_sine': -0.002066115702479332, 'next_order_wavelength': 15.125}), ({'g': 121, 'a': 0.5, 'b': 0.25, 'm': 3, 'F': 20, 'c': 1, 'line': 10}, {'wavelength': 30.25, 'littrow_wavelength': 40.333333333333336, 'angular_dispersion': 40.333333333333336, 'linear_dispersion': 2.0166666666666666, 'inferred_diffraction_sine': -0.25206611570247933, 'next_order_wavelength': 22.6875})], 3: [({'g': 122, 'a': 0.5, 'b': 0.25, 'm': 3, 'F': 10, 'c': 0.5, 'line': 10}, {'wavelength': 30.5, 'littrow_wavelength': 40.666666666666664, 'angular_dispersion': 20.333333333333332, 'linear_dispersion': 2.033333333333333, 'inferred_diffraction_sine': -0.2540983606557377, 'next_order_wavelength': 22.875}), ({'g': 122, 'a': 0, 'b': 0.25, 'm': 3, 'F': 10, 'c': 0.5, 'line': 10}, {'wavelength': 10.166666666666666, 'littrow_wavelength': 0.0, 'angular_dispersion': 20.333333333333332, 'linear_dispersion': 2.033333333333333, 'inferred_diffraction_sine': 0.2459016393442623, 'next_order_wavelength': 7.625}), ({'g': 122, 'a': 0.5, 'b': -0.25, 'm': 3, 'F': 10, 'c': 0.5, 'line': 10}, {'wavelength': 10.166666666666666, 'littrow_wavelength': 40.666666666666664, 'angular_dispersion': 20.333333333333332, 'linear_dispersion': 2.033333333333333, 'inferred_diffraction_sine': -0.2540983606557377, 'next_order_wavelength': 7.625}), ({'g': 122, 'a': 0.5, 'b': 0.25, 'm': 1, 'F': 10, 'c': 0.5, 'line': 10}, {'wavelength': 91.5, 'littrow_wavelength': 122.0, 'angular_dispersion': 61.0, 'linear_dispersion': 6.1, 'inferred_diffraction_sine': -0.4180327868852459, 'next_order_wavelength': 45.75}), ({'g': 122, 'a': 0.25, 'b': 0.25, 'm': 3, 'F': 10, 'c': 0.5, 'line': 10}, {'wavelength': 20.333333333333332, 'littrow_wavelength': 20.333333333333332, 'angular_dispersion': 20.333333333333332, 'linear_dispersion': 2.033333333333333, 'inferred_diffraction_sine': -0.0040983606557377095, 'next_order_wavelength': 15.25}), ({'g': 122, 'a': 0.5, 'b': 0.25, 'm': 3, 'F': 20, 'c': 1, 'line': 10}, {'wavelength': 30.5, 'littrow_wavelength': 40.666666666666664, 'angular_dispersion': 40.666666666666664, 'linear_dispersion': 2.033333333333333, 'inferred_diffraction_sine': -0.2540983606557377, 'next_order_wavelength': 22.875})], 4: [({'g': 123, 'a': 0.5, 'b': 0.25, 'm': 3, 'F': 10, 'c': 0.5, 'line': 10}, {'wavelength': 30.75, 'littrow_wavelength': 41.0, 'angular_dispersion': 20.5, 'linear_dispersion': 2.05, 'inferred_diffraction_sine': -0.25609756097560976, 'next_order_wavelength': 23.0625}), ({'g': 123, 'a': 0, 'b': 0.25, 'm': 3, 'F': 10, 'c': 0.5, 'line': 10}, {'wavelength': 10.25, 'littrow_wavelength': 0.0, 'angular_dispersion': 20.5, 'linear_dispersion': 2.05, 'inferred_diffraction_sine': 0.24390243902439024, 'next_order_wavelength': 7.6875}), ({'g': 123, 'a': 0.5, 'b': -0.25, 'm': 3, 'F': 10, 'c': 0.5, 'line': 10}, {'wavelength': 10.25, 'littrow_wavelength': 41.0, 'angular_dispersion': 20.5, 'linear_dispersion': 2.05, 'inferred_diffraction_sine': -0.25609756097560976, 'next_order_wavelength': 7.6875}), ({'g': 123, 'a': 0.5, 'b': 0.25, 'm': 1, 'F': 10, 'c': 0.5, 'line': 10}, {'wavelength': 92.25, 'littrow_wavelength': 123.0, 'angular_dispersion': 61.5, 'linear_dispersion': 6.15, 'inferred_diffraction_sine': -0.4186991869918699, 'next_order_wavelength': 46.125}), ({'g': 123, 'a': 0.25, 'b': 0.25, 'm': 3, 'F': 10, 'c': 0.5, 'line': 10}, {'wavelength': 20.5, 'littrow_wavelength': 20.5, 'angular_dispersion': 20.5, 'linear_dispersion': 2.05, 'inferred_diffraction_sine': -0.0060975609756097615, 'next_order_wavelength': 15.375}), ({'g': 123, 'a': 0.5, 'b': 0.25, 'm': 3, 'F': 20, 'c': 1, 'line': 10}, {'wavelength': 30.75, 'littrow_wavelength': 41.0, 'angular_dispersion': 41.0, 'linear_dispersion': 2.05, 'inferred_diffraction_sine': -0.25609756097560976, 'next_order_wavelength': 23.0625})], 5: [({'g': 124, 'a': 0.5, 'b': 0.25, 'm': 3, 'F': 10, 'c': 0.5, 'line': 10}, {'wavelength': 31.0, 'littrow_wavelength': 41.333333333333336, 'angular_dispersion': 20.666666666666668, 'linear_dispersion': 2.066666666666667, 'inferred_diffraction_sine': -0.25806451612903225, 'next_order_wavelength': 23.25}), ({'g': 124, 'a': 0, 'b': 0.25, 'm': 3, 'F': 10, 'c': 0.5, 'line': 10}, {'wavelength': 10.333333333333334, 'littrow_wavelength': 0.0, 'angular_dispersion': 20.666666666666668, 'linear_dispersion': 2.066666666666667, 'inferred_diffraction_sine': 0.24193548387096775, 'next_order_wavelength': 7.75}), ({'g': 124, 'a': 0.5, 'b': -0.25, 'm': 3, 'F': 10, 'c': 0.5, 'line': 10}, {'wavelength': 10.333333333333334, 'littrow_wavelength': 41.333333333333336, 'angular_dispersion': 20.666666666666668, 'linear_dispersion': 2.066666666666667, 'inferred_diffraction_sine': -0.25806451612903225, 'next_order_wavelength': 7.75}), ({'g': 124, 'a': 0.5, 'b': 0.25, 'm': 1, 'F': 10, 'c': 0.5, 'line': 10}, {'wavelength': 93.0, 'littrow_wavelength': 124.0, 'angular_dispersion': 62.0, 'linear_dispersion': 6.2, 'inferred_diffraction_sine': -0.41935483870967744, 'next_order_wavelength': 46.5}), ({'g': 124, 'a': 0.25, 'b': 0.25, 'm': 3, 'F': 10, 'c': 0.5, 'line': 10}, {'wavelength': 20.666666666666668, 'littrow_wavelength': 20.666666666666668, 'angular_dispersion': 20.666666666666668, 'linear_dispersion': 2.066666666666667, 'inferred_diffraction_sine': -0.008064516129032251, 'next_order_wavelength': 15.5}), ({'g': 124, 'a': 0.5, 'b': 0.25, 'm': 3, 'F': 20, 'c': 1, 'line': 10}, {'wavelength': 31.0, 'littrow_wavelength': 41.333333333333336, 'angular_dispersion': 41.333333333333336, 'linear_dispersion': 2.066666666666667, 'inferred_diffraction_sine': -0.25806451612903225, 'next_order_wavelength': 23.25})]}\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-spectrograph-grating-coordinate-next_order_wavelength","generated_at":"2026-09-29T14:46:05.017654+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.","root_cause":"Neighboring spectral order is offset in wavelength rather than in interference order. Faulty expression: d['g']*(d['a']+d['b'])/d['m']+1","sha256":"fd6b3e8fe27bfd3da7436287eda477337e60d2d3441ac3454dbdacc728999425","title":"Spectrograph grating coordinate: Neighboring spectral order is offset in wavelength rather than in interference order · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verified":true,"visibility":"public","verification":{"attempt":{"elapsed_ms":42.416,"exit_code":1,"observations":[{"actual":{"angular_dispersion":20.0,"inferred_diffraction_sine":-0.25,"linear_dispersion":2.0,"littrow_wavelength":40.0,"next_order_wavelength":27.692307692307693,"wavelength":30.0},"check":"astronomical fixture 0","expected":{"angular_dispersion":20.0,"inferred_diffraction_sine":-0.25,"linear_dispersion":2.0,"littrow_wavelength":40.0,"next_order_wavelength":22.5,"wavelength":30.0},"passed":false},{"actual":{"angular_dispersion":20.0,"inferred_diffraction_sine":0.25,"linear_dispersion":2.0,"littrow_wavelength":0.0,"next_order_wavelength":9.23076923076923,"wavelength":10.0},"check":"astronomical fixture 1","expected":{"angular_dispersion":20.0,"inferred_diffraction_sine":0.25,"linear_dispersion":2.0,"littrow_wavelength":0.0,"next_order_wavelength":7.5,"wavelength":10.0},"passed":false},{"actual":{"angular_dispersion":20.0,"inferred_diffraction_sine":-0.25,"linear_dispersion":2.0,"littrow_wavelength":40.0,"next_order_wavelength":10.909090909090908,"wavelength":10.0},"check":"astronomical fixture 2","expected":{"angular_dispersion":20.0,"inferred_diffraction_sine":-0.25,"linear_dispersion":2.0,"littrow_wavelength":40.0,"next_order_wavelength":7.5,"wavelength":10.0},"passed":false},{"actual":{"angular_dispersion":60.0,"inferred_diffraction_sine":-0.4166666666666667,"linear_dispersion":6.0,"littrow_wavelength":120.0,"next_order_wavelength":72.0,"wavelength":90.0},"check":"astronomical fixture 3","expected":{"angular_dispersion":60.0,"inferred_diffraction_sine":-0.4166666666666667,"linear_dispersion":6.0,"littrow_wavelength":120.0,"next_order_wavelength":45.0,"wavelength":90.0},"passed":false},{"actual":{"angular_dispersion":20.0,"inferred_diffraction_sine":0.0,"linear_dispersion":2.0,"littrow_wavelength":20.0,"next_order_wavelength":18.46153846153846,"wavelength":20.0},"check":"astronomical fixture 4","expected":{"angular_dispersion":20.0,"inferred_diffraction_sine":0.0,"linear_dispersion":2.0,"littrow_wavelength":20.0,"next_order_wavelength":15.0,"wavelength":20.0},"passed":false},{"actual":{"angular_dispersion":40.0,"inferred_diffraction_sine":-0.25,"linear_dispersion":2.0,"littrow_wavelength":40.0,"next_order_wavelength":27.692307692307693,"wavelength":30.0},"check":"astronomical fixture 5","expected":{"angular_dispersion":40.0,"inferred_diffraction_sine":-0.25,"linear_dispersion":2.0,"littrow_wavelength":40.0,"next_order_wavelength":22.5,"wavelength":30.0},"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"astronomical fixture 0\", \"actual\": {\"wavelength\": 30.0, \"littrow_wavelength\": 40.0, \"angular_dispersion\": 20.0, \"linear_dispersion\": 2.0, \"inferred_diffraction_sine\": -0.25, \"next_order_wavelength\": 27.692307692307693}, \"expected\": {\"wavelength\": 30.0, \"littrow_wavelength\": 40.0, \"angular_dispersion\": 20.0, \"linear_dispersion\": 2.0, \"inferred_diffraction_sine\": -0.25, \"next_order_wavelength\": 22.5}, \"passed\": false}, {\"check\": \"astronomical fixture 1\", \"actual\": {\"wavelength\": 10.0, \"littrow_wavelength\": 0.0, \"angular_dispersion\": 20.0, \"linear_dispersion\": 2.0, \"inferred_diffraction_sine\": 0.25, \"next_order_wavelength\": 9.23076923076923}, \"expected\": {\"wavelength\": 10.0, \"littrow_wavelength\": 0.0, \"angular_dispersion\": 20.0, \"linear_dispersion\": 2.0, \"inferred_diffraction_sine\": 0.25, \"next_order_wavelength\": 7.5}, \"passed\": false}, {\"check\": \"astronomical fixture 2\", \"actual\": {\"wavelength\": 10.0, \"littrow_wavelength\": 40.0, \"angular_dispersion\": 20.0, \"linear_dispersion\": 2.0, \"inferred_diffraction_sine\": -0.25, \"next_order_wavelength\": 10.909090909090908}, \"expected\": {\"wavelength\": 10.0, \"littrow_wavelength\": 40.0, \"angular_dispersion\": 20.0, \"linear_dispersion\": 2.0, \"inferred_diffraction_sine\": -0.25, \"next_order_wavelength\": 7.5}, \"passed\": false}, {\"check\": \"astronomical fixture 3\", \"actual\": {\"wavelength\": 90.0, \"littrow_wavelength\": 120.0, \"angular_dispersion\": 60.0, \"linear_dispersion\": 6.0, \"inferred_diffraction_sine\": -0.4166666666666667, \"next_order_wavelength\": 72.0}, \"expected\": {\"wavelength\": 90.0, \"littrow_wavelength\": 120.0, \"angular_dispersion\": 60.0, \"linear_dispersion\": 6.0, \"inferred_diffraction_sine\": -0.4166666666666667, \"next_order_wavelength\": 45.0}, \"passed\": false}, {\"check\": \"astronomical fixture 4\", \"actual\": {\"wavelength\": 20.0, \"littrow_wavelength\": 20.0, \"angular_dispersion\": 20.0, \"linear_dispersion\": 2.0, \"inferred_diffraction_sine\": 0.0, \"next_order_wavelength\": 18.46153846153846}, \"expected\": {\"wavelength\": 20.0, \"littrow_wavelength\": 20.0, \"angular_dispersion\": 20.0, \"linear_dispersion\": 2.0, \"inferred_diffraction_sine\": 0.0, \"next_order_wavelength\": 15.0}, \"passed\": false}, {\"check\": \"astronomical fixture 5\", \"actual\": {\"wavelength\": 30.0, \"littrow_wavelength\": 40.0, \"angular_dispersion\": 40.0, \"linear_dispersion\": 2.0, \"inferred_diffraction_sine\": -0.25, \"next_order_wavelength\": 27.692307692307693}, \"expected\": {\"wavelength\": 30.0, \"littrow_wavelength\": 40.0, \"angular_dispersion\": 40.0, \"linear_dispersion\": 2.0, \"inferred_diffraction_sine\": -0.25, \"next_order_wavelength\": 22.5}, \"passed\": false}], \"passed\": false}\n"},"broken":{"elapsed_ms":39.033,"exit_code":1,"observations":[{"actual":{"angular_dispersion":20.0,"inferred_diffraction_sine":-0.25,"linear_dispersion":2.0,"littrow_wavelength":40.0,"next_order_wavelength":31.0,"wavelength":30.0},"check":"astronomical fixture 0","expected":{"angular_dispersion":20.0,"inferred_diffraction_sine":-0.25,"linear_dispersion":2.0,"littrow_wavelength":40.0,"next_order_wavelength":22.5,"wavelength":30.0},"passed":false},{"actual":{"angular_dispersion":20.0,"inferred_diffraction_sine":0.25,"linear_dispersion":2.0,"littrow_wavelength":0.0,"next_order_wavelength":11.0,"wavelength":10.0},"check":"astronomical fixture 1","expected":{"angular_dispersion":20.0,"inferred_diffraction_sine":0.25,"linear_dispersion":2.0,"littrow_wavelength":0.0,"next_order_wavelength":7.5,"wavelength":10.0},"passed":false},{"actual":{"angular_dispersion":20.0,"inferred_diffraction_sine":-0.25,"linear_dispersion":2.0,"littrow_wavelength":40.0,"next_order_wavelength":11.0,"wavelength":10.0},"check":"astronomical fixture 2","expected":{"angular_dispersion":20.0,"inferred_diffraction_sine":-0.25,"linear_dispersion":2.0,"littrow_wavelength":40.0,"next_order_wavelength":7.5,"wavelength":10.0},"passed":false},{"actual":{"angular_dispersion":60.0,"inferred_diffraction_sine":-0.4166666666666667,"linear_dispersion":6.0,"littrow_wavelength":120.0,"next_order_wavelength":91.0,"wavelength":90.0},"check":"astronomical fixture 3","expected":{"angular_dispersion":60.0,"inferred_diffraction_sine":-0.4166666666666667,"linear_dispersion":6.0,"littrow_wavelength":120.0,"next_order_wavelength":45.0,"wavelength":90.0},"passed":false},{"actual":{"angular_dispersion":20.0,"inferred_diffraction_sine":0.0,"linear_dispersion":2.0,"littrow_wavelength":20.0,"next_order_wavelength":21.0,"wavelength":20.0},"check":"astronomical fixture 4","expected":{"angular_dispersion":20.0,"inferred_diffraction_sine":0.0,"linear_dispersion":2.0,"littrow_wavelength":20.0,"next_order_wavelength":15.0,"wavelength":20.0},"passed":false},{"actual":{"angular_dispersion":40.0,"inferred_diffraction_sine":-0.25,"linear_dispersion":2.0,"littrow_wavelength":40.0,"next_order_wavelength":31.0,"wavelength":30.0},"check":"astronomical fixture 5","expected":{"angular_dispersion":40.0,"inferred_diffraction_sine":-0.25,"linear_dispersion":2.0,"littrow_wavelength":40.0,"next_order_wavelength":22.5,"wavelength":30.0},"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"astronomical fixture 0\", \"actual\": {\"wavelength\": 30.0, \"littrow_wavelength\": 40.0, \"angular_dispersion\": 20.0, \"linear_dispersion\": 2.0, \"inferred_diffraction_sine\": -0.25, \"next_order_wavelength\": 31.0}, \"expected\": {\"wavelength\": 30.0, \"littrow_wavelength\": 40.0, \"angular_dispersion\": 20.0, \"linear_dispersion\": 2.0, \"inferred_diffraction_sine\": -0.25, \"next_order_wavelength\": 22.5}, \"passed\": false}, {\"check\": \"astronomical fixture 1\", \"actual\": {\"wavelength\": 10.0, \"littrow_wavelength\": 0.0, \"angular_dispersion\": 20.0, \"linear_dispersion\": 2.0, \"inferred_diffraction_sine\": 0.25, \"next_order_wavelength\": 11.0}, \"expected\": {\"wavelength\": 10.0, \"littrow_wavelength\": 0.0, \"angular_dispersion\": 20.0, \"linear_dispersion\": 2.0, \"inferred_diffraction_sine\": 0.25, \"next_order_wavelength\": 7.5}, \"passed\": false}, {\"check\": \"astronomical fixture 2\", \"actual\": {\"wavelength\": 10.0, \"littrow_wavelength\": 40.0, \"angular_dispersion\": 20.0, \"linear_dispersion\": 2.0, \"inferred_diffraction_sine\": -0.25, \"next_order_wavelength\": 11.0}, \"expected\": {\"wavelength\": 10.0, \"littrow_wavelength\": 40.0, \"angular_dispersion\": 20.0, \"linear_dispersion\": 2.0, \"inferred_diffraction_sine\": -0.25, \"next_order_wavelength\": 7.5}, \"passed\": false}, {\"check\": \"astronomical fixture 3\", \"actual\": {\"wavelength\": 90.0, \"littrow_wavelength\": 120.0, \"angular_dispersion\": 60.0, \"linear_dispersion\": 6.0, \"inferred_diffraction_sine\": -0.4166666666666667, \"next_order_wavelength\": 91.0}, \"expected\": {\"wavelength\": 90.0, \"littrow_wavelength\": 120.0, \"angular_dispersion\": 60.0, \"linear_dispersion\": 6.0, \"inferred_diffraction_sine\": -0.4166666666666667, \"next_order_wavelength\": 45.0}, \"passed\": false}, {\"check\": \"astronomical fixture 4\", \"actual\": {\"wavelength\": 20.0, \"littrow_wavelength\": 20.0, \"angular_dispersion\": 20.0, \"linear_dispersion\": 2.0, \"inferred_diffraction_sine\": 0.0, \"next_order_wavelength\": 21.0}, \"expected\": {\"wavelength\": 20.0, \"littrow_wavelength\": 20.0, \"angular_dispersion\": 20.0, \"linear_dispersion\": 2.0, \"inferred_diffraction_sine\": 0.0, \"next_order_wavelength\": 15.0}, \"passed\": false}, {\"check\": \"astronomical fixture 5\", \"actual\": {\"wavelength\": 30.0, \"littrow_wavelength\": 40.0, \"angular_dispersion\": 40.0, \"linear_dispersion\": 2.0, \"inferred_diffraction_sine\": -0.25, \"next_order_wavelength\": 31.0}, \"expected\": {\"wavelength\": 30.0, \"littrow_wavelength\": 40.0, \"angular_dispersion\": 40.0, \"linear_dispersion\": 2.0, \"inferred_diffraction_sine\": -0.25, \"next_order_wavelength\": 22.5}, \"passed\": false}], \"passed\": false}\n"}},"member_only":{"stages":["fixed"],"fields":["implementations.fixed","verification.fixed","harness","repair"],"note":"The verified repair, its recorded checks, the repair description, and the scoring harness are available to members."}}