FAILURE MAP
← Case archive

FA-70311 / Map projection transforms / Open access

Seven-parameter Helmert datum shift: arc-second conversion · case 01

Tiny rotations shift coordinates by thousands of kilometres.

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

ROOT CAUSE

Rotation parameters are converted as degrees rather than arc-seconds.

VERIFIED REPAIR

At the arc-second conversion step restore `k = math.pi / (180 * 3600)`, leaving the rest of the model unchanged.

Unsuccessful approach: The conversion treats the rotations as arc-minutes.

Case contract

Input [X, Y, Z, tx, ty, tz, rx, ry, rz, s, convention] with metres, rotations in arc-seconds and scale in ppm. Rotations are converted to radians; for "coordinate_frame" they are negated, for "position_vector" used as is. m = 1 + s*1e-6. X' = tx + m(X - rz Y + ry Z); Y' = ty + m(rz X + Y - rx Z); Z' = tz + m(-ry X + rx Y + Z). Return [X', Y', Z'] rounded to 3 decimals.

Why this case matters

Datum transformations between national and global frames use these seven parameters; convention and unit slips cause metre-level offsets that pass casual inspection.

1 / The failure

Exit 1
"""Failure Map reference implementation. Python standard library only."""
import json
import math
N = 1
observations = []
def solve(x):
    X, Y, Z, tx, ty, tz, rx, ry, rz, s, conv = x
    k = math.pi / 180
    rx, ry, rz = rx * k, ry * k, rz * k
    if conv == 'coordinate_frame':
        rx, ry, rz = -rx, -ry, -rz
    m = 1 + s * 1e-6
    Xo = tx + m * (X - rz * Y + ry * Z)
    Yo = ty + m * (rz * X + Y - rx * Z)
    Zo = tz + m * (-ry * X + rx * Y + Z)
    return [round(Xo, 3), round(Yo, 3), round(Zo, 3)]
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[('control #0', [-5541091.088, -2232325.705, -6352955.267, -217.202, 252.693, 193.877, -0.3013, 2.5369, -0.4898, 7.2933, 'coordinate_frame'], [-5541265.265, -2232093.171, -6352879.137]), ('control #1', [-4612717.254, 854010.104, -297229.761, 35.767, -284.925, 195.294, -3.1116, -2.0049, -2.6038, -4.6626, 'position_vector'], [-4612646.31, 853774.942, -297090.8]), ('control #2', [1975468.993, -227743.085, 2770505.24, 403.916, 391.722, 260.454, 2.194, 0.0057, 3.3578, 9.7343, 'coordinate_frame'], [1975888.355, -227356.269, 2770795.14]), ('control #3', [-189321.127, 3352090.605, -2404357.859, -152.685, 61.282, -123.245, -4.7005, -0.5925, -4.5929, 7.6062, 'coordinate_frame'], [-189556.8, 3352227.961, -2404422.458]), ('control #4', [-6228293.209, -1104665.934, 4388800.498, 448.343, 5.84, -248.246, 0.9162, -1.8119, 1.9656, -3.1531, 'position_vector'], [-6227853.253, -1104735.458, 4388478.796]), ('control #5', [-2535544.339, -5957215.045, -4097405.578, -66.0, -207.215, 331.819, 3.4107, -4.2707, 0.0925, 8.1975, 'position_vector'], [-2535543.615, -5957404.478, -4097258.353]), ('boundary #22', [4027894.006, 307045.6, 4919474.91, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 'coordinate_frame'], [4027894.006, 307045.6, 4919474.91]), ('boundary #25', [1000.0, 2000.0, 3000.0, 1.0, 2.0, 3.0, 0.0, 0.0, 0.0, 0.0, 'position_vector'], [1001.0, 2002.0, 3003.0])], [('control #1', [-4612717.254, 854010.104, -297229.761, 35.767, -284.925, 195.294, -3.1116, -2.0049, -2.6038, -4.6626, 'position_vector'], [-4612646.31, 853774.942, -297090.8]), ('control #2', [1975468.993, -227743.085, 2770505.24, 403.916, 391.722, 260.454, 2.194, 0.0057, 3.3578, 9.7343, 'coordinate_frame'], [1975888.355, -227356.269, 2770795.14]), ('control #5', [-2535544.339, -5957215.045, -4097405.578, -66.0, -207.215, 331.819, 3.4107, -4.2707, 0.0925, 8.1975, 'position_vector'], [-2535543.615, -5957404.478, -4097258.353]), ('control #6', [3627823.551, 5819563.217, -5921733.519, 228.087, -10.934, -497.542, -2.8114, -0.0659, -0.388, 7.4115, 'coordinate_frame'], [3628065.687, 5819682.953, -5922196.787]), ('control #7', [-1973240.205, 3874957.505, 5178356.07, -328.689, -442.829, -41.798, -4.7714, -2.8648, -4.9782, -2.8322, 'position_vector'], [-1973541.705, 3874671.113, 5178182.563]), ('control #8', [3575522.137, 5452586.84, 1656910.978, 298.786, 393.9, -294.606, 0.0728, 4.841, -0.7608, 8.8812, 'position_vector'], [3575911.678, 5453015.392, 1656549.094]), ('boundary #22', [4027894.006, 307045.6, 4919474.91, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 'coordinate_frame'], [4027894.006, 307045.6, 4919474.91]), ('boundary #25', [1000.0, 2000.0, 3000.0, 1.0, 2.0, 3.0, 0.0, 0.0, 0.0, 0.0, 'position_vector'], [1001.0, 2002.0, 3003.0])], [('control #2', [1975468.993, -227743.085, 2770505.24, 403.916, 391.722, 260.454, 2.194, 0.0057, 3.3578, 9.7343, 'coordinate_frame'], [1975888.355, -227356.269, 2770795.14]), ('control #3', [-189321.127, 3352090.605, -2404357.859, -152.685, 61.282, -123.245, -4.7005, -0.5925, -4.5929, 7.6062, 'coordinate_frame'], [-189556.8, 3352227.961, -2404422.458]), ('control #8', [3575522.137, 5452586.84, 1656910.978, 298.786, 393.9, -294.606, 0.0728, 4.841, -0.7608, 8.8812, 'position_vector'], [3575911.678, 5453015.392, 1656549.094]), ('control #9', [-1240296.101, -552884.937, -952528.764, -360.154, 285.951, 384.058, -2.5191, -3.2475, 0.9833, 0.1835, 'position_vector'], [-1240638.85, -552616.633, -952157.656]), ('control #10', [1307969.679, 563540.708, -1431729.813, -333.759, -148.113, 140.284, -1.8868, 2.9579, 1.9314, -9.4043, 'position_vector'], [1307597.811, 563386.446, -1431599.976]), ('control #11', [-3904352.966, -2722509.047, -2822388.255, 181.432, 495.341, 160.587, -1.285, -3.3165, -0.7058, 5.5208, 'position_vector'], [-3904157.024, -2722032.96, -2822289.067]), ('boundary #22', [4027894.006, 307045.6, 4919474.91, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 'coordinate_frame'], [4027894.006, 307045.6, 4919474.91]), ('boundary #25', [1000.0, 2000.0, 3000.0, 1.0, 2.0, 3.0, 0.0, 0.0, 0.0, 0.0, 'position_vector'], [1001.0, 2002.0, 3003.0])], [('control #3', [-189321.127, 3352090.605, -2404357.859, -152.685, 61.282, -123.245, -4.7005, -0.5925, -4.5929, 7.6062, 'coordinate_frame'], [-189556.8, 3352227.961, -2404422.458]), ('control #4', [-6228293.209, -1104665.934, 4388800.498, 448.343, 5.84, -248.246, 0.9162, -1.8119, 1.9656, -3.1531, 'position_vector'], [-6227853.253, -1104735.458, 4388478.796]), ('control #11', [-3904352.966, -2722509.047, -2822388.255, 181.432, 495.341, 160.587, -1.285, -3.3165, -0.7058, 5.5208, 'position_vector'], [-3904157.024, -2722032.96, -2822289.067]), ('control #12', [2647634.641, -1578921.141, -5093066.149, -355.392, 203.405, 165.947, 0.2987, -4.1705, -3.9905, -0.2744, 'position_vector'], [2647350.953, -1578761.15, -5092847.558]), ('control #13', [-3520096.56, -3120177.457, -123254.85, 462.196, 402.077, 308.458, 1.3023, 3.5694, 0.8414, 8.6398, 'position_vector'], [-3519654.182, -3119815.919, -122906.241]), ('control #14', [-6389654.874, -3984093.2, -3011962.836, 356.165, -201.583, 189.984, 2.6426, 1.938, -0.6636, -3.7122, 'coordinate_frame'], [-6389233.872, -3984339.138, -3011770.663]), ('boundary #22', [4027894.006, 307045.6, 4919474.91, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 'coordinate_frame'], [4027894.006, 307045.6, 4919474.91]), ('boundary #25', [1000.0, 2000.0, 3000.0, 1.0, 2.0, 3.0, 0.0, 0.0, 0.0, 0.0, 'position_vector'], [1001.0, 2002.0, 3003.0])], [('control #4', [-6228293.209, -1104665.934, 4388800.498, 448.343, 5.84, -248.246, 0.9162, -1.8119, 1.9656, -3.1531, 'position_vector'], [-6227853.253, -1104735.458, 4388478.796]), ('control #5', [-2535544.339, -5957215.045, -4097405.578, -66.0, -207.215, 331.819, 3.4107, -4.2707, 0.0925, 8.1975, 'position_vector'], [-2535543.615, -5957404.478, -4097258.353]), ('control #14', [-6389654.874, -3984093.2, -3011962.836, 356.165, -201.583, 189.984, 2.6426, 1.938, -0.6636, -3.7122, 'coordinate_frame'], [-6389233.872, -3984339.138, -3011770.663]), ('control #15', [4550537.139, 2792317.331, 1441981.13, 76.583, -265.303, -460.556, -0.538, -4.9358, -3.9263, 0.893, 'coordinate_frame'], [4550599.139, 2792137.381, 1441420.253]), ('control #16', [6034311.204, -4464484.503, 922428.188, 291.409, -257.511, -47.177, 0.8272, -3.8801, -0.5275, 8.0745, 'position_vector'], [6034622.567, -4464797.194, 922484.069]), ('control #17', [5230974.683, -6230904.331, 2167328.689, 237.623, -185.552, -261.576, 1.7677, -1.5195, 4.1454, -3.6432, 'coordinate_frame'], [5231083.99, -6231153.737, 2167074.081]), ('boundary #22', [4027894.006, 307045.6, 4919474.91, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 'coordinate_frame'], [4027894.006, 307045.6, 4919474.91]), ('boundary #25', [1000.0, 2000.0, 3000.0, 1.0, 2.0, 3.0, 0.0, 0.0, 0.0, 0.0, 'position_vector'], [1001.0, 2002.0, 3003.0])]]
for label, args, expected in fixtures[N-1]:
    check(label, solve(args), 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
control #0[-5240971.764, -2246049.952, -6609892.997][-5541265.265, -2232093.171, -6352879.137]Failed
control #1[-4563449.125, 1047202.837, -504820.099][-4612646.31, 853774.942, -297090.8]Failed
control #2[1962269.579, -237035.736, 2779710.134][1975888.355, -227356.269, 2770795.14]Failed
control #3[-483048.829, 3534254.154, -2127536.665][-189556.8, 3352227.961, -2404422.458]Failed
control #4[-6328717.79, -1388504.758, 4173913.519][-6227853.253, -1104735.458, 4388478.796]Failed
control #5[-2220599.537, -5717652.453, -4640726.409][-2535543.615, -5957404.478, -4097258.353]Failed
boundary #22[4027894.006, 307045.6, 4919474.91][4027894.006, 307045.6, 4919474.91]Passed
boundary #25[1001.0, 2002.0, 3003.0][1001.0, 2002.0, 3003.0]Passed

SHA-256 / 8255888537d12ac0de7dea0069dec014b93714033a1b8cadb007d57205a4100b

2 / The unsuccessful fix

Exit 1
"""Failure Map reference implementation. Python standard library only."""
import json
import math
N = 1
observations = []
def solve(x):
    X, Y, Z, tx, ty, tz, rx, ry, rz, s, conv = x
    k = math.pi / (180 * 60)
    rx, ry, rz = rx * k, ry * k, rz * k
    if conv == 'coordinate_frame':
        rx, ry, rz = -rx, -ry, -rz
    m = 1 + s * 1e-6
    Xo = tx + m * (X - rz * Y + ry * Z)
    Yo = ty + m * (rz * X + Y - rx * Z)
    Zo = tz + m * (-ry * X + rx * Y + Z)
    return [round(Xo, 3), round(Yo, 3), round(Zo, 3)]
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[('control #0', [-5541091.088, -2232325.705, -6352955.267, -217.202, 252.693, 193.877, -0.3013, 2.5369, -0.4898, 7.2933, 'coordinate_frame'], [-5541265.265, -2232093.171, -6352879.137]), ('control #1', [-4612717.254, 854010.104, -297229.761, 35.767, -284.925, 195.294, -3.1116, -2.0049, -2.6038, -4.6626, 'position_vector'], [-4612646.31, 853774.942, -297090.8]), ('control #2', [1975468.993, -227743.085, 2770505.24, 403.916, 391.722, 260.454, 2.194, 0.0057, 3.3578, 9.7343, 'coordinate_frame'], [1975888.355, -227356.269, 2770795.14]), ('control #3', [-189321.127, 3352090.605, -2404357.859, -152.685, 61.282, -123.245, -4.7005, -0.5925, -4.5929, 7.6062, 'coordinate_frame'], [-189556.8, 3352227.961, -2404422.458]), ('control #4', [-6228293.209, -1104665.934, 4388800.498, 448.343, 5.84, -248.246, 0.9162, -1.8119, 1.9656, -3.1531, 'position_vector'], [-6227853.253, -1104735.458, 4388478.796]), ('control #5', [-2535544.339, -5957215.045, -4097405.578, -66.0, -207.215, 331.819, 3.4107, -4.2707, 0.0925, 8.1975, 'position_vector'], [-2535543.615, -5957404.478, -4097258.353]), ('boundary #22', [4027894.006, 307045.6, 4919474.91, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 'coordinate_frame'], [4027894.006, 307045.6, 4919474.91]), ('boundary #25', [1000.0, 2000.0, 3000.0, 1.0, 2.0, 3.0, 0.0, 0.0, 0.0, 0.0, 'position_vector'], [1001.0, 2002.0, 3003.0])], [('control #1', [-4612717.254, 854010.104, -297229.761, 35.767, -284.925, 195.294, -3.1116, -2.0049, -2.6038, -4.6626, 'position_vector'], [-4612646.31, 853774.942, -297090.8]), ('control #2', [1975468.993, -227743.085, 2770505.24, 403.916, 391.722, 260.454, 2.194, 0.0057, 3.3578, 9.7343, 'coordinate_frame'], [1975888.355, -227356.269, 2770795.14]), ('control #5', [-2535544.339, -5957215.045, -4097405.578, -66.0, -207.215, 331.819, 3.4107, -4.2707, 0.0925, 8.1975, 'position_vector'], [-2535543.615, -5957404.478, -4097258.353]), ('control #6', [3627823.551, 5819563.217, -5921733.519, 228.087, -10.934, -497.542, -2.8114, -0.0659, -0.388, 7.4115, 'coordinate_frame'], [3628065.687, 5819682.953, -5922196.787]), ('control #7', [-1973240.205, 3874957.505, 5178356.07, -328.689, -442.829, -41.798, -4.7714, -2.8648, -4.9782, -2.8322, 'position_vector'], [-1973541.705, 3874671.113, 5178182.563]), ('control #8', [3575522.137, 5452586.84, 1656910.978, 298.786, 393.9, -294.606, 0.0728, 4.841, -0.7608, 8.8812, 'position_vector'], [3575911.678, 5453015.392, 1656549.094]), ('boundary #22', [4027894.006, 307045.6, 4919474.91, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 'coordinate_frame'], [4027894.006, 307045.6, 4919474.91]), ('boundary #25', [1000.0, 2000.0, 3000.0, 1.0, 2.0, 3.0, 0.0, 0.0, 0.0, 0.0, 'position_vector'], [1001.0, 2002.0, 3003.0])], [('control #2', [1975468.993, -227743.085, 2770505.24, 403.916, 391.722, 260.454, 2.194, 0.0057, 3.3578, 9.7343, 'coordinate_frame'], [1975888.355, -227356.269, 2770795.14]), ('control #3', [-189321.127, 3352090.605, -2404357.859, -152.685, 61.282, -123.245, -4.7005, -0.5925, -4.5929, 7.6062, 'coordinate_frame'], [-189556.8, 3352227.961, -2404422.458]), ('control #8', [3575522.137, 5452586.84, 1656910.978, 298.786, 393.9, -294.606, 0.0728, 4.841, -0.7608, 8.8812, 'position_vector'], [3575911.678, 5453015.392, 1656549.094]), ('control #9', [-1240296.101, -552884.937, -952528.764, -360.154, 285.951, 384.058, -2.5191, -3.2475, 0.9833, 0.1835, 'position_vector'], [-1240638.85, -552616.633, -952157.656]), ('control #10', [1307969.679, 563540.708, -1431729.813, -333.759, -148.113, 140.284, -1.8868, 2.9579, 1.9314, -9.4043, 'position_vector'], [1307597.811, 563386.446, -1431599.976]), ('control #11', [-3904352.966, -2722509.047, -2822388.255, 181.432, 495.341, 160.587, -1.285, -3.3165, -0.7058, 5.5208, 'position_vector'], [-3904157.024, -2722032.96, -2822289.067]), ('boundary #22', [4027894.006, 307045.6, 4919474.91, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 'coordinate_frame'], [4027894.006, 307045.6, 4919474.91]), ('boundary #25', [1000.0, 2000.0, 3000.0, 1.0, 2.0, 3.0, 0.0, 0.0, 0.0, 0.0, 'position_vector'], [1001.0, 2002.0, 3003.0])], [('control #3', [-189321.127, 3352090.605, -2404357.859, -152.685, 61.282, -123.245, -4.7005, -0.5925, -4.5929, 7.6062, 'coordinate_frame'], [-189556.8, 3352227.961, -2404422.458]), ('control #4', [-6228293.209, -1104665.934, 4388800.498, 448.343, 5.84, -248.246, 0.9162, -1.8119, 1.9656, -3.1531, 'position_vector'], [-6227853.253, -1104735.458, 4388478.796]), ('control #11', [-3904352.966, -2722509.047, -2822388.255, 181.432, 495.341, 160.587, -1.285, -3.3165, -0.7058, 5.5208, 'position_vector'], [-3904157.024, -2722032.96, -2822289.067]), ('control #12', [2647634.641, -1578921.141, -5093066.149, -355.392, 203.405, 165.947, 0.2987, -4.1705, -3.9905, -0.2744, 'position_vector'], [2647350.953, -1578761.15, -5092847.558]), ('control #13', [-3520096.56, -3120177.457, -123254.85, 462.196, 402.077, 308.458, 1.3023, 3.5694, 0.8414, 8.6398, 'position_vector'], [-3519654.182, -3119815.919, -122906.241]), ('control #14', [-6389654.874, -3984093.2, -3011962.836, 356.165, -201.583, 189.984, 2.6426, 1.938, -0.6636, -3.7122, 'coordinate_frame'], [-6389233.872, -3984339.138, -3011770.663]), ('boundary #22', [4027894.006, 307045.6, 4919474.91, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 'coordinate_frame'], [4027894.006, 307045.6, 4919474.91]), ('boundary #25', [1000.0, 2000.0, 3000.0, 1.0, 2.0, 3.0, 0.0, 0.0, 0.0, 0.0, 'position_vector'], [1001.0, 2002.0, 3003.0])], [('control #4', [-6228293.209, -1104665.934, 4388800.498, 448.343, 5.84, -248.246, 0.9162, -1.8119, 1.9656, -3.1531, 'position_vector'], [-6227853.253, -1104735.458, 4388478.796]), ('control #5', [-2535544.339, -5957215.045, -4097405.578, -66.0, -207.215, 331.819, 3.4107, -4.2707, 0.0925, 8.1975, 'position_vector'], [-2535543.615, -5957404.478, -4097258.353]), ('control #14', [-6389654.874, -3984093.2, -3011962.836, 356.165, -201.583, 189.984, 2.6426, 1.938, -0.6636, -3.7122, 'coordinate_frame'], [-6389233.872, -3984339.138, -3011770.663]), ('control #15', [4550537.139, 2792317.331, 1441981.13, 76.583, -265.303, -460.556, -0.538, -4.9358, -3.9263, 0.893, 'coordinate_frame'], [4550599.139, 2792137.381, 1441420.253]), ('control #16', [6034311.204, -4464484.503, 922428.188, 291.409, -257.511, -47.177, 0.8272, -3.8801, -0.5275, 8.0745, 'position_vector'], [6034622.567, -4464797.194, 922484.069]), ('control #17', [5230974.683, -6230904.331, 2167328.689, 237.623, -185.552, -261.576, 1.7677, -1.5195, 4.1454, -3.6432, 'coordinate_frame'], [5231083.99, -6231153.737, 2167074.081]), ('boundary #22', [4027894.006, 307045.6, 4919474.91, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 'coordinate_frame'], [4027894.006, 307045.6, 4919474.91]), ('boundary #25', [1000.0, 2000.0, 3000.0, 1.0, 2.0, 3.0, 0.0, 0.0, 0.0, 0.0, 'position_vector'], [1001.0, 2002.0, 3003.0])]]
for label, args, expected in fixtures[N-1]:
    check(label, solve(args), 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
control #0[-5536342.421, -2232321.971, -6357092.479][-5541265.265, -2232093.171, -6352879.137]Failed
control #1[-4611839.799, 856945.891, -300496.198][-4612646.31, 853774.942, -297090.8]Failed
control #2[1975665.096, -227514.949, 2770941.287][1975888.355, -227356.269, 2770795.14]Failed
control #3[-194368.145, 3355211.997, -2399883.347][-189556.8, 3352227.961, -2404422.458]Failed
control #4[-6229506.77, -1109387.413, 4384961.332][-6227853.253, -1104735.458, 4388478.796]Failed
control #5[-2530380.598, -5953474.117, -4106167.665][-2535543.615, -5957404.478, -4097258.353]Failed
boundary #22[4027894.006, 307045.6, 4919474.91][4027894.006, 307045.6, 4919474.91]Passed
boundary #25[1001.0, 2002.0, 3003.0][1001.0, 2002.0, 3003.0]Passed

SHA-256 / de217f54c8b4156e1e07aeb824ecc0339a9e5c0a1a68d2d690a6a63e81fd6a9c

3 / The verified repair

Exit 0
"""Failure Map reference implementation. Python standard library only."""
import json
import math
N = 1
observations = []
def solve(x):
    X, Y, Z, tx, ty, tz, rx, ry, rz, s, conv = x
    k = math.pi / (180 * 3600)
    rx, ry, rz = rx * k, ry * k, rz * k
    if conv == 'coordinate_frame':
        rx, ry, rz = -rx, -ry, -rz
    m = 1 + s * 1e-6
    Xo = tx + m * (X - rz * Y + ry * Z)
    Yo = ty + m * (rz * X + Y - rx * Z)
    Zo = tz + m * (-ry * X + rx * Y + Z)
    return [round(Xo, 3), round(Yo, 3), round(Zo, 3)]
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[('control #0', [-5541091.088, -2232325.705, -6352955.267, -217.202, 252.693, 193.877, -0.3013, 2.5369, -0.4898, 7.2933, 'coordinate_frame'], [-5541265.265, -2232093.171, -6352879.137]), ('control #1', [-4612717.254, 854010.104, -297229.761, 35.767, -284.925, 195.294, -3.1116, -2.0049, -2.6038, -4.6626, 'position_vector'], [-4612646.31, 853774.942, -297090.8]), ('control #2', [1975468.993, -227743.085, 2770505.24, 403.916, 391.722, 260.454, 2.194, 0.0057, 3.3578, 9.7343, 'coordinate_frame'], [1975888.355, -227356.269, 2770795.14]), ('control #3', [-189321.127, 3352090.605, -2404357.859, -152.685, 61.282, -123.245, -4.7005, -0.5925, -4.5929, 7.6062, 'coordinate_frame'], [-189556.8, 3352227.961, -2404422.458]), ('control #4', [-6228293.209, -1104665.934, 4388800.498, 448.343, 5.84, -248.246, 0.9162, -1.8119, 1.9656, -3.1531, 'position_vector'], [-6227853.253, -1104735.458, 4388478.796]), ('control #5', [-2535544.339, -5957215.045, -4097405.578, -66.0, -207.215, 331.819, 3.4107, -4.2707, 0.0925, 8.1975, 'position_vector'], [-2535543.615, -5957404.478, -4097258.353]), ('boundary #22', [4027894.006, 307045.6, 4919474.91, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 'coordinate_frame'], [4027894.006, 307045.6, 4919474.91]), ('boundary #25', [1000.0, 2000.0, 3000.0, 1.0, 2.0, 3.0, 0.0, 0.0, 0.0, 0.0, 'position_vector'], [1001.0, 2002.0, 3003.0])], [('control #1', [-4612717.254, 854010.104, -297229.761, 35.767, -284.925, 195.294, -3.1116, -2.0049, -2.6038, -4.6626, 'position_vector'], [-4612646.31, 853774.942, -297090.8]), ('control #2', [1975468.993, -227743.085, 2770505.24, 403.916, 391.722, 260.454, 2.194, 0.0057, 3.3578, 9.7343, 'coordinate_frame'], [1975888.355, -227356.269, 2770795.14]), ('control #5', [-2535544.339, -5957215.045, -4097405.578, -66.0, -207.215, 331.819, 3.4107, -4.2707, 0.0925, 8.1975, 'position_vector'], [-2535543.615, -5957404.478, -4097258.353]), ('control #6', [3627823.551, 5819563.217, -5921733.519, 228.087, -10.934, -497.542, -2.8114, -0.0659, -0.388, 7.4115, 'coordinate_frame'], [3628065.687, 5819682.953, -5922196.787]), ('control #7', [-1973240.205, 3874957.505, 5178356.07, -328.689, -442.829, -41.798, -4.7714, -2.8648, -4.9782, -2.8322, 'position_vector'], [-1973541.705, 3874671.113, 5178182.563]), ('control #8', [3575522.137, 5452586.84, 1656910.978, 298.786, 393.9, -294.606, 0.0728, 4.841, -0.7608, 8.8812, 'position_vector'], [3575911.678, 5453015.392, 1656549.094]), ('boundary #22', [4027894.006, 307045.6, 4919474.91, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 'coordinate_frame'], [4027894.006, 307045.6, 4919474.91]), ('boundary #25', [1000.0, 2000.0, 3000.0, 1.0, 2.0, 3.0, 0.0, 0.0, 0.0, 0.0, 'position_vector'], [1001.0, 2002.0, 3003.0])], [('control #2', [1975468.993, -227743.085, 2770505.24, 403.916, 391.722, 260.454, 2.194, 0.0057, 3.3578, 9.7343, 'coordinate_frame'], [1975888.355, -227356.269, 2770795.14]), ('control #3', [-189321.127, 3352090.605, -2404357.859, -152.685, 61.282, -123.245, -4.7005, -0.5925, -4.5929, 7.6062, 'coordinate_frame'], [-189556.8, 3352227.961, -2404422.458]), ('control #8', [3575522.137, 5452586.84, 1656910.978, 298.786, 393.9, -294.606, 0.0728, 4.841, -0.7608, 8.8812, 'position_vector'], [3575911.678, 5453015.392, 1656549.094]), ('control #9', [-1240296.101, -552884.937, -952528.764, -360.154, 285.951, 384.058, -2.5191, -3.2475, 0.9833, 0.1835, 'position_vector'], [-1240638.85, -552616.633, -952157.656]), ('control #10', [1307969.679, 563540.708, -1431729.813, -333.759, -148.113, 140.284, -1.8868, 2.9579, 1.9314, -9.4043, 'position_vector'], [1307597.811, 563386.446, -1431599.976]), ('control #11', [-3904352.966, -2722509.047, -2822388.255, 181.432, 495.341, 160.587, -1.285, -3.3165, -0.7058, 5.5208, 'position_vector'], [-3904157.024, -2722032.96, -2822289.067]), ('boundary #22', [4027894.006, 307045.6, 4919474.91, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 'coordinate_frame'], [4027894.006, 307045.6, 4919474.91]), ('boundary #25', [1000.0, 2000.0, 3000.0, 1.0, 2.0, 3.0, 0.0, 0.0, 0.0, 0.0, 'position_vector'], [1001.0, 2002.0, 3003.0])], [('control #3', [-189321.127, 3352090.605, -2404357.859, -152.685, 61.282, -123.245, -4.7005, -0.5925, -4.5929, 7.6062, 'coordinate_frame'], [-189556.8, 3352227.961, -2404422.458]), ('control #4', [-6228293.209, -1104665.934, 4388800.498, 448.343, 5.84, -248.246, 0.9162, -1.8119, 1.9656, -3.1531, 'position_vector'], [-6227853.253, -1104735.458, 4388478.796]), ('control #11', [-3904352.966, -2722509.047, -2822388.255, 181.432, 495.341, 160.587, -1.285, -3.3165, -0.7058, 5.5208, 'position_vector'], [-3904157.024, -2722032.96, -2822289.067]), ('control #12', [2647634.641, -1578921.141, -5093066.149, -355.392, 203.405, 165.947, 0.2987, -4.1705, -3.9905, -0.2744, 'position_vector'], [2647350.953, -1578761.15, -5092847.558]), ('control #13', [-3520096.56, -3120177.457, -123254.85, 462.196, 402.077, 308.458, 1.3023, 3.5694, 0.8414, 8.6398, 'position_vector'], [-3519654.182, -3119815.919, -122906.241]), ('control #14', [-6389654.874, -3984093.2, -3011962.836, 356.165, -201.583, 189.984, 2.6426, 1.938, -0.6636, -3.7122, 'coordinate_frame'], [-6389233.872, -3984339.138, -3011770.663]), ('boundary #22', [4027894.006, 307045.6, 4919474.91, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 'coordinate_frame'], [4027894.006, 307045.6, 4919474.91]), ('boundary #25', [1000.0, 2000.0, 3000.0, 1.0, 2.0, 3.0, 0.0, 0.0, 0.0, 0.0, 'position_vector'], [1001.0, 2002.0, 3003.0])], [('control #4', [-6228293.209, -1104665.934, 4388800.498, 448.343, 5.84, -248.246, 0.9162, -1.8119, 1.9656, -3.1531, 'position_vector'], [-6227853.253, -1104735.458, 4388478.796]), ('control #5', [-2535544.339, -5957215.045, -4097405.578, -66.0, -207.215, 331.819, 3.4107, -4.2707, 0.0925, 8.1975, 'position_vector'], [-2535543.615, -5957404.478, -4097258.353]), ('control #14', [-6389654.874, -3984093.2, -3011962.836, 356.165, -201.583, 189.984, 2.6426, 1.938, -0.6636, -3.7122, 'coordinate_frame'], [-6389233.872, -3984339.138, -3011770.663]), ('control #15', [4550537.139, 2792317.331, 1441981.13, 76.583, -265.303, -460.556, -0.538, -4.9358, -3.9263, 0.893, 'coordinate_frame'], [4550599.139, 2792137.381, 1441420.253]), ('control #16', [6034311.204, -4464484.503, 922428.188, 291.409, -257.511, -47.177, 0.8272, -3.8801, -0.5275, 8.0745, 'position_vector'], [6034622.567, -4464797.194, 922484.069]), ('control #17', [5230974.683, -6230904.331, 2167328.689, 237.623, -185.552, -261.576, 1.7677, -1.5195, 4.1454, -3.6432, 'coordinate_frame'], [5231083.99, -6231153.737, 2167074.081]), ('boundary #22', [4027894.006, 307045.6, 4919474.91, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 'coordinate_frame'], [4027894.006, 307045.6, 4919474.91]), ('boundary #25', [1000.0, 2000.0, 3000.0, 1.0, 2.0, 3.0, 0.0, 0.0, 0.0, 0.0, 'position_vector'], [1001.0, 2002.0, 3003.0])]]
for label, args, expected in fixtures[N-1]:
    check(label, solve(args), 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
control #0[-5541265.265, -2232093.171, -6352879.137][-5541265.265, -2232093.171, -6352879.137]Passed
control #1[-4612646.31, 853774.942, -297090.8][-4612646.31, 853774.942, -297090.8]Passed
control #2[1975888.355, -227356.269, 2770795.14][1975888.355, -227356.269, 2770795.14]Passed
control #3[-189556.8, 3352227.961, -2404422.458][-189556.8, 3352227.961, -2404422.458]Passed
control #4[-6227853.253, -1104735.458, 4388478.796][-6227853.253, -1104735.458, 4388478.796]Passed
control #5[-2535543.615, -5957404.478, -4097258.353][-2535543.615, -5957404.478, -4097258.353]Passed
boundary #22[4027894.006, 307045.6, 4919474.91][4027894.006, 307045.6, 4919474.91]Passed
boundary #25[1001.0, 2002.0, 3003.0][1001.0, 2002.0, 3003.0]Passed

SHA-256 / def62b8d34700dfa1d8d5eadb39456634be941cd6e1f990aab07eaf1793970e8

Verification & scope

Stipulated deterministic toy contract on a bounded input domain; results are rounded as stated and no conformance with any published standard or library is claimed. 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:48:19.729579+00:00.

Case digest / 37df34a5af857326d1dac0a57ebe1117a9d211496fd57bc665acc158cbb7a484