FAILURE MAP
← Case archive

FA-56271 / Astronomical coordinate conventions / Open access

Wcs cube storage order: Pixel storage permutation incorrectly reorders the unchanged WCS world-axis labels · case 01

The adapter reports an incorrect world axis types while other fields remain valid.

Verified by executionVariant 1 · 6 checks per implementationDownload source bundle ↓JSON ↗

ROOT CAUSE

Pixel storage permutation incorrectly reorders the unchanged WCS world-axis labels. Faulty expression: list(reversed(d['ctype']))

VERIFIED REPAIR

Preserve the declared model convention at this site: d['ctype']

Unsuccessful approach: A partial convention repair still uses sorted(d['ctype'])

Case contract

A FITS-like cube uses pixel order x,y,spectral z but a Python array stores z,y,x. Shape is nz,ny,nx, one-based WCS reference pixels rx,ry,rz. Reference tuple and linear CD input columns must honor this permutation; CD output rows and CTYPE world labels retain world-axis order. No celestial projection is evaluated. Output fields are defined by: array_index = [d['z']-1,d['y']-1,d['x']-1]; fits_shape = [d['nx'],d['ny'],d['nz']]; storage_reference = [d['rz']-1,d['ry']-1,d['rx']-1]; storage_cd = [list(reversed(row)) for row in d['cd']]; world_axis_types = d['ctype']; world_delta = [d['x']-d['rx'],d['y']-d['ry'],d['z']-d['rz']]

Why this case matters

Catalog, detector, sky-coordinate, and spectroscopy adapters must preserve the association between numeric coordinates and their declared reference conventions.

1 / The failure

Exit 1
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(d):
    return {'array_index': [d['z']-1,d['y']-1,d['x']-1], 'fits_shape': [d['nx'],d['ny'],d['nz']], 'storage_reference': [d['rz']-1,d['ry']-1,d['rx']-1], 'storage_cd': [list(reversed(row)) for row in d['cd']], 'world_axis_types': list(reversed(d['ctype'])), 'world_delta': [d['x']-d['rx'],d['y']-d['ry'],d['z']-d['rz']]}
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = {1: [({'x': 3, 'y': 5, 'z': 2, 'nx': 20, 'ny': 30, 'nz': 8, 'rx': 10, 'ry': 15, 'rz': 4, 'cd': [[1, 2, 3], [4, 5, 6], [7, 8, 10]], 'ctype': ['RA---TAN', 'DEC--TAN', 'FREQ']}, {'array_index': [1, 4, 2], 'fits_shape': [20, 30, 8], 'storage_reference': [3, 14, 9], 'storage_cd': [[3, 2, 1], [6, 5, 4], [10, 8, 7]], 'world_axis_types': ['RA---TAN', 'DEC--TAN', 'FREQ'], 'world_delta': [-7, -10, -2]}), ({'x': 1, 'y': 1, 'z': 1, 'nx': 20, 'ny': 30, 'nz': 8, 'rx': 10, 'ry': 15, 'rz': 4, 'cd': [[1, 2, 3], [4, 5, 6], [7, 8, 10]], 'ctype': ['RA---TAN', 'DEC--TAN', 'FREQ']}, {'array_index': [0, 0, 0], 'fits_shape': [20, 30, 8], 'storage_reference': [3, 14, 9], 'storage_cd': [[3, 2, 1], [6, 5, 4], [10, 8, 7]], 'world_axis_types': ['RA---TAN', 'DEC--TAN', 'FREQ'], 'world_delta': [-9, -14, -3]}), ({'x': 3, 'y': 5, 'z': 2, 'nx': 20, 'ny': 30, 'nz': 8, 'rx': 1, 'ry': 1, 'rz': 1, 'cd': [[1, 2, 3], [4, 5, 6], [7, 8, 10]], 'ctype': ['RA---TAN', 'DEC--TAN', 'FREQ']}, {'array_index': [1, 4, 2], 'fits_shape': [20, 30, 8], 'storage_reference': [0, 0, 0], 'storage_cd': [[3, 2, 1], [6, 5, 4], [10, 8, 7]], 'world_axis_types': ['RA---TAN', 'DEC--TAN', 'FREQ'], 'world_delta': [2, 4, 1]}), ({'x': 3, 'y': 5, 'z': 2, 'nx': 10, 'ny': 12, 'nz': 6, 'rx': 10, 'ry': 15, 'rz': 4, 'cd': [[1, 2, 3], [4, 5, 6], [7, 8, 10]], 'ctype': ['RA---TAN', 'DEC--TAN', 'FREQ']}, {'array_index': [1, 4, 2], 'fits_shape': [10, 12, 6], 'storage_reference': [3, 14, 9], 'storage_cd': [[3, 2, 1], [6, 5, 4], [10, 8, 7]], 'world_axis_types': ['RA---TAN', 'DEC--TAN', 'FREQ'], 'world_delta': [-7, -10, -2]}), ({'x': 3, 'y': 0, 'z': 0, 'nx': 20, 'ny': 30, 'nz': 8, 'rx': 10, 'ry': 15, 'rz': 4, 'cd': [[1, 2, 3], [4, 5, 6], [7, 8, 10]], 'ctype': ['RA---TAN', 'DEC--TAN', 'FREQ']}, {'array_index': [-1, -1, 2], 'fits_shape': [20, 30, 8], 'storage_reference': [3, 14, 9], 'storage_cd': [[3, 2, 1], [6, 5, 4], [10, 8, 7]], 'world_axis_types': ['RA---TAN', 'DEC--TAN', 'FREQ'], 'world_delta': [-7, -15, -4]}), ({'x': 3, 'y': 5, 'z': 2, 'nx': 20, 'ny': 30, 'nz': 8, 'rx': -2, 'ry': 3, 'rz': 0, 'cd': [[1, 2, 3], [4, 5, 6], [7, 8, 10]], 'ctype': ['RA---TAN', 'DEC--TAN', 'FREQ']}, {'array_index': [1, 4, 2], 'fits_shape': [20, 30, 8], 'storage_reference': [-1, 2, -3], 'storage_cd': [[3, 2, 1], [6, 5, 4], [10, 8, 7]], 'world_axis_types': ['RA---TAN', 'DEC--TAN', 'FREQ'], 'world_delta': [5, 2, 2]})], 2: [({'x': 4, 'y': 5, 'z': 2, 'nx': 20, 'ny': 30, 'nz': 8, 'rx': 10, 'ry': 15, 'rz': 4, 'cd': [[1, 2, 3], [4, 5, 6], [7, 8, 10]], 'ctype': ['RA---TAN', 'DEC--TAN', 'FREQ']}, {'array_index': [1, 4, 3], 'fits_shape': [20, 30, 8], 'storage_reference': [3, 14, 9], 'storage_cd': [[3, 2, 1], [6, 5, 4], [10, 8, 7]], 'world_axis_types': ['RA---TAN', 'DEC--TAN', 'FREQ'], 'world_delta': [-6, -10, -2]}), ({'x': 2, 'y': 1, 'z': 1, 'nx': 20, 'ny': 30, 'nz': 8, 'rx': 10, 'ry': 15, 'rz': 4, 'cd': [[1, 2, 3], [4, 5, 6], [7, 8, 10]], 'ctype': ['RA---TAN', 'DEC--TAN', 'FREQ']}, {'array_index': [0, 0, 1], 'fits_shape': [20, 30, 8], 'storage_reference': [3, 14, 9], 'storage_cd': [[3, 2, 1], [6, 5, 4], [10, 8, 7]], 'world_axis_types': ['RA---TAN', 'DEC--TAN', 'FREQ'], 'world_delta': [-8, -14, -3]}), ({'x': 4, 'y': 5, 'z': 2, 'nx': 20, 'ny': 30, 'nz': 8, 'rx': 1, 'ry': 1, 'rz': 1, 'cd': [[1, 2, 3], [4, 5, 6], [7, 8, 10]], 'ctype': ['RA---TAN', 'DEC--TAN', 'FREQ']}, {'array_index': [1, 4, 3], 'fits_shape': [20, 30, 8], 'storage_reference': [0, 0, 0], 'storage_cd': [[3, 2, 1], [6, 5, 4], [10, 8, 7]], 'world_axis_types': ['RA---TAN', 'DEC--TAN', 'FREQ'], 'world_delta': [3, 4, 1]}), ({'x': 4, 'y': 5, 'z': 2, 'nx': 10, 'ny': 12, 'nz': 6, 'rx': 10, 'ry': 15, 'rz': 4, 'cd': [[1, 2, 3], [4, 5, 6], [7, 8, 10]], 'ctype': ['RA---TAN', 'DEC--TAN', 'FREQ']}, {'array_index': [1, 4, 3], 'fits_shape': [10, 12, 6], 'storage_reference': [3, 14, 9], 'storage_cd': [[3, 2, 1], [6, 5, 4], [10, 8, 7]], 'world_axis_types': ['RA---TAN', 'DEC--TAN', 'FREQ'], 'world_delta': [-6, -10, -2]}), ({'x': 4, 'y': 0, 'z': 0, 'nx': 20, 'ny': 30, 'nz': 8, 'rx': 10, 'ry': 15, 'rz': 4, 'cd': [[1, 2, 3], [4, 5, 6], [7, 8, 10]], 'ctype': ['RA---TAN', 'DEC--TAN', 'FREQ']}, {'array_index': [-1, -1, 3], 'fits_shape': [20, 30, 8], 'storage_reference': [3, 14, 9], 'storage_cd': [[3, 2, 1], [6, 5, 4], [10, 8, 7]], 'world_axis_types': ['RA---TAN', 'DEC--TAN', 'FREQ'], 'world_delta': [-6, -15, -4]}), ({'x': 4, 'y': 5, 'z': 2, 'nx': 20, 'ny': 30, 'nz': 8, 'rx': -2, 'ry': 3, 'rz': 0, 'cd': [[1, 2, 3], [4, 5, 6], [7, 8, 10]], 'ctype': ['RA---TAN', 'DEC--TAN', 'FREQ']}, {'array_index': [1, 4, 3], 'fits_shape': [20, 30, 8], 'storage_reference': [-1, 2, -3], 'storage_cd': [[3, 2, 1], [6, 5, 4], [10, 8, 7]], 'world_axis_types': ['RA---TAN', 'DEC--TAN', 'FREQ'], 'world_delta': [6, 2, 2]})], 3: [({'x': 5, 'y': 5, 'z': 2, 'nx': 20, 'ny': 30, 'nz': 8, 'rx': 10, 'ry': 15, 'rz': 4, 'cd': [[1, 2, 3], [4, 5, 6], [7, 8, 10]], 'ctype': ['RA---TAN', 'DEC--TAN', 'FREQ']}, {'array_index': [1, 4, 4], 'fits_shape': [20, 30, 8], 'storage_reference': [3, 14, 9], 'storage_cd': [[3, 2, 1], [6, 5, 4], [10, 8, 7]], 'world_axis_types': ['RA---TAN', 'DEC--TAN', 'FREQ'], 'world_delta': [-5, -10, -2]}), ({'x': 3, 'y': 1, 'z': 1, 'nx': 20, 'ny': 30, 'nz': 8, 'rx': 10, 'ry': 15, 'rz': 4, 'cd': [[1, 2, 3], [4, 5, 6], [7, 8, 10]], 'ctype': ['RA---TAN', 'DEC--TAN', 'FREQ']}, {'array_index': [0, 0, 2], 'fits_shape': [20, 30, 8], 'storage_reference': [3, 14, 9], 'storage_cd': [[3, 2, 1], [6, 5, 4], [10, 8, 7]], 'world_axis_types': ['RA---TAN', 'DEC--TAN', 'FREQ'], 'world_delta': [-7, -14, -3]}), ({'x': 5, 'y': 5, 'z': 2, 'nx': 20, 'ny': 30, 'nz': 8, 'rx': 1, 'ry': 1, 'rz': 1, 'cd': [[1, 2, 3], [4, 5, 6], [7, 8, 10]], 'ctype': ['RA---TAN', 'DEC--TAN', 'FREQ']}, {'array_index': [1, 4, 4], 'fits_shape': [20, 30, 8], 'storage_reference': [0, 0, 0], 'storage_cd': [[3, 2, 1], [6, 5, 4], [10, 8, 7]], 'world_axis_types': ['RA---TAN', 'DEC--TAN', 'FREQ'], 'world_delta': [4, 4, 1]}), ({'x': 5, 'y': 5, 'z': 2, 'nx': 10, 'ny': 12, 'nz': 6, 'rx': 10, 'ry': 15, 'rz': 4, 'cd': [[1, 2, 3], [4, 5, 6], [7, 8, 10]], 'ctype': ['RA---TAN', 'DEC--TAN', 'FREQ']}, {'array_index': [1, 4, 4], 'fits_shape': [10, 12, 6], 'storage_reference': [3, 14, 9], 'storage_cd': [[3, 2, 1], [6, 5, 4], [10, 8, 7]], 'world_axis_types': ['RA---TAN', 'DEC--TAN', 'FREQ'], 'world_delta': [-5, -10, -2]}), ({'x': 5, 'y': 0, 'z': 0, 'nx': 20, 'ny': 30, 'nz': 8, 'rx': 10, 'ry': 15, 'rz': 4, 'cd': [[1, 2, 3], [4, 5, 6], [7, 8, 10]], 'ctype': ['RA---TAN', 'DEC--TAN', 'FREQ']}, {'array_index': [-1, -1, 4], 'fits_shape': [20, 30, 8], 'storage_reference': [3, 14, 9], 'storage_cd': [[3, 2, 1], [6, 5, 4], [10, 8, 7]], 'world_axis_types': ['RA---TAN', 'DEC--TAN', 'FREQ'], 'world_delta': [-5, -15, -4]}), ({'x': 5, 'y': 5, 'z': 2, 'nx': 20, 'ny': 30, 'nz': 8, 'rx': -2, 'ry': 3, 'rz': 0, 'cd': [[1, 2, 3], [4, 5, 6], [7, 8, 10]], 'ctype': ['RA---TAN', 'DEC--TAN', 'FREQ']}, {'array_index': [1, 4, 4], 'fits_shape': [20, 30, 8], 'storage_reference': [-1, 2, -3], 'storage_cd': [[3, 2, 1], [6, 5, 4], [10, 8, 7]], 'world_axis_types': ['RA---TAN', 'DEC--TAN', 'FREQ'], 'world_delta': [7, 2, 2]})], 4: [({'x': 6, 'y': 5, 'z': 2, 'nx': 20, 'ny': 30, 'nz': 8, 'rx': 10, 'ry': 15, 'rz': 4, 'cd': [[1, 2, 3], [4, 5, 6], [7, 8, 10]], 'ctype': ['RA---TAN', 'DEC--TAN', 'FREQ']}, {'array_index': [1, 4, 5], 'fits_shape': [20, 30, 8], 'storage_reference': [3, 14, 9], 'storage_cd': [[3, 2, 1], [6, 5, 4], [10, 8, 7]], 'world_axis_types': ['RA---TAN', 'DEC--TAN', 'FREQ'], 'world_delta': [-4, -10, -2]}), ({'x': 4, 'y': 1, 'z': 1, 'nx': 20, 'ny': 30, 'nz': 8, 'rx': 10, 'ry': 15, 'rz': 4, 'cd': [[1, 2, 3], [4, 5, 6], [7, 8, 10]], 'ctype': ['RA---TAN', 'DEC--TAN', 'FREQ']}, {'array_index': [0, 0, 3], 'fits_shape': [20, 30, 8], 'storage_reference': [3, 14, 9], 'storage_cd': [[3, 2, 1], [6, 5, 4], [10, 8, 7]], 'world_axis_types': ['RA---TAN', 'DEC--TAN', 'FREQ'], 'world_delta': [-6, -14, -3]}), ({'x': 6, 'y': 5, 'z': 2, 'nx': 20, 'ny': 30, 'nz': 8, 'rx': 1, 'ry': 1, 'rz': 1, 'cd': [[1, 2, 3], [4, 5, 6], [7, 8, 10]], 'ctype': ['RA---TAN', 'DEC--TAN', 'FREQ']}, {'array_index': [1, 4, 5], 'fits_shape': [20, 30, 8], 'storage_reference': [0, 0, 0], 'storage_cd': [[3, 2, 1], [6, 5, 4], [10, 8, 7]], 'world_axis_types': ['RA---TAN', 'DEC--TAN', 'FREQ'], 'world_delta': [5, 4, 1]}), ({'x': 6, 'y': 5, 'z': 2, 'nx': 10, 'ny': 12, 'nz': 6, 'rx': 10, 'ry': 15, 'rz': 4, 'cd': [[1, 2, 3], [4, 5, 6], [7, 8, 10]], 'ctype': ['RA---TAN', 'DEC--TAN', 'FREQ']}, {'array_index': [1, 4, 5], 'fits_shape': [10, 12, 6], 'storage_reference': [3, 14, 9], 'storage_cd': [[3, 2, 1], [6, 5, 4], [10, 8, 7]], 'world_axis_types': ['RA---TAN', 'DEC--TAN', 'FREQ'], 'world_delta': [-4, -10, -2]}), ({'x': 6, 'y': 0, 'z': 0, 'nx': 20, 'ny': 30, 'nz': 8, 'rx': 10, 'ry': 15, 'rz': 4, 'cd': [[1, 2, 3], [4, 5, 6], [7, 8, 10]], 'ctype': ['RA---TAN', 'DEC--TAN', 'FREQ']}, {'array_index': [-1, -1, 5], 'fits_shape': [20, 30, 8], 'storage_reference': [3, 14, 9], 'storage_cd': [[3, 2, 1], [6, 5, 4], [10, 8, 7]], 'world_axis_types': ['RA---TAN', 'DEC--TAN', 'FREQ'], 'world_delta': [-4, -15, -4]}), ({'x': 6, 'y': 5, 'z': 2, 'nx': 20, 'ny': 30, 'nz': 8, 'rx': -2, 'ry': 3, 'rz': 0, 'cd': [[1, 2, 3], [4, 5, 6], [7, 8, 10]], 'ctype': ['RA---TAN', 'DEC--TAN', 'FREQ']}, {'array_index': [1, 4, 5], 'fits_shape': [20, 30, 8], 'storage_reference': [-1, 2, -3], 'storage_cd': [[3, 2, 1], [6, 5, 4], [10, 8, 7]], 'world_axis_types': ['RA---TAN', 'DEC--TAN', 'FREQ'], 'world_delta': [8, 2, 2]})], 5: [({'x': 7, 'y': 5, 'z': 2, 'nx': 20, 'ny': 30, 'nz': 8, 'rx': 10, 'ry': 15, 'rz': 4, 'cd': [[1, 2, 3], [4, 5, 6], [7, 8, 10]], 'ctype': ['RA---TAN', 'DEC--TAN', 'FREQ']}, {'array_index': [1, 4, 6], 'fits_shape': [20, 30, 8], 'storage_reference': [3, 14, 9], 'storage_cd': [[3, 2, 1], [6, 5, 4], [10, 8, 7]], 'world_axis_types': ['RA---TAN', 'DEC--TAN', 'FREQ'], 'world_delta': [-3, -10, -2]}), ({'x': 5, 'y': 1, 'z': 1, 'nx': 20, 'ny': 30, 'nz': 8, 'rx': 10, 'ry': 15, 'rz': 4, 'cd': [[1, 2, 3], [4, 5, 6], [7, 8, 10]], 'ctype': ['RA---TAN', 'DEC--TAN', 'FREQ']}, {'array_index': [0, 0, 4], 'fits_shape': [20, 30, 8], 'storage_reference': [3, 14, 9], 'storage_cd': [[3, 2, 1], [6, 5, 4], [10, 8, 7]], 'world_axis_types': ['RA---TAN', 'DEC--TAN', 'FREQ'], 'world_delta': [-5, -14, -3]}), ({'x': 7, 'y': 5, 'z': 2, 'nx': 20, 'ny': 30, 'nz': 8, 'rx': 1, 'ry': 1, 'rz': 1, 'cd': [[1, 2, 3], [4, 5, 6], [7, 8, 10]], 'ctype': ['RA---TAN', 'DEC--TAN', 'FREQ']}, {'array_index': [1, 4, 6], 'fits_shape': [20, 30, 8], 'storage_reference': [0, 0, 0], 'storage_cd': [[3, 2, 1], [6, 5, 4], [10, 8, 7]], 'world_axis_types': ['RA---TAN', 'DEC--TAN', 'FREQ'], 'world_delta': [6, 4, 1]}), ({'x': 7, 'y': 5, 'z': 2, 'nx': 10, 'ny': 12, 'nz': 6, 'rx': 10, 'ry': 15, 'rz': 4, 'cd': [[1, 2, 3], [4, 5, 6], [7, 8, 10]], 'ctype': ['RA---TAN', 'DEC--TAN', 'FREQ']}, {'array_index': [1, 4, 6], 'fits_shape': [10, 12, 6], 'storage_reference': [3, 14, 9], 'storage_cd': [[3, 2, 1], [6, 5, 4], [10, 8, 7]], 'world_axis_types': ['RA---TAN', 'DEC--TAN', 'FREQ'], 'world_delta': [-3, -10, -2]}), ({'x': 7, 'y': 0, 'z': 0, 'nx': 20, 'ny': 30, 'nz': 8, 'rx': 10, 'ry': 15, 'rz': 4, 'cd': [[1, 2, 3], [4, 5, 6], [7, 8, 10]], 'ctype': ['RA---TAN', 'DEC--TAN', 'FREQ']}, {'array_index': [-1, -1, 6], 'fits_shape': [20, 30, 8], 'storage_reference': [3, 14, 9], 'storage_cd': [[3, 2, 1], [6, 5, 4], [10, 8, 7]], 'world_axis_types': ['RA---TAN', 'DEC--TAN', 'FREQ'], 'world_delta': [-3, -15, -4]}), ({'x': 7, 'y': 5, 'z': 2, 'nx': 20, 'ny': 30, 'nz': 8, 'rx': -2, 'ry': 3, 'rz': 0, 'cd': [[1, 2, 3], [4, 5, 6], [7, 8, 10]], 'ctype': ['RA---TAN', 'DEC--TAN', 'FREQ']}, {'array_index': [1, 4, 6], 'fits_shape': [20, 30, 8], 'storage_reference': [-1, 2, -3], 'storage_cd': [[3, 2, 1], [6, 5, 4], [10, 8, 7]], 'world_axis_types': ['RA---TAN', 'DEC--TAN', 'FREQ'], 'world_delta': [9, 2, 2]})]}
for i, (record, expected) in enumerate(fixtures[N]):
    check('astronomical fixture %s' % i, solve(record), expected)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
Boundary fixtureActualExpectedOutcome
astronomical fixture 0{'array_index': [1, 4, 2], 'fits_shape': [20, 30, 8], 'storage_cd': [[3, 2, 1], [6, 5, 4], [10, 8, 7]], 'storage_reference': [3, 14, 9], 'world_axis_types': ['FREQ', 'DEC--TAN', 'RA---TAN'], 'world_delta': [-7, -10, -2]}{'array_index': [1, 4, 2], 'fits_shape': [20, 30, 8], 'storage_cd': [[3, 2, 1], [6, 5, 4], [10, 8, 7]], 'storage_reference': [3, 14, 9], 'world_axis_types': ['RA---TAN', 'DEC--TAN', 'FREQ'], 'world_delta': [-7, -10, -2]}Failed
astronomical fixture 1{'array_index': [0, 0, 0], 'fits_shape': [20, 30, 8], 'storage_cd': [[3, 2, 1], [6, 5, 4], [10, 8, 7]], 'storage_reference': [3, 14, 9], 'world_axis_types': ['FREQ', 'DEC--TAN', 'RA---TAN'], 'world_delta': [-9, -14, -3]}{'array_index': [0, 0, 0], 'fits_shape': [20, 30, 8], 'storage_cd': [[3, 2, 1], [6, 5, 4], [10, 8, 7]], 'storage_reference': [3, 14, 9], 'world_axis_types': ['RA---TAN', 'DEC--TAN', 'FREQ'], 'world_delta': [-9, -14, -3]}Failed
astronomical fixture 2{'array_index': [1, 4, 2], 'fits_shape': [20, 30, 8], 'storage_cd': [[3, 2, 1], [6, 5, 4], [10, 8, 7]], 'storage_reference': [0, 0, 0], 'world_axis_types': ['FREQ', 'DEC--TAN', 'RA---TAN'], 'world_delta': [2, 4, 1]}{'array_index': [1, 4, 2], 'fits_shape': [20, 30, 8], 'storage_cd': [[3, 2, 1], [6, 5, 4], [10, 8, 7]], 'storage_reference': [0, 0, 0], 'world_axis_types': ['RA---TAN', 'DEC--TAN', 'FREQ'], 'world_delta': [2, 4, 1]}Failed
astronomical fixture 3{'array_index': [1, 4, 2], 'fits_shape': [10, 12, 6], 'storage_cd': [[3, 2, 1], [6, 5, 4], [10, 8, 7]], 'storage_reference': [3, 14, 9], 'world_axis_types': ['FREQ', 'DEC--TAN', 'RA---TAN'], 'world_delta': [-7, -10, -2]}{'array_index': [1, 4, 2], 'fits_shape': [10, 12, 6], 'storage_cd': [[3, 2, 1], [6, 5, 4], [10, 8, 7]], 'storage_reference': [3, 14, 9], 'world_axis_types': ['RA---TAN', 'DEC--TAN', 'FREQ'], 'world_delta': [-7, -10, -2]}Failed
astronomical fixture 4{'array_index': [-1, -1, 2], 'fits_shape': [20, 30, 8], 'storage_cd': [[3, 2, 1], [6, 5, 4], [10, 8, 7]], 'storage_reference': [3, 14, 9], 'world_axis_types': ['FREQ', 'DEC--TAN', 'RA---TAN'], 'world_delta': [-7, -15, -4]}{'array_index': [-1, -1, 2], 'fits_shape': [20, 30, 8], 'storage_cd': [[3, 2, 1], [6, 5, 4], [10, 8, 7]], 'storage_reference': [3, 14, 9], 'world_axis_types': ['RA---TAN', 'DEC--TAN', 'FREQ'], 'world_delta': [-7, -15, -4]}Failed
astronomical fixture 5{'array_index': [1, 4, 2], 'fits_shape': [20, 30, 8], 'storage_cd': [[3, 2, 1], [6, 5, 4], [10, 8, 7]], 'storage_reference': [-1, 2, -3], 'world_axis_types': ['FREQ', 'DEC--TAN', 'RA---TAN'], 'world_delta': [5, 2, 2]}{'array_index': [1, 4, 2], 'fits_shape': [20, 30, 8], 'storage_cd': [[3, 2, 1], [6, 5, 4], [10, 8, 7]], 'storage_reference': [-1, 2, -3], 'world_axis_types': ['RA---TAN', 'DEC--TAN', 'FREQ'], 'world_delta': [5, 2, 2]}Failed

SHA-256 / 3acc01ae6ac23e7b2db68ac81560550d25fefc3a2f827d9527da716f294e17d9

2 / The unsuccessful fix

Exit 1
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(d):
    return {'array_index': [d['z']-1,d['y']-1,d['x']-1], 'fits_shape': [d['nx'],d['ny'],d['nz']], 'storage_reference': [d['rz']-1,d['ry']-1,d['rx']-1], 'storage_cd': [list(reversed(row)) for row in d['cd']], 'world_axis_types': sorted(d['ctype']), 'world_delta': [d['x']-d['rx'],d['y']-d['ry'],d['z']-d['rz']]}
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = {1: [({'x': 3, 'y': 5, 'z': 2, 'nx': 20, 'ny': 30, 'nz': 8, 'rx': 10, 'ry': 15, 'rz': 4, 'cd': [[1, 2, 3], [4, 5, 6], [7, 8, 10]], 'ctype': ['RA---TAN', 'DEC--TAN', 'FREQ']}, {'array_index': [1, 4, 2], 'fits_shape': [20, 30, 8], 'storage_reference': [3, 14, 9], 'storage_cd': [[3, 2, 1], [6, 5, 4], [10, 8, 7]], 'world_axis_types': ['RA---TAN', 'DEC--TAN', 'FREQ'], 'world_delta': [-7, -10, -2]}), ({'x': 1, 'y': 1, 'z': 1, 'nx': 20, 'ny': 30, 'nz': 8, 'rx': 10, 'ry': 15, 'rz': 4, 'cd': [[1, 2, 3], [4, 5, 6], [7, 8, 10]], 'ctype': ['RA---TAN', 'DEC--TAN', 'FREQ']}, {'array_index': [0, 0, 0], 'fits_shape': [20, 30, 8], 'storage_reference': [3, 14, 9], 'storage_cd': [[3, 2, 1], [6, 5, 4], [10, 8, 7]], 'world_axis_types': ['RA---TAN', 'DEC--TAN', 'FREQ'], 'world_delta': [-9, -14, -3]}), ({'x': 3, 'y': 5, 'z': 2, 'nx': 20, 'ny': 30, 'nz': 8, 'rx': 1, 'ry': 1, 'rz': 1, 'cd': [[1, 2, 3], [4, 5, 6], [7, 8, 10]], 'ctype': ['RA---TAN', 'DEC--TAN', 'FREQ']}, {'array_index': [1, 4, 2], 'fits_shape': [20, 30, 8], 'storage_reference': [0, 0, 0], 'storage_cd': [[3, 2, 1], [6, 5, 4], [10, 8, 7]], 'world_axis_types': ['RA---TAN', 'DEC--TAN', 'FREQ'], 'world_delta': [2, 4, 1]}), ({'x': 3, 'y': 5, 'z': 2, 'nx': 10, 'ny': 12, 'nz': 6, 'rx': 10, 'ry': 15, 'rz': 4, 'cd': [[1, 2, 3], [4, 5, 6], [7, 8, 10]], 'ctype': ['RA---TAN', 'DEC--TAN', 'FREQ']}, {'array_index': [1, 4, 2], 'fits_shape': [10, 12, 6], 'storage_reference': [3, 14, 9], 'storage_cd': [[3, 2, 1], [6, 5, 4], [10, 8, 7]], 'world_axis_types': ['RA---TAN', 'DEC--TAN', 'FREQ'], 'world_delta': [-7, -10, -2]}), ({'x': 3, 'y': 0, 'z': 0, 'nx': 20, 'ny': 30, 'nz': 8, 'rx': 10, 'ry': 15, 'rz': 4, 'cd': [[1, 2, 3], [4, 5, 6], [7, 8, 10]], 'ctype': ['RA---TAN', 'DEC--TAN', 'FREQ']}, {'array_index': [-1, -1, 2], 'fits_shape': [20, 30, 8], 'storage_reference': [3, 14, 9], 'storage_cd': [[3, 2, 1], [6, 5, 4], [10, 8, 7]], 'world_axis_types': ['RA---TAN', 'DEC--TAN', 'FREQ'], 'world_delta': [-7, -15, -4]}), ({'x': 3, 'y': 5, 'z': 2, 'nx': 20, 'ny': 30, 'nz': 8, 'rx': -2, 'ry': 3, 'rz': 0, 'cd': [[1, 2, 3], [4, 5, 6], [7, 8, 10]], 'ctype': ['RA---TAN', 'DEC--TAN', 'FREQ']}, {'array_index': [1, 4, 2], 'fits_shape': [20, 30, 8], 'storage_reference': [-1, 2, -3], 'storage_cd': [[3, 2, 1], [6, 5, 4], [10, 8, 7]], 'world_axis_types': ['RA---TAN', 'DEC--TAN', 'FREQ'], 'world_delta': [5, 2, 2]})], 2: [({'x': 4, 'y': 5, 'z': 2, 'nx': 20, 'ny': 30, 'nz': 8, 'rx': 10, 'ry': 15, 'rz': 4, 'cd': [[1, 2, 3], [4, 5, 6], [7, 8, 10]], 'ctype': ['RA---TAN', 'DEC--TAN', 'FREQ']}, {'array_index': [1, 4, 3], 'fits_shape': [20, 30, 8], 'storage_reference': [3, 14, 9], 'storage_cd': [[3, 2, 1], [6, 5, 4], [10, 8, 7]], 'world_axis_types': ['RA---TAN', 'DEC--TAN', 'FREQ'], 'world_delta': [-6, -10, -2]}), ({'x': 2, 'y': 1, 'z': 1, 'nx': 20, 'ny': 30, 'nz': 8, 'rx': 10, 'ry': 15, 'rz': 4, 'cd': [[1, 2, 3], [4, 5, 6], [7, 8, 10]], 'ctype': ['RA---TAN', 'DEC--TAN', 'FREQ']}, {'array_index': [0, 0, 1], 'fits_shape': [20, 30, 8], 'storage_reference': [3, 14, 9], 'storage_cd': [[3, 2, 1], [6, 5, 4], [10, 8, 7]], 'world_axis_types': ['RA---TAN', 'DEC--TAN', 'FREQ'], 'world_delta': [-8, -14, -3]}), ({'x': 4, 'y': 5, 'z': 2, 'nx': 20, 'ny': 30, 'nz': 8, 'rx': 1, 'ry': 1, 'rz': 1, 'cd': [[1, 2, 3], [4, 5, 6], [7, 8, 10]], 'ctype': ['RA---TAN', 'DEC--TAN', 'FREQ']}, {'array_index': [1, 4, 3], 'fits_shape': [20, 30, 8], 'storage_reference': [0, 0, 0], 'storage_cd': [[3, 2, 1], [6, 5, 4], [10, 8, 7]], 'world_axis_types': ['RA---TAN', 'DEC--TAN', 'FREQ'], 'world_delta': [3, 4, 1]}), ({'x': 4, 'y': 5, 'z': 2, 'nx': 10, 'ny': 12, 'nz': 6, 'rx': 10, 'ry': 15, 'rz': 4, 'cd': [[1, 2, 3], [4, 5, 6], [7, 8, 10]], 'ctype': ['RA---TAN', 'DEC--TAN', 'FREQ']}, {'array_index': [1, 4, 3], 'fits_shape': [10, 12, 6], 'storage_reference': [3, 14, 9], 'storage_cd': [[3, 2, 1], [6, 5, 4], [10, 8, 7]], 'world_axis_types': ['RA---TAN', 'DEC--TAN', 'FREQ'], 'world_delta': [-6, -10, -2]}), ({'x': 4, 'y': 0, 'z': 0, 'nx': 20, 'ny': 30, 'nz': 8, 'rx': 10, 'ry': 15, 'rz': 4, 'cd': [[1, 2, 3], [4, 5, 6], [7, 8, 10]], 'ctype': ['RA---TAN', 'DEC--TAN', 'FREQ']}, {'array_index': [-1, -1, 3], 'fits_shape': [20, 30, 8], 'storage_reference': [3, 14, 9], 'storage_cd': [[3, 2, 1], [6, 5, 4], [10, 8, 7]], 'world_axis_types': ['RA---TAN', 'DEC--TAN', 'FREQ'], 'world_delta': [-6, -15, -4]}), ({'x': 4, 'y': 5, 'z': 2, 'nx': 20, 'ny': 30, 'nz': 8, 'rx': -2, 'ry': 3, 'rz': 0, 'cd': [[1, 2, 3], [4, 5, 6], [7, 8, 10]], 'ctype': ['RA---TAN', 'DEC--TAN', 'FREQ']}, {'array_index': [1, 4, 3], 'fits_shape': [20, 30, 8], 'storage_reference': [-1, 2, -3], 'storage_cd': [[3, 2, 1], [6, 5, 4], [10, 8, 7]], 'world_axis_types': ['RA---TAN', 'DEC--TAN', 'FREQ'], 'world_delta': [6, 2, 2]})], 3: [({'x': 5, 'y': 5, 'z': 2, 'nx': 20, 'ny': 30, 'nz': 8, 'rx': 10, 'ry': 15, 'rz': 4, 'cd': [[1, 2, 3], [4, 5, 6], [7, 8, 10]], 'ctype': ['RA---TAN', 'DEC--TAN', 'FREQ']}, {'array_index': [1, 4, 4], 'fits_shape': [20, 30, 8], 'storage_reference': [3, 14, 9], 'storage_cd': [[3, 2, 1], [6, 5, 4], [10, 8, 7]], 'world_axis_types': ['RA---TAN', 'DEC--TAN', 'FREQ'], 'world_delta': [-5, -10, -2]}), ({'x': 3, 'y': 1, 'z': 1, 'nx': 20, 'ny': 30, 'nz': 8, 'rx': 10, 'ry': 15, 'rz': 4, 'cd': [[1, 2, 3], [4, 5, 6], [7, 8, 10]], 'ctype': ['RA---TAN', 'DEC--TAN', 'FREQ']}, {'array_index': [0, 0, 2], 'fits_shape': [20, 30, 8], 'storage_reference': [3, 14, 9], 'storage_cd': [[3, 2, 1], [6, 5, 4], [10, 8, 7]], 'world_axis_types': ['RA---TAN', 'DEC--TAN', 'FREQ'], 'world_delta': [-7, -14, -3]}), ({'x': 5, 'y': 5, 'z': 2, 'nx': 20, 'ny': 30, 'nz': 8, 'rx': 1, 'ry': 1, 'rz': 1, 'cd': [[1, 2, 3], [4, 5, 6], [7, 8, 10]], 'ctype': ['RA---TAN', 'DEC--TAN', 'FREQ']}, {'array_index': [1, 4, 4], 'fits_shape': [20, 30, 8], 'storage_reference': [0, 0, 0], 'storage_cd': [[3, 2, 1], [6, 5, 4], [10, 8, 7]], 'world_axis_types': ['RA---TAN', 'DEC--TAN', 'FREQ'], 'world_delta': [4, 4, 1]}), ({'x': 5, 'y': 5, 'z': 2, 'nx': 10, 'ny': 12, 'nz': 6, 'rx': 10, 'ry': 15, 'rz': 4, 'cd': [[1, 2, 3], [4, 5, 6], [7, 8, 10]], 'ctype': ['RA---TAN', 'DEC--TAN', 'FREQ']}, {'array_index': [1, 4, 4], 'fits_shape': [10, 12, 6], 'storage_reference': [3, 14, 9], 'storage_cd': [[3, 2, 1], [6, 5, 4], [10, 8, 7]], 'world_axis_types': ['RA---TAN', 'DEC--TAN', 'FREQ'], 'world_delta': [-5, -10, -2]}), ({'x': 5, 'y': 0, 'z': 0, 'nx': 20, 'ny': 30, 'nz': 8, 'rx': 10, 'ry': 15, 'rz': 4, 'cd': [[1, 2, 3], [4, 5, 6], [7, 8, 10]], 'ctype': ['RA---TAN', 'DEC--TAN', 'FREQ']}, {'array_index': [-1, -1, 4], 'fits_shape': [20, 30, 8], 'storage_reference': [3, 14, 9], 'storage_cd': [[3, 2, 1], [6, 5, 4], [10, 8, 7]], 'world_axis_types': ['RA---TAN', 'DEC--TAN', 'FREQ'], 'world_delta': [-5, -15, -4]}), ({'x': 5, 'y': 5, 'z': 2, 'nx': 20, 'ny': 30, 'nz': 8, 'rx': -2, 'ry': 3, 'rz': 0, 'cd': [[1, 2, 3], [4, 5, 6], [7, 8, 10]], 'ctype': ['RA---TAN', 'DEC--TAN', 'FREQ']}, {'array_index': [1, 4, 4], 'fits_shape': [20, 30, 8], 'storage_reference': [-1, 2, -3], 'storage_cd': [[3, 2, 1], [6, 5, 4], [10, 8, 7]], 'world_axis_types': ['RA---TAN', 'DEC--TAN', 'FREQ'], 'world_delta': [7, 2, 2]})], 4: [({'x': 6, 'y': 5, 'z': 2, 'nx': 20, 'ny': 30, 'nz': 8, 'rx': 10, 'ry': 15, 'rz': 4, 'cd': [[1, 2, 3], [4, 5, 6], [7, 8, 10]], 'ctype': ['RA---TAN', 'DEC--TAN', 'FREQ']}, {'array_index': [1, 4, 5], 'fits_shape': [20, 30, 8], 'storage_reference': [3, 14, 9], 'storage_cd': [[3, 2, 1], [6, 5, 4], [10, 8, 7]], 'world_axis_types': ['RA---TAN', 'DEC--TAN', 'FREQ'], 'world_delta': [-4, -10, -2]}), ({'x': 4, 'y': 1, 'z': 1, 'nx': 20, 'ny': 30, 'nz': 8, 'rx': 10, 'ry': 15, 'rz': 4, 'cd': [[1, 2, 3], [4, 5, 6], [7, 8, 10]], 'ctype': ['RA---TAN', 'DEC--TAN', 'FREQ']}, {'array_index': [0, 0, 3], 'fits_shape': [20, 30, 8], 'storage_reference': [3, 14, 9], 'storage_cd': [[3, 2, 1], [6, 5, 4], [10, 8, 7]], 'world_axis_types': ['RA---TAN', 'DEC--TAN', 'FREQ'], 'world_delta': [-6, -14, -3]}), ({'x': 6, 'y': 5, 'z': 2, 'nx': 20, 'ny': 30, 'nz': 8, 'rx': 1, 'ry': 1, 'rz': 1, 'cd': [[1, 2, 3], [4, 5, 6], [7, 8, 10]], 'ctype': ['RA---TAN', 'DEC--TAN', 'FREQ']}, {'array_index': [1, 4, 5], 'fits_shape': [20, 30, 8], 'storage_reference': [0, 0, 0], 'storage_cd': [[3, 2, 1], [6, 5, 4], [10, 8, 7]], 'world_axis_types': ['RA---TAN', 'DEC--TAN', 'FREQ'], 'world_delta': [5, 4, 1]}), ({'x': 6, 'y': 5, 'z': 2, 'nx': 10, 'ny': 12, 'nz': 6, 'rx': 10, 'ry': 15, 'rz': 4, 'cd': [[1, 2, 3], [4, 5, 6], [7, 8, 10]], 'ctype': ['RA---TAN', 'DEC--TAN', 'FREQ']}, {'array_index': [1, 4, 5], 'fits_shape': [10, 12, 6], 'storage_reference': [3, 14, 9], 'storage_cd': [[3, 2, 1], [6, 5, 4], [10, 8, 7]], 'world_axis_types': ['RA---TAN', 'DEC--TAN', 'FREQ'], 'world_delta': [-4, -10, -2]}), ({'x': 6, 'y': 0, 'z': 0, 'nx': 20, 'ny': 30, 'nz': 8, 'rx': 10, 'ry': 15, 'rz': 4, 'cd': [[1, 2, 3], [4, 5, 6], [7, 8, 10]], 'ctype': ['RA---TAN', 'DEC--TAN', 'FREQ']}, {'array_index': [-1, -1, 5], 'fits_shape': [20, 30, 8], 'storage_reference': [3, 14, 9], 'storage_cd': [[3, 2, 1], [6, 5, 4], [10, 8, 7]], 'world_axis_types': ['RA---TAN', 'DEC--TAN', 'FREQ'], 'world_delta': [-4, -15, -4]}), ({'x': 6, 'y': 5, 'z': 2, 'nx': 20, 'ny': 30, 'nz': 8, 'rx': -2, 'ry': 3, 'rz': 0, 'cd': [[1, 2, 3], [4, 5, 6], [7, 8, 10]], 'ctype': ['RA---TAN', 'DEC--TAN', 'FREQ']}, {'array_index': [1, 4, 5], 'fits_shape': [20, 30, 8], 'storage_reference': [-1, 2, -3], 'storage_cd': [[3, 2, 1], [6, 5, 4], [10, 8, 7]], 'world_axis_types': ['RA---TAN', 'DEC--TAN', 'FREQ'], 'world_delta': [8, 2, 2]})], 5: [({'x': 7, 'y': 5, 'z': 2, 'nx': 20, 'ny': 30, 'nz': 8, 'rx': 10, 'ry': 15, 'rz': 4, 'cd': [[1, 2, 3], [4, 5, 6], [7, 8, 10]], 'ctype': ['RA---TAN', 'DEC--TAN', 'FREQ']}, {'array_index': [1, 4, 6], 'fits_shape': [20, 30, 8], 'storage_reference': [3, 14, 9], 'storage_cd': [[3, 2, 1], [6, 5, 4], [10, 8, 7]], 'world_axis_types': ['RA---TAN', 'DEC--TAN', 'FREQ'], 'world_delta': [-3, -10, -2]}), ({'x': 5, 'y': 1, 'z': 1, 'nx': 20, 'ny': 30, 'nz': 8, 'rx': 10, 'ry': 15, 'rz': 4, 'cd': [[1, 2, 3], [4, 5, 6], [7, 8, 10]], 'ctype': ['RA---TAN', 'DEC--TAN', 'FREQ']}, {'array_index': [0, 0, 4], 'fits_shape': [20, 30, 8], 'storage_reference': [3, 14, 9], 'storage_cd': [[3, 2, 1], [6, 5, 4], [10, 8, 7]], 'world_axis_types': ['RA---TAN', 'DEC--TAN', 'FREQ'], 'world_delta': [-5, -14, -3]}), ({'x': 7, 'y': 5, 'z': 2, 'nx': 20, 'ny': 30, 'nz': 8, 'rx': 1, 'ry': 1, 'rz': 1, 'cd': [[1, 2, 3], [4, 5, 6], [7, 8, 10]], 'ctype': ['RA---TAN', 'DEC--TAN', 'FREQ']}, {'array_index': [1, 4, 6], 'fits_shape': [20, 30, 8], 'storage_reference': [0, 0, 0], 'storage_cd': [[3, 2, 1], [6, 5, 4], [10, 8, 7]], 'world_axis_types': ['RA---TAN', 'DEC--TAN', 'FREQ'], 'world_delta': [6, 4, 1]}), ({'x': 7, 'y': 5, 'z': 2, 'nx': 10, 'ny': 12, 'nz': 6, 'rx': 10, 'ry': 15, 'rz': 4, 'cd': [[1, 2, 3], [4, 5, 6], [7, 8, 10]], 'ctype': ['RA---TAN', 'DEC--TAN', 'FREQ']}, {'array_index': [1, 4, 6], 'fits_shape': [10, 12, 6], 'storage_reference': [3, 14, 9], 'storage_cd': [[3, 2, 1], [6, 5, 4], [10, 8, 7]], 'world_axis_types': ['RA---TAN', 'DEC--TAN', 'FREQ'], 'world_delta': [-3, -10, -2]}), ({'x': 7, 'y': 0, 'z': 0, 'nx': 20, 'ny': 30, 'nz': 8, 'rx': 10, 'ry': 15, 'rz': 4, 'cd': [[1, 2, 3], [4, 5, 6], [7, 8, 10]], 'ctype': ['RA---TAN', 'DEC--TAN', 'FREQ']}, {'array_index': [-1, -1, 6], 'fits_shape': [20, 30, 8], 'storage_reference': [3, 14, 9], 'storage_cd': [[3, 2, 1], [6, 5, 4], [10, 8, 7]], 'world_axis_types': ['RA---TAN', 'DEC--TAN', 'FREQ'], 'world_delta': [-3, -15, -4]}), ({'x': 7, 'y': 5, 'z': 2, 'nx': 20, 'ny': 30, 'nz': 8, 'rx': -2, 'ry': 3, 'rz': 0, 'cd': [[1, 2, 3], [4, 5, 6], [7, 8, 10]], 'ctype': ['RA---TAN', 'DEC--TAN', 'FREQ']}, {'array_index': [1, 4, 6], 'fits_shape': [20, 30, 8], 'storage_reference': [-1, 2, -3], 'storage_cd': [[3, 2, 1], [6, 5, 4], [10, 8, 7]], 'world_axis_types': ['RA---TAN', 'DEC--TAN', 'FREQ'], 'world_delta': [9, 2, 2]})]}
for i, (record, expected) in enumerate(fixtures[N]):
    check('astronomical fixture %s' % i, solve(record), expected)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
Boundary fixtureActualExpectedOutcome
astronomical fixture 0{'array_index': [1, 4, 2], 'fits_shape': [20, 30, 8], 'storage_cd': [[3, 2, 1], [6, 5, 4], [10, 8, 7]], 'storage_reference': [3, 14, 9], 'world_axis_types': ['DEC--TAN', 'FREQ', 'RA---TAN'], 'world_delta': [-7, -10, -2]}{'array_index': [1, 4, 2], 'fits_shape': [20, 30, 8], 'storage_cd': [[3, 2, 1], [6, 5, 4], [10, 8, 7]], 'storage_reference': [3, 14, 9], 'world_axis_types': ['RA---TAN', 'DEC--TAN', 'FREQ'], 'world_delta': [-7, -10, -2]}Failed
astronomical fixture 1{'array_index': [0, 0, 0], 'fits_shape': [20, 30, 8], 'storage_cd': [[3, 2, 1], [6, 5, 4], [10, 8, 7]], 'storage_reference': [3, 14, 9], 'world_axis_types': ['DEC--TAN', 'FREQ', 'RA---TAN'], 'world_delta': [-9, -14, -3]}{'array_index': [0, 0, 0], 'fits_shape': [20, 30, 8], 'storage_cd': [[3, 2, 1], [6, 5, 4], [10, 8, 7]], 'storage_reference': [3, 14, 9], 'world_axis_types': ['RA---TAN', 'DEC--TAN', 'FREQ'], 'world_delta': [-9, -14, -3]}Failed
astronomical fixture 2{'array_index': [1, 4, 2], 'fits_shape': [20, 30, 8], 'storage_cd': [[3, 2, 1], [6, 5, 4], [10, 8, 7]], 'storage_reference': [0, 0, 0], 'world_axis_types': ['DEC--TAN', 'FREQ', 'RA---TAN'], 'world_delta': [2, 4, 1]}{'array_index': [1, 4, 2], 'fits_shape': [20, 30, 8], 'storage_cd': [[3, 2, 1], [6, 5, 4], [10, 8, 7]], 'storage_reference': [0, 0, 0], 'world_axis_types': ['RA---TAN', 'DEC--TAN', 'FREQ'], 'world_delta': [2, 4, 1]}Failed
astronomical fixture 3{'array_index': [1, 4, 2], 'fits_shape': [10, 12, 6], 'storage_cd': [[3, 2, 1], [6, 5, 4], [10, 8, 7]], 'storage_reference': [3, 14, 9], 'world_axis_types': ['DEC--TAN', 'FREQ', 'RA---TAN'], 'world_delta': [-7, -10, -2]}{'array_index': [1, 4, 2], 'fits_shape': [10, 12, 6], 'storage_cd': [[3, 2, 1], [6, 5, 4], [10, 8, 7]], 'storage_reference': [3, 14, 9], 'world_axis_types': ['RA---TAN', 'DEC--TAN', 'FREQ'], 'world_delta': [-7, -10, -2]}Failed
astronomical fixture 4{'array_index': [-1, -1, 2], 'fits_shape': [20, 30, 8], 'storage_cd': [[3, 2, 1], [6, 5, 4], [10, 8, 7]], 'storage_reference': [3, 14, 9], 'world_axis_types': ['DEC--TAN', 'FREQ', 'RA---TAN'], 'world_delta': [-7, -15, -4]}{'array_index': [-1, -1, 2], 'fits_shape': [20, 30, 8], 'storage_cd': [[3, 2, 1], [6, 5, 4], [10, 8, 7]], 'storage_reference': [3, 14, 9], 'world_axis_types': ['RA---TAN', 'DEC--TAN', 'FREQ'], 'world_delta': [-7, -15, -4]}Failed
astronomical fixture 5{'array_index': [1, 4, 2], 'fits_shape': [20, 30, 8], 'storage_cd': [[3, 2, 1], [6, 5, 4], [10, 8, 7]], 'storage_reference': [-1, 2, -3], 'world_axis_types': ['DEC--TAN', 'FREQ', 'RA---TAN'], 'world_delta': [5, 2, 2]}{'array_index': [1, 4, 2], 'fits_shape': [20, 30, 8], 'storage_cd': [[3, 2, 1], [6, 5, 4], [10, 8, 7]], 'storage_reference': [-1, 2, -3], 'world_axis_types': ['RA---TAN', 'DEC--TAN', 'FREQ'], 'world_delta': [5, 2, 2]}Failed

SHA-256 / 37a7ff16ecbec13225a3818caaf9fcdf5cfe11899baf0ce7f7405c044bd0866d

3 / The verified repair

Exit 0
"""Failure Map reference implementation. Python standard library only."""
import json

N = 1
observations = []
def solve(d):
    return {'array_index': [d['z']-1,d['y']-1,d['x']-1], 'fits_shape': [d['nx'],d['ny'],d['nz']], 'storage_reference': [d['rz']-1,d['ry']-1,d['rx']-1], 'storage_cd': [list(reversed(row)) for row in d['cd']], 'world_axis_types': d['ctype'], 'world_delta': [d['x']-d['rx'],d['y']-d['ry'],d['z']-d['rz']]}
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = {1: [({'x': 3, 'y': 5, 'z': 2, 'nx': 20, 'ny': 30, 'nz': 8, 'rx': 10, 'ry': 15, 'rz': 4, 'cd': [[1, 2, 3], [4, 5, 6], [7, 8, 10]], 'ctype': ['RA---TAN', 'DEC--TAN', 'FREQ']}, {'array_index': [1, 4, 2], 'fits_shape': [20, 30, 8], 'storage_reference': [3, 14, 9], 'storage_cd': [[3, 2, 1], [6, 5, 4], [10, 8, 7]], 'world_axis_types': ['RA---TAN', 'DEC--TAN', 'FREQ'], 'world_delta': [-7, -10, -2]}), ({'x': 1, 'y': 1, 'z': 1, 'nx': 20, 'ny': 30, 'nz': 8, 'rx': 10, 'ry': 15, 'rz': 4, 'cd': [[1, 2, 3], [4, 5, 6], [7, 8, 10]], 'ctype': ['RA---TAN', 'DEC--TAN', 'FREQ']}, {'array_index': [0, 0, 0], 'fits_shape': [20, 30, 8], 'storage_reference': [3, 14, 9], 'storage_cd': [[3, 2, 1], [6, 5, 4], [10, 8, 7]], 'world_axis_types': ['RA---TAN', 'DEC--TAN', 'FREQ'], 'world_delta': [-9, -14, -3]}), ({'x': 3, 'y': 5, 'z': 2, 'nx': 20, 'ny': 30, 'nz': 8, 'rx': 1, 'ry': 1, 'rz': 1, 'cd': [[1, 2, 3], [4, 5, 6], [7, 8, 10]], 'ctype': ['RA---TAN', 'DEC--TAN', 'FREQ']}, {'array_index': [1, 4, 2], 'fits_shape': [20, 30, 8], 'storage_reference': [0, 0, 0], 'storage_cd': [[3, 2, 1], [6, 5, 4], [10, 8, 7]], 'world_axis_types': ['RA---TAN', 'DEC--TAN', 'FREQ'], 'world_delta': [2, 4, 1]}), ({'x': 3, 'y': 5, 'z': 2, 'nx': 10, 'ny': 12, 'nz': 6, 'rx': 10, 'ry': 15, 'rz': 4, 'cd': [[1, 2, 3], [4, 5, 6], [7, 8, 10]], 'ctype': ['RA---TAN', 'DEC--TAN', 'FREQ']}, {'array_index': [1, 4, 2], 'fits_shape': [10, 12, 6], 'storage_reference': [3, 14, 9], 'storage_cd': [[3, 2, 1], [6, 5, 4], [10, 8, 7]], 'world_axis_types': ['RA---TAN', 'DEC--TAN', 'FREQ'], 'world_delta': [-7, -10, -2]}), ({'x': 3, 'y': 0, 'z': 0, 'nx': 20, 'ny': 30, 'nz': 8, 'rx': 10, 'ry': 15, 'rz': 4, 'cd': [[1, 2, 3], [4, 5, 6], [7, 8, 10]], 'ctype': ['RA---TAN', 'DEC--TAN', 'FREQ']}, {'array_index': [-1, -1, 2], 'fits_shape': [20, 30, 8], 'storage_reference': [3, 14, 9], 'storage_cd': [[3, 2, 1], [6, 5, 4], [10, 8, 7]], 'world_axis_types': ['RA---TAN', 'DEC--TAN', 'FREQ'], 'world_delta': [-7, -15, -4]}), ({'x': 3, 'y': 5, 'z': 2, 'nx': 20, 'ny': 30, 'nz': 8, 'rx': -2, 'ry': 3, 'rz': 0, 'cd': [[1, 2, 3], [4, 5, 6], [7, 8, 10]], 'ctype': ['RA---TAN', 'DEC--TAN', 'FREQ']}, {'array_index': [1, 4, 2], 'fits_shape': [20, 30, 8], 'storage_reference': [-1, 2, -3], 'storage_cd': [[3, 2, 1], [6, 5, 4], [10, 8, 7]], 'world_axis_types': ['RA---TAN', 'DEC--TAN', 'FREQ'], 'world_delta': [5, 2, 2]})], 2: [({'x': 4, 'y': 5, 'z': 2, 'nx': 20, 'ny': 30, 'nz': 8, 'rx': 10, 'ry': 15, 'rz': 4, 'cd': [[1, 2, 3], [4, 5, 6], [7, 8, 10]], 'ctype': ['RA---TAN', 'DEC--TAN', 'FREQ']}, {'array_index': [1, 4, 3], 'fits_shape': [20, 30, 8], 'storage_reference': [3, 14, 9], 'storage_cd': [[3, 2, 1], [6, 5, 4], [10, 8, 7]], 'world_axis_types': ['RA---TAN', 'DEC--TAN', 'FREQ'], 'world_delta': [-6, -10, -2]}), ({'x': 2, 'y': 1, 'z': 1, 'nx': 20, 'ny': 30, 'nz': 8, 'rx': 10, 'ry': 15, 'rz': 4, 'cd': [[1, 2, 3], [4, 5, 6], [7, 8, 10]], 'ctype': ['RA---TAN', 'DEC--TAN', 'FREQ']}, {'array_index': [0, 0, 1], 'fits_shape': [20, 30, 8], 'storage_reference': [3, 14, 9], 'storage_cd': [[3, 2, 1], [6, 5, 4], [10, 8, 7]], 'world_axis_types': ['RA---TAN', 'DEC--TAN', 'FREQ'], 'world_delta': [-8, -14, -3]}), ({'x': 4, 'y': 5, 'z': 2, 'nx': 20, 'ny': 30, 'nz': 8, 'rx': 1, 'ry': 1, 'rz': 1, 'cd': [[1, 2, 3], [4, 5, 6], [7, 8, 10]], 'ctype': ['RA---TAN', 'DEC--TAN', 'FREQ']}, {'array_index': [1, 4, 3], 'fits_shape': [20, 30, 8], 'storage_reference': [0, 0, 0], 'storage_cd': [[3, 2, 1], [6, 5, 4], [10, 8, 7]], 'world_axis_types': ['RA---TAN', 'DEC--TAN', 'FREQ'], 'world_delta': [3, 4, 1]}), ({'x': 4, 'y': 5, 'z': 2, 'nx': 10, 'ny': 12, 'nz': 6, 'rx': 10, 'ry': 15, 'rz': 4, 'cd': [[1, 2, 3], [4, 5, 6], [7, 8, 10]], 'ctype': ['RA---TAN', 'DEC--TAN', 'FREQ']}, {'array_index': [1, 4, 3], 'fits_shape': [10, 12, 6], 'storage_reference': [3, 14, 9], 'storage_cd': [[3, 2, 1], [6, 5, 4], [10, 8, 7]], 'world_axis_types': ['RA---TAN', 'DEC--TAN', 'FREQ'], 'world_delta': [-6, -10, -2]}), ({'x': 4, 'y': 0, 'z': 0, 'nx': 20, 'ny': 30, 'nz': 8, 'rx': 10, 'ry': 15, 'rz': 4, 'cd': [[1, 2, 3], [4, 5, 6], [7, 8, 10]], 'ctype': ['RA---TAN', 'DEC--TAN', 'FREQ']}, {'array_index': [-1, -1, 3], 'fits_shape': [20, 30, 8], 'storage_reference': [3, 14, 9], 'storage_cd': [[3, 2, 1], [6, 5, 4], [10, 8, 7]], 'world_axis_types': ['RA---TAN', 'DEC--TAN', 'FREQ'], 'world_delta': [-6, -15, -4]}), ({'x': 4, 'y': 5, 'z': 2, 'nx': 20, 'ny': 30, 'nz': 8, 'rx': -2, 'ry': 3, 'rz': 0, 'cd': [[1, 2, 3], [4, 5, 6], [7, 8, 10]], 'ctype': ['RA---TAN', 'DEC--TAN', 'FREQ']}, {'array_index': [1, 4, 3], 'fits_shape': [20, 30, 8], 'storage_reference': [-1, 2, -3], 'storage_cd': [[3, 2, 1], [6, 5, 4], [10, 8, 7]], 'world_axis_types': ['RA---TAN', 'DEC--TAN', 'FREQ'], 'world_delta': [6, 2, 2]})], 3: [({'x': 5, 'y': 5, 'z': 2, 'nx': 20, 'ny': 30, 'nz': 8, 'rx': 10, 'ry': 15, 'rz': 4, 'cd': [[1, 2, 3], [4, 5, 6], [7, 8, 10]], 'ctype': ['RA---TAN', 'DEC--TAN', 'FREQ']}, {'array_index': [1, 4, 4], 'fits_shape': [20, 30, 8], 'storage_reference': [3, 14, 9], 'storage_cd': [[3, 2, 1], [6, 5, 4], [10, 8, 7]], 'world_axis_types': ['RA---TAN', 'DEC--TAN', 'FREQ'], 'world_delta': [-5, -10, -2]}), ({'x': 3, 'y': 1, 'z': 1, 'nx': 20, 'ny': 30, 'nz': 8, 'rx': 10, 'ry': 15, 'rz': 4, 'cd': [[1, 2, 3], [4, 5, 6], [7, 8, 10]], 'ctype': ['RA---TAN', 'DEC--TAN', 'FREQ']}, {'array_index': [0, 0, 2], 'fits_shape': [20, 30, 8], 'storage_reference': [3, 14, 9], 'storage_cd': [[3, 2, 1], [6, 5, 4], [10, 8, 7]], 'world_axis_types': ['RA---TAN', 'DEC--TAN', 'FREQ'], 'world_delta': [-7, -14, -3]}), ({'x': 5, 'y': 5, 'z': 2, 'nx': 20, 'ny': 30, 'nz': 8, 'rx': 1, 'ry': 1, 'rz': 1, 'cd': [[1, 2, 3], [4, 5, 6], [7, 8, 10]], 'ctype': ['RA---TAN', 'DEC--TAN', 'FREQ']}, {'array_index': [1, 4, 4], 'fits_shape': [20, 30, 8], 'storage_reference': [0, 0, 0], 'storage_cd': [[3, 2, 1], [6, 5, 4], [10, 8, 7]], 'world_axis_types': ['RA---TAN', 'DEC--TAN', 'FREQ'], 'world_delta': [4, 4, 1]}), ({'x': 5, 'y': 5, 'z': 2, 'nx': 10, 'ny': 12, 'nz': 6, 'rx': 10, 'ry': 15, 'rz': 4, 'cd': [[1, 2, 3], [4, 5, 6], [7, 8, 10]], 'ctype': ['RA---TAN', 'DEC--TAN', 'FREQ']}, {'array_index': [1, 4, 4], 'fits_shape': [10, 12, 6], 'storage_reference': [3, 14, 9], 'storage_cd': [[3, 2, 1], [6, 5, 4], [10, 8, 7]], 'world_axis_types': ['RA---TAN', 'DEC--TAN', 'FREQ'], 'world_delta': [-5, -10, -2]}), ({'x': 5, 'y': 0, 'z': 0, 'nx': 20, 'ny': 30, 'nz': 8, 'rx': 10, 'ry': 15, 'rz': 4, 'cd': [[1, 2, 3], [4, 5, 6], [7, 8, 10]], 'ctype': ['RA---TAN', 'DEC--TAN', 'FREQ']}, {'array_index': [-1, -1, 4], 'fits_shape': [20, 30, 8], 'storage_reference': [3, 14, 9], 'storage_cd': [[3, 2, 1], [6, 5, 4], [10, 8, 7]], 'world_axis_types': ['RA---TAN', 'DEC--TAN', 'FREQ'], 'world_delta': [-5, -15, -4]}), ({'x': 5, 'y': 5, 'z': 2, 'nx': 20, 'ny': 30, 'nz': 8, 'rx': -2, 'ry': 3, 'rz': 0, 'cd': [[1, 2, 3], [4, 5, 6], [7, 8, 10]], 'ctype': ['RA---TAN', 'DEC--TAN', 'FREQ']}, {'array_index': [1, 4, 4], 'fits_shape': [20, 30, 8], 'storage_reference': [-1, 2, -3], 'storage_cd': [[3, 2, 1], [6, 5, 4], [10, 8, 7]], 'world_axis_types': ['RA---TAN', 'DEC--TAN', 'FREQ'], 'world_delta': [7, 2, 2]})], 4: [({'x': 6, 'y': 5, 'z': 2, 'nx': 20, 'ny': 30, 'nz': 8, 'rx': 10, 'ry': 15, 'rz': 4, 'cd': [[1, 2, 3], [4, 5, 6], [7, 8, 10]], 'ctype': ['RA---TAN', 'DEC--TAN', 'FREQ']}, {'array_index': [1, 4, 5], 'fits_shape': [20, 30, 8], 'storage_reference': [3, 14, 9], 'storage_cd': [[3, 2, 1], [6, 5, 4], [10, 8, 7]], 'world_axis_types': ['RA---TAN', 'DEC--TAN', 'FREQ'], 'world_delta': [-4, -10, -2]}), ({'x': 4, 'y': 1, 'z': 1, 'nx': 20, 'ny': 30, 'nz': 8, 'rx': 10, 'ry': 15, 'rz': 4, 'cd': [[1, 2, 3], [4, 5, 6], [7, 8, 10]], 'ctype': ['RA---TAN', 'DEC--TAN', 'FREQ']}, {'array_index': [0, 0, 3], 'fits_shape': [20, 30, 8], 'storage_reference': [3, 14, 9], 'storage_cd': [[3, 2, 1], [6, 5, 4], [10, 8, 7]], 'world_axis_types': ['RA---TAN', 'DEC--TAN', 'FREQ'], 'world_delta': [-6, -14, -3]}), ({'x': 6, 'y': 5, 'z': 2, 'nx': 20, 'ny': 30, 'nz': 8, 'rx': 1, 'ry': 1, 'rz': 1, 'cd': [[1, 2, 3], [4, 5, 6], [7, 8, 10]], 'ctype': ['RA---TAN', 'DEC--TAN', 'FREQ']}, {'array_index': [1, 4, 5], 'fits_shape': [20, 30, 8], 'storage_reference': [0, 0, 0], 'storage_cd': [[3, 2, 1], [6, 5, 4], [10, 8, 7]], 'world_axis_types': ['RA---TAN', 'DEC--TAN', 'FREQ'], 'world_delta': [5, 4, 1]}), ({'x': 6, 'y': 5, 'z': 2, 'nx': 10, 'ny': 12, 'nz': 6, 'rx': 10, 'ry': 15, 'rz': 4, 'cd': [[1, 2, 3], [4, 5, 6], [7, 8, 10]], 'ctype': ['RA---TAN', 'DEC--TAN', 'FREQ']}, {'array_index': [1, 4, 5], 'fits_shape': [10, 12, 6], 'storage_reference': [3, 14, 9], 'storage_cd': [[3, 2, 1], [6, 5, 4], [10, 8, 7]], 'world_axis_types': ['RA---TAN', 'DEC--TAN', 'FREQ'], 'world_delta': [-4, -10, -2]}), ({'x': 6, 'y': 0, 'z': 0, 'nx': 20, 'ny': 30, 'nz': 8, 'rx': 10, 'ry': 15, 'rz': 4, 'cd': [[1, 2, 3], [4, 5, 6], [7, 8, 10]], 'ctype': ['RA---TAN', 'DEC--TAN', 'FREQ']}, {'array_index': [-1, -1, 5], 'fits_shape': [20, 30, 8], 'storage_reference': [3, 14, 9], 'storage_cd': [[3, 2, 1], [6, 5, 4], [10, 8, 7]], 'world_axis_types': ['RA---TAN', 'DEC--TAN', 'FREQ'], 'world_delta': [-4, -15, -4]}), ({'x': 6, 'y': 5, 'z': 2, 'nx': 20, 'ny': 30, 'nz': 8, 'rx': -2, 'ry': 3, 'rz': 0, 'cd': [[1, 2, 3], [4, 5, 6], [7, 8, 10]], 'ctype': ['RA---TAN', 'DEC--TAN', 'FREQ']}, {'array_index': [1, 4, 5], 'fits_shape': [20, 30, 8], 'storage_reference': [-1, 2, -3], 'storage_cd': [[3, 2, 1], [6, 5, 4], [10, 8, 7]], 'world_axis_types': ['RA---TAN', 'DEC--TAN', 'FREQ'], 'world_delta': [8, 2, 2]})], 5: [({'x': 7, 'y': 5, 'z': 2, 'nx': 20, 'ny': 30, 'nz': 8, 'rx': 10, 'ry': 15, 'rz': 4, 'cd': [[1, 2, 3], [4, 5, 6], [7, 8, 10]], 'ctype': ['RA---TAN', 'DEC--TAN', 'FREQ']}, {'array_index': [1, 4, 6], 'fits_shape': [20, 30, 8], 'storage_reference': [3, 14, 9], 'storage_cd': [[3, 2, 1], [6, 5, 4], [10, 8, 7]], 'world_axis_types': ['RA---TAN', 'DEC--TAN', 'FREQ'], 'world_delta': [-3, -10, -2]}), ({'x': 5, 'y': 1, 'z': 1, 'nx': 20, 'ny': 30, 'nz': 8, 'rx': 10, 'ry': 15, 'rz': 4, 'cd': [[1, 2, 3], [4, 5, 6], [7, 8, 10]], 'ctype': ['RA---TAN', 'DEC--TAN', 'FREQ']}, {'array_index': [0, 0, 4], 'fits_shape': [20, 30, 8], 'storage_reference': [3, 14, 9], 'storage_cd': [[3, 2, 1], [6, 5, 4], [10, 8, 7]], 'world_axis_types': ['RA---TAN', 'DEC--TAN', 'FREQ'], 'world_delta': [-5, -14, -3]}), ({'x': 7, 'y': 5, 'z': 2, 'nx': 20, 'ny': 30, 'nz': 8, 'rx': 1, 'ry': 1, 'rz': 1, 'cd': [[1, 2, 3], [4, 5, 6], [7, 8, 10]], 'ctype': ['RA---TAN', 'DEC--TAN', 'FREQ']}, {'array_index': [1, 4, 6], 'fits_shape': [20, 30, 8], 'storage_reference': [0, 0, 0], 'storage_cd': [[3, 2, 1], [6, 5, 4], [10, 8, 7]], 'world_axis_types': ['RA---TAN', 'DEC--TAN', 'FREQ'], 'world_delta': [6, 4, 1]}), ({'x': 7, 'y': 5, 'z': 2, 'nx': 10, 'ny': 12, 'nz': 6, 'rx': 10, 'ry': 15, 'rz': 4, 'cd': [[1, 2, 3], [4, 5, 6], [7, 8, 10]], 'ctype': ['RA---TAN', 'DEC--TAN', 'FREQ']}, {'array_index': [1, 4, 6], 'fits_shape': [10, 12, 6], 'storage_reference': [3, 14, 9], 'storage_cd': [[3, 2, 1], [6, 5, 4], [10, 8, 7]], 'world_axis_types': ['RA---TAN', 'DEC--TAN', 'FREQ'], 'world_delta': [-3, -10, -2]}), ({'x': 7, 'y': 0, 'z': 0, 'nx': 20, 'ny': 30, 'nz': 8, 'rx': 10, 'ry': 15, 'rz': 4, 'cd': [[1, 2, 3], [4, 5, 6], [7, 8, 10]], 'ctype': ['RA---TAN', 'DEC--TAN', 'FREQ']}, {'array_index': [-1, -1, 6], 'fits_shape': [20, 30, 8], 'storage_reference': [3, 14, 9], 'storage_cd': [[3, 2, 1], [6, 5, 4], [10, 8, 7]], 'world_axis_types': ['RA---TAN', 'DEC--TAN', 'FREQ'], 'world_delta': [-3, -15, -4]}), ({'x': 7, 'y': 5, 'z': 2, 'nx': 20, 'ny': 30, 'nz': 8, 'rx': -2, 'ry': 3, 'rz': 0, 'cd': [[1, 2, 3], [4, 5, 6], [7, 8, 10]], 'ctype': ['RA---TAN', 'DEC--TAN', 'FREQ']}, {'array_index': [1, 4, 6], 'fits_shape': [20, 30, 8], 'storage_reference': [-1, 2, -3], 'storage_cd': [[3, 2, 1], [6, 5, 4], [10, 8, 7]], 'world_axis_types': ['RA---TAN', 'DEC--TAN', 'FREQ'], 'world_delta': [9, 2, 2]})]}
for i, (record, expected) in enumerate(fixtures[N]):
    check('astronomical fixture %s' % i, solve(record), expected)
print(json.dumps({"observations": observations, "passed": all(x["passed"] for x in observations)}, ensure_ascii=False))
raise SystemExit(0 if all(x["passed"] for x in observations) else 1)
Boundary fixtureActualExpectedOutcome
astronomical fixture 0{'array_index': [1, 4, 2], 'fits_shape': [20, 30, 8], 'storage_cd': [[3, 2, 1], [6, 5, 4], [10, 8, 7]], 'storage_reference': [3, 14, 9], 'world_axis_types': ['RA---TAN', 'DEC--TAN', 'FREQ'], 'world_delta': [-7, -10, -2]}{'array_index': [1, 4, 2], 'fits_shape': [20, 30, 8], 'storage_cd': [[3, 2, 1], [6, 5, 4], [10, 8, 7]], 'storage_reference': [3, 14, 9], 'world_axis_types': ['RA---TAN', 'DEC--TAN', 'FREQ'], 'world_delta': [-7, -10, -2]}Passed
astronomical fixture 1{'array_index': [0, 0, 0], 'fits_shape': [20, 30, 8], 'storage_cd': [[3, 2, 1], [6, 5, 4], [10, 8, 7]], 'storage_reference': [3, 14, 9], 'world_axis_types': ['RA---TAN', 'DEC--TAN', 'FREQ'], 'world_delta': [-9, -14, -3]}{'array_index': [0, 0, 0], 'fits_shape': [20, 30, 8], 'storage_cd': [[3, 2, 1], [6, 5, 4], [10, 8, 7]], 'storage_reference': [3, 14, 9], 'world_axis_types': ['RA---TAN', 'DEC--TAN', 'FREQ'], 'world_delta': [-9, -14, -3]}Passed
astronomical fixture 2{'array_index': [1, 4, 2], 'fits_shape': [20, 30, 8], 'storage_cd': [[3, 2, 1], [6, 5, 4], [10, 8, 7]], 'storage_reference': [0, 0, 0], 'world_axis_types': ['RA---TAN', 'DEC--TAN', 'FREQ'], 'world_delta': [2, 4, 1]}{'array_index': [1, 4, 2], 'fits_shape': [20, 30, 8], 'storage_cd': [[3, 2, 1], [6, 5, 4], [10, 8, 7]], 'storage_reference': [0, 0, 0], 'world_axis_types': ['RA---TAN', 'DEC--TAN', 'FREQ'], 'world_delta': [2, 4, 1]}Passed
astronomical fixture 3{'array_index': [1, 4, 2], 'fits_shape': [10, 12, 6], 'storage_cd': [[3, 2, 1], [6, 5, 4], [10, 8, 7]], 'storage_reference': [3, 14, 9], 'world_axis_types': ['RA---TAN', 'DEC--TAN', 'FREQ'], 'world_delta': [-7, -10, -2]}{'array_index': [1, 4, 2], 'fits_shape': [10, 12, 6], 'storage_cd': [[3, 2, 1], [6, 5, 4], [10, 8, 7]], 'storage_reference': [3, 14, 9], 'world_axis_types': ['RA---TAN', 'DEC--TAN', 'FREQ'], 'world_delta': [-7, -10, -2]}Passed
astronomical fixture 4{'array_index': [-1, -1, 2], 'fits_shape': [20, 30, 8], 'storage_cd': [[3, 2, 1], [6, 5, 4], [10, 8, 7]], 'storage_reference': [3, 14, 9], 'world_axis_types': ['RA---TAN', 'DEC--TAN', 'FREQ'], 'world_delta': [-7, -15, -4]}{'array_index': [-1, -1, 2], 'fits_shape': [20, 30, 8], 'storage_cd': [[3, 2, 1], [6, 5, 4], [10, 8, 7]], 'storage_reference': [3, 14, 9], 'world_axis_types': ['RA---TAN', 'DEC--TAN', 'FREQ'], 'world_delta': [-7, -15, -4]}Passed
astronomical fixture 5{'array_index': [1, 4, 2], 'fits_shape': [20, 30, 8], 'storage_cd': [[3, 2, 1], [6, 5, 4], [10, 8, 7]], 'storage_reference': [-1, 2, -3], 'world_axis_types': ['RA---TAN', 'DEC--TAN', 'FREQ'], 'world_delta': [5, 2, 2]}{'array_index': [1, 4, 2], 'fits_shape': [20, 30, 8], 'storage_cd': [[3, 2, 1], [6, 5, 4], [10, 8, 7]], 'storage_reference': [-1, 2, -3], 'world_axis_types': ['RA---TAN', 'DEC--TAN', 'FREQ'], 'world_delta': [5, 2, 2]}Passed

SHA-256 / abeb48bafd586ff430cf89a99080bac4b68e641e4d1c08f4af31781153cae47a

Verification & scope

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.

Observations recorded using Python 3.12.14 at 2026-09-29T14:46:05.618682+00:00.

Case digest / c8121546049696ae73602674e29a5cacd681f073ea1f05d328ccfdb8dd9f4686