{"abstract":"USDJPY and JPYUSD targets fail with ERR:no-quote.","category":"Currency rounding and FX conversion","checks":7,"contract":"solve(quotes, target): quotes maps six-letter pairs to rates (QUOTE units per BASE unit). For currency c, units per USD are: 1 for USD; quotes['USD'+c] if present (authoritative when both orientations exist); else 1/quotes[c+'USD']; else unknown. The target BBBQQQ rate = (QQQ per USD)/(BBB per USD), rounded half-even to 6 decimals and returned as a string; an unknown leg returns 'ERR:no-quote'.","contract_signature":"quotes, target","evaluation_group":"w2-currency_rounding_and_fx_conversion-usd-quote-convention-cross","failed_approach":"Special-casing USD only in the quote position still fails targets with USD as base.","family":"w2-currency_rounding_and_fx_conversion-usd-quote-convention-cross-usd-leg","id":"FA-62271","implementations":{"attempt":{"sha256":"dd94d558c5bcb8ff05421e23513656d20bd0b921b60918a0b40705fc390fd212","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nfrom decimal import Decimal, ROUND_HALF_EVEN, ROUND_HALF_UP, ROUND_FLOOR, ROUND_CEILING, ROUND_DOWN, ROUND_UP, ROUND_HALF_DOWN\nN = 1\nobservations = []\ndef solve(quotes, target):\n    def per_usd(c):\n        if c == 'USD' and c == q: return Decimal(1)\n        if 'USD' + c in quotes: return Decimal(quotes['USD' + c])\n        if c + 'USD' in quotes: return 1 / Decimal(quotes[c + 'USD'])\n        return None\n    b, q = target[:3], target[3:]\n    pb, pq = per_usd(b), per_usd(q)\n    if pb is None or pq is None: return 'ERR:no-quote'\n    return format((pq / pb).quantize(Decimal('0.000001'), rounding=ROUND_HALF_EVEN), 'f')\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncases = [[('regression usd-leg 1',\n   ({'USDJPY': '151.37', 'EURUSD': '1.0835', 'GBPUSD': '1.2650', 'USDCHF': '0.8801', 'AUDUSD': '0.6612'}, 'USDJPY'),\n   '151.370000'),\n  ('regression usd-leg 2',\n   ({'USDJPY': '151.37', 'EURUSD': '1.0835', 'GBPUSD': '1.2650', 'USDCHF': '0.8801', 'AUDUSD': '0.6612'}, 'JPYUSD'),\n   '0.006606'),\n  ('partial repair guard 2',\n   ({'USDJPY': '151.37', 'EURUSD': '1.0835', 'GBPUSD': '1.2650', 'USDCHF': '0.8801', 'AUDUSD': '0.6612'}, 'USDEUR'),\n   '0.922935'),\n  ('control: euro yen',\n   ({'USDJPY': '151.37', 'EURUSD': '1.0835', 'GBPUSD': '1.2650', 'USDCHF': '0.8801', 'AUDUSD': '0.6612'}, 'EURJPY'),\n   '164.009395'),\n  ('control: sterling euro',\n   ({'USDJPY': '151.37', 'EURUSD': '1.0835', 'GBPUSD': '1.2650', 'USDCHF': '0.8801', 'AUDUSD': '0.6612'}, 'GBPEUR'),\n   '1.167513'),\n  ('control: missing leg',\n   ({'USDJPY': '151.37', 'EURUSD': '1.0835', 'GBPUSD': '1.2650', 'USDCHF': '0.8801', 'AUDUSD': '0.6612'}, 'EURSEK'),\n   'ERR:no-quote'),\n  ('control: franc aussie',\n   ({'USDJPY': '151.37', 'EURUSD': '1.0835', 'GBPUSD': '1.2650', 'USDCHF': '0.8801', 'AUDUSD': '0.6612'}, 'CHFAUD'),\n   '1.718443')],\n [('regression usd-leg 1',\n   ({'USDJPY': '151.37', 'EURUSD': '1.0835', 'GBPUSD': '1.2650', 'USDCHF': '0.8801', 'AUDUSD': '0.6612'}, 'USDEUR'),\n   '0.922935'),\n  ('regression usd-leg 2',\n   ({'USDJPY': '151.37',\n     'EURUSD': '1.0835',\n     'GBPUSD': '1.2650',\n     'USDCHF': '0.8801',\n     'AUDUSD': '0.6612',\n     'USDCAD': '1.3577'},\n    'USDGBP'),\n   '0.790514'),\n  ('partial repair guard 2',\n   ({'USDJPY': '151.37',\n     'EURUSD': '1.0835',\n     'GBPUSD': '1.2650',\n     'USDCHF': '0.8801',\n     'AUDUSD': '0.6612',\n     'USDCAD': '1.3577',\n     'USDEUR': '0.9231'},\n    'USDCAD'),\n   '1.357700'),\n  ('control: usd quote',\n   ({'USDJPY': '151.37', 'EURUSD': '1.0835', 'GBPUSD': '1.2650', 'USDCHF': '0.8801', 'AUDUSD': '0.6612'}, 'JPYUSD'),\n   '0.006606'),\n  ('control: missing leg',\n   ({'USDJPY': '151.37', 'EURUSD': '1.0835', 'GBPUSD': '1.2650', 'USDCHF': '0.8801', 'AUDUSD': '0.6612'}, 'EURSEK'),\n   'ERR:no-quote'),\n  ('control: franc aussie',\n   ({'USDJPY': '151.37', 'EURUSD': '1.0835', 'GBPUSD': '1.2650', 'USDCHF': '0.8801', 'AUDUSD': '0.6612'}, 'CHFAUD'),\n   '1.718443'),\n  ('control: both orientations',\n   ({'USDJPY': '151.37',\n     'EURUSD': '1.0835',\n     'GBPUSD': '1.2650',\n     'USDCHF': '0.8801',\n     'AUDUSD': '0.6612',\n     'USDEUR': '0.9231'},\n    'EURCHF'),\n   '0.953418')],\n [('regression usd-leg 1',\n   ({'USDJPY': '151.37',\n     'EURUSD': '1.0835',\n     'GBPUSD': '1.2650',\n     'USDCHF': '0.8801',\n     'AUDUSD': '0.6612',\n     'USDCAD': '1.3577',\n     'USDEUR': '0.9231'},\n    'USDCAD'),\n   '1.357700'),\n  ('regression usd-leg 2',\n   ({'EURUSD': '1.0835',\n     'GBPUSD': '1.2650',\n     'USDCHF': '0.8801',\n     'AUDUSD': '0.6612',\n     'USDCAD': '1.3577',\n     'JPYUSD': '0.006610',\n     'USDEUR': '0.9231'},\n    'EURUSD'),\n   '1.083306'),\n  ('partial repair guard 1',\n   ({'USDJPY': '151.37',\n     'EURUSD': '1.0835',\n     'GBPUSD': '1.2650',\n     'USDCHF': '0.8801',\n     'AUDUSD': '0.6612',\n     'USDCAD': '1.3577',\n     'USDEUR': '0.9231'},\n    'USDCHF'),\n   '0.880100'),\n  ('partial repair guard 2',\n   ({'USDJPY': '151.37',\n     'EURUSD': '1.0835',\n     'GBPUSD': '1.2650',\n     'USDCHF': '0.8801',\n     'AUDUSD': '0.6612',\n     'JPYUSD': '0.006610',\n     'USDEUR': '0.9231'},\n    'USDGBP'),\n   '0.790514'),\n  ('control: both orientations',\n   ({'USDJPY': '151.37',\n     'EURUSD': '1.0835',\n     'GBPUSD': '1.2650',\n     'USDCHF': '0.8801',\n     'AUDUSD': '0.6612',\n     'USDEUR': '0.9231'},\n    'EURCHF'),\n   '0.953418'),\n  ('control: usd to euro',\n   ({'USDJPY': '151.37', 'EURUSD': '1.0835', 'GBPUSD': '1.2650', 'USDCHF': '0.8801', 'AUDUSD': '0.6612'}, 'USDEUR'),\n   '0.922935'),\n  ('control: euro yen',\n   ({'USDJPY': '151.37', 'EURUSD': '1.0835', 'GBPUSD': '1.2650', 'USDCHF': '0.8801', 'AUDUSD': '0.6612'}, 'EURJPY'),\n   '164.009395'),\n  ('control: sterling euro',\n   ({'USDJPY': '151.37', 'EURUSD': '1.0835', 'GBPUSD': '1.2650', 'USDCHF': '0.8801', 'AUDUSD': '0.6612'}, 'GBPEUR'),\n   '1.167513')],\n [('regression usd-leg 1',\n   ({'USDJPY': '151.37',\n     'EURUSD': '1.0835',\n     'GBPUSD': '1.2650',\n     'USDCHF': '0.8801',\n     'AUDUSD': '0.6612',\n     'USDCAD': '1.3577',\n     'USDEUR': '0.9231'},\n    'USDCHF'),\n   '0.880100'),\n  ('regression usd-leg 2',\n   ({'USDJPY': '151.37',\n     'EURUSD': '1.0835',\n     'GBPUSD': '1.2650',\n     'USDCHF': '0.8801',\n     'AUDUSD': '0.6612',\n     'USDCAD': '1.3577',\n     'JPYUSD': '0.006610'},\n    'EURUSD'),\n   '1.083500'),\n  ('partial repair guard 1',\n   ({'USDJPY': '151.37',\n     'EURUSD': '1.0835',\n     'GBPUSD': '1.2650',\n     'USDCHF': '0.8801',\n     'AUDUSD': '0.6612',\n     'USDCAD': '1.3577'},\n    'USDCAD'),\n   '1.357700'),\n  ('partial repair guard 2',\n   ({'USDJPY': '151.37',\n     'EURUSD': '1.0835',\n     'GBPUSD': '1.2650',\n     'USDCHF': '0.8801',\n     'AUDUSD': '0.6612',\n     'USDCAD': '1.3577',\n     'USDEUR': '0.9231'},\n    'USDEUR'),\n   '0.923100'),\n  ('control: sterling euro',\n   ({'USDJPY': '151.37', 'EURUSD': '1.0835', 'GBPUSD': '1.2650', 'USDCHF': '0.8801', 'AUDUSD': '0.6612'}, 'GBPEUR'),\n   '1.167513'),\n  ('control: direct usd base',\n   ({'USDJPY': '151.37', 'EURUSD': '1.0835', 'GBPUSD': '1.2650', 'USDCHF': '0.8801', 'AUDUSD': '0.6612'}, 'USDJPY'),\n   '151.370000'),\n  ('control: usd quote',\n   ({'USDJPY': '151.37', 'EURUSD': '1.0835', 'GBPUSD': '1.2650', 'USDCHF': '0.8801', 'AUDUSD': '0.6612'}, 'JPYUSD'),\n   '0.006606'),\n  ('control: missing leg',\n   ({'USDJPY': '151.37', 'EURUSD': '1.0835', 'GBPUSD': '1.2650', 'USDCHF': '0.8801', 'AUDUSD': '0.6612'}, 'EURSEK'),\n   'ERR:no-quote')],\n [('regression usd-leg 1',\n   ({'USDJPY': '151.37',\n     'EURUSD': '1.0835',\n     'GBPUSD': '1.2650',\n     'USDCHF': '0.8801',\n     'AUDUSD': '0.6612',\n     'USDCAD': '1.3577',\n     'JPYUSD': '0.006610'},\n    'CADUSD'),\n   '0.736540'),\n  ('regression usd-leg 2',\n   ({'USDJPY': '151.37', 'EURUSD': '1.0835', 'GBPUSD': '1.2650', 'USDCHF': '0.8801', 'AUDUSD': '0.6612'}, 'CHFUSD'),\n   '1.136235'),\n  ('partial repair guard 1',\n   ({'USDJPY': '151.37',\n     'EURUSD': '1.0835',\n     'GBPUSD': '1.2650',\n     'USDCHF': '0.8801',\n     'AUDUSD': '0.6612',\n     'USDCAD': '1.3577',\n     'JPYUSD': '0.006610'},\n    'USDCHF'),\n   '0.880100'),\n  ('partial repair guard 2',\n   ({'USDJPY': '151.37',\n     'GBPUSD': '1.2650',\n     'USDCHF': '0.8801',\n     'AUDUSD': '0.6612',\n     'USDCAD': '1.3577',\n     'JPYUSD': '0.006610'},\n    'USDJPY'),\n   '151.370000'),\n  ('control: missing leg',\n   ({'USDJPY': '151.37', 'EURUSD': '1.0835', 'GBPUSD': '1.2650', 'USDCHF': '0.8801', 'AUDUSD': '0.6612'}, 'EURSEK'),\n   'ERR:no-quote'),\n  ('control: franc aussie',\n   ({'USDJPY': '151.37', 'EURUSD': '1.0835', 'GBPUSD': '1.2650', 'USDCHF': '0.8801', 'AUDUSD': '0.6612'}, 'CHFAUD'),\n   '1.718443'),\n  ('control: both orientations',\n   ({'USDJPY': '151.37',\n     'EURUSD': '1.0835',\n     'GBPUSD': '1.2650',\n     'USDCHF': '0.8801',\n     'AUDUSD': '0.6612',\n     'USDEUR': '0.9231'},\n    'EURCHF'),\n   '0.953418'),\n  ('control: usd to euro',\n   ({'USDJPY': '151.37', 'EURUSD': '1.0835', 'GBPUSD': '1.2650', 'USDCHF': '0.8801', 'AUDUSD': '0.6612'}, 'USDEUR'),\n   '0.922935')]]\nfor label, args, expected in cases[N - 1]:\n    check(label, solve(*args), 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":"0c547cec804a404bf1889a06d110f34aca323a05b7039f5a9099788f723ada7b","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nfrom decimal import Decimal, ROUND_HALF_EVEN, ROUND_HALF_UP, ROUND_FLOOR, ROUND_CEILING, ROUND_DOWN, ROUND_UP, ROUND_HALF_DOWN\nN = 1\nobservations = []\ndef solve(quotes, target):\n    def per_usd(c):\n        pass\n        if 'USD' + c in quotes: return Decimal(quotes['USD' + c])\n        if c + 'USD' in quotes: return 1 / Decimal(quotes[c + 'USD'])\n        return None\n    b, q = target[:3], target[3:]\n    pb, pq = per_usd(b), per_usd(q)\n    if pb is None or pq is None: return 'ERR:no-quote'\n    return format((pq / pb).quantize(Decimal('0.000001'), rounding=ROUND_HALF_EVEN), 'f')\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncases = [[('regression usd-leg 1',\n   ({'USDJPY': '151.37', 'EURUSD': '1.0835', 'GBPUSD': '1.2650', 'USDCHF': '0.8801', 'AUDUSD': '0.6612'}, 'USDJPY'),\n   '151.370000'),\n  ('regression usd-leg 2',\n   ({'USDJPY': '151.37', 'EURUSD': '1.0835', 'GBPUSD': '1.2650', 'USDCHF': '0.8801', 'AUDUSD': '0.6612'}, 'JPYUSD'),\n   '0.006606'),\n  ('partial repair guard 2',\n   ({'USDJPY': '151.37', 'EURUSD': '1.0835', 'GBPUSD': '1.2650', 'USDCHF': '0.8801', 'AUDUSD': '0.6612'}, 'USDEUR'),\n   '0.922935'),\n  ('control: euro yen',\n   ({'USDJPY': '151.37', 'EURUSD': '1.0835', 'GBPUSD': '1.2650', 'USDCHF': '0.8801', 'AUDUSD': '0.6612'}, 'EURJPY'),\n   '164.009395'),\n  ('control: sterling euro',\n   ({'USDJPY': '151.37', 'EURUSD': '1.0835', 'GBPUSD': '1.2650', 'USDCHF': '0.8801', 'AUDUSD': '0.6612'}, 'GBPEUR'),\n   '1.167513'),\n  ('control: missing leg',\n   ({'USDJPY': '151.37', 'EURUSD': '1.0835', 'GBPUSD': '1.2650', 'USDCHF': '0.8801', 'AUDUSD': '0.6612'}, 'EURSEK'),\n   'ERR:no-quote'),\n  ('control: franc aussie',\n   ({'USDJPY': '151.37', 'EURUSD': '1.0835', 'GBPUSD': '1.2650', 'USDCHF': '0.8801', 'AUDUSD': '0.6612'}, 'CHFAUD'),\n   '1.718443')],\n [('regression usd-leg 1',\n   ({'USDJPY': '151.37', 'EURUSD': '1.0835', 'GBPUSD': '1.2650', 'USDCHF': '0.8801', 'AUDUSD': '0.6612'}, 'USDEUR'),\n   '0.922935'),\n  ('regression usd-leg 2',\n   ({'USDJPY': '151.37',\n     'EURUSD': '1.0835',\n     'GBPUSD': '1.2650',\n     'USDCHF': '0.8801',\n     'AUDUSD': '0.6612',\n     'USDCAD': '1.3577'},\n    'USDGBP'),\n   '0.790514'),\n  ('partial repair guard 2',\n   ({'USDJPY': '151.37',\n     'EURUSD': '1.0835',\n     'GBPUSD': '1.2650',\n     'USDCHF': '0.8801',\n     'AUDUSD': '0.6612',\n     'USDCAD': '1.3577',\n     'USDEUR': '0.9231'},\n    'USDCAD'),\n   '1.357700'),\n  ('control: usd quote',\n   ({'USDJPY': '151.37', 'EURUSD': '1.0835', 'GBPUSD': '1.2650', 'USDCHF': '0.8801', 'AUDUSD': '0.6612'}, 'JPYUSD'),\n   '0.006606'),\n  ('control: missing leg',\n   ({'USDJPY': '151.37', 'EURUSD': '1.0835', 'GBPUSD': '1.2650', 'USDCHF': '0.8801', 'AUDUSD': '0.6612'}, 'EURSEK'),\n   'ERR:no-quote'),\n  ('control: franc aussie',\n   ({'USDJPY': '151.37', 'EURUSD': '1.0835', 'GBPUSD': '1.2650', 'USDCHF': '0.8801', 'AUDUSD': '0.6612'}, 'CHFAUD'),\n   '1.718443'),\n  ('control: both orientations',\n   ({'USDJPY': '151.37',\n     'EURUSD': '1.0835',\n     'GBPUSD': '1.2650',\n     'USDCHF': '0.8801',\n     'AUDUSD': '0.6612',\n     'USDEUR': '0.9231'},\n    'EURCHF'),\n   '0.953418')],\n [('regression usd-leg 1',\n   ({'USDJPY': '151.37',\n     'EURUSD': '1.0835',\n     'GBPUSD': '1.2650',\n     'USDCHF': '0.8801',\n     'AUDUSD': '0.6612',\n     'USDCAD': '1.3577',\n     'USDEUR': '0.9231'},\n    'USDCAD'),\n   '1.357700'),\n  ('regression usd-leg 2',\n   ({'EURUSD': '1.0835',\n     'GBPUSD': '1.2650',\n     'USDCHF': '0.8801',\n     'AUDUSD': '0.6612',\n     'USDCAD': '1.3577',\n     'JPYUSD': '0.006610',\n     'USDEUR': '0.9231'},\n    'EURUSD'),\n   '1.083306'),\n  ('partial repair guard 1',\n   ({'USDJPY': '151.37',\n     'EURUSD': '1.0835',\n     'GBPUSD': '1.2650',\n     'USDCHF': '0.8801',\n     'AUDUSD': '0.6612',\n     'USDCAD': '1.3577',\n     'USDEUR': '0.9231'},\n    'USDCHF'),\n   '0.880100'),\n  ('partial repair guard 2',\n   ({'USDJPY': '151.37',\n     'EURUSD': '1.0835',\n     'GBPUSD': '1.2650',\n     'USDCHF': '0.8801',\n     'AUDUSD': '0.6612',\n     'JPYUSD': '0.006610',\n     'USDEUR': '0.9231'},\n    'USDGBP'),\n   '0.790514'),\n  ('control: both orientations',\n   ({'USDJPY': '151.37',\n     'EURUSD': '1.0835',\n     'GBPUSD': '1.2650',\n     'USDCHF': '0.8801',\n     'AUDUSD': '0.6612',\n     'USDEUR': '0.9231'},\n    'EURCHF'),\n   '0.953418'),\n  ('control: usd to euro',\n   ({'USDJPY': '151.37', 'EURUSD': '1.0835', 'GBPUSD': '1.2650', 'USDCHF': '0.8801', 'AUDUSD': '0.6612'}, 'USDEUR'),\n   '0.922935'),\n  ('control: euro yen',\n   ({'USDJPY': '151.37', 'EURUSD': '1.0835', 'GBPUSD': '1.2650', 'USDCHF': '0.8801', 'AUDUSD': '0.6612'}, 'EURJPY'),\n   '164.009395'),\n  ('control: sterling euro',\n   ({'USDJPY': '151.37', 'EURUSD': '1.0835', 'GBPUSD': '1.2650', 'USDCHF': '0.8801', 'AUDUSD': '0.6612'}, 'GBPEUR'),\n   '1.167513')],\n [('regression usd-leg 1',\n   ({'USDJPY': '151.37',\n     'EURUSD': '1.0835',\n     'GBPUSD': '1.2650',\n     'USDCHF': '0.8801',\n     'AUDUSD': '0.6612',\n     'USDCAD': '1.3577',\n     'USDEUR': '0.9231'},\n    'USDCHF'),\n   '0.880100'),\n  ('regression usd-leg 2',\n   ({'USDJPY': '151.37',\n     'EURUSD': '1.0835',\n     'GBPUSD': '1.2650',\n     'USDCHF': '0.8801',\n     'AUDUSD': '0.6612',\n     'USDCAD': '1.3577',\n     'JPYUSD': '0.006610'},\n    'EURUSD'),\n   '1.083500'),\n  ('partial repair guard 1',\n   ({'USDJPY': '151.37',\n     'EURUSD': '1.0835',\n     'GBPUSD': '1.2650',\n     'USDCHF': '0.8801',\n     'AUDUSD': '0.6612',\n     'USDCAD': '1.3577'},\n    'USDCAD'),\n   '1.357700'),\n  ('partial repair guard 2',\n   ({'USDJPY': '151.37',\n     'EURUSD': '1.0835',\n     'GBPUSD': '1.2650',\n     'USDCHF': '0.8801',\n     'AUDUSD': '0.6612',\n     'USDCAD': '1.3577',\n     'USDEUR': '0.9231'},\n    'USDEUR'),\n   '0.923100'),\n  ('control: sterling euro',\n   ({'USDJPY': '151.37', 'EURUSD': '1.0835', 'GBPUSD': '1.2650', 'USDCHF': '0.8801', 'AUDUSD': '0.6612'}, 'GBPEUR'),\n   '1.167513'),\n  ('control: direct usd base',\n   ({'USDJPY': '151.37', 'EURUSD': '1.0835', 'GBPUSD': '1.2650', 'USDCHF': '0.8801', 'AUDUSD': '0.6612'}, 'USDJPY'),\n   '151.370000'),\n  ('control: usd quote',\n   ({'USDJPY': '151.37', 'EURUSD': '1.0835', 'GBPUSD': '1.2650', 'USDCHF': '0.8801', 'AUDUSD': '0.6612'}, 'JPYUSD'),\n   '0.006606'),\n  ('control: missing leg',\n   ({'USDJPY': '151.37', 'EURUSD': '1.0835', 'GBPUSD': '1.2650', 'USDCHF': '0.8801', 'AUDUSD': '0.6612'}, 'EURSEK'),\n   'ERR:no-quote')],\n [('regression usd-leg 1',\n   ({'USDJPY': '151.37',\n     'EURUSD': '1.0835',\n     'GBPUSD': '1.2650',\n     'USDCHF': '0.8801',\n     'AUDUSD': '0.6612',\n     'USDCAD': '1.3577',\n     'JPYUSD': '0.006610'},\n    'CADUSD'),\n   '0.736540'),\n  ('regression usd-leg 2',\n   ({'USDJPY': '151.37', 'EURUSD': '1.0835', 'GBPUSD': '1.2650', 'USDCHF': '0.8801', 'AUDUSD': '0.6612'}, 'CHFUSD'),\n   '1.136235'),\n  ('partial repair guard 1',\n   ({'USDJPY': '151.37',\n     'EURUSD': '1.0835',\n     'GBPUSD': '1.2650',\n     'USDCHF': '0.8801',\n     'AUDUSD': '0.6612',\n     'USDCAD': '1.3577',\n     'JPYUSD': '0.006610'},\n    'USDCHF'),\n   '0.880100'),\n  ('partial repair guard 2',\n   ({'USDJPY': '151.37',\n     'GBPUSD': '1.2650',\n     'USDCHF': '0.8801',\n     'AUDUSD': '0.6612',\n     'USDCAD': '1.3577',\n     'JPYUSD': '0.006610'},\n    'USDJPY'),\n   '151.370000'),\n  ('control: missing leg',\n   ({'USDJPY': '151.37', 'EURUSD': '1.0835', 'GBPUSD': '1.2650', 'USDCHF': '0.8801', 'AUDUSD': '0.6612'}, 'EURSEK'),\n   'ERR:no-quote'),\n  ('control: franc aussie',\n   ({'USDJPY': '151.37', 'EURUSD': '1.0835', 'GBPUSD': '1.2650', 'USDCHF': '0.8801', 'AUDUSD': '0.6612'}, 'CHFAUD'),\n   '1.718443'),\n  ('control: both orientations',\n   ({'USDJPY': '151.37',\n     'EURUSD': '1.0835',\n     'GBPUSD': '1.2650',\n     'USDCHF': '0.8801',\n     'AUDUSD': '0.6612',\n     'USDEUR': '0.9231'},\n    'EURCHF'),\n   '0.953418'),\n  ('control: usd to euro',\n   ({'USDJPY': '151.37', 'EURUSD': '1.0835', 'GBPUSD': '1.2650', 'USDCHF': '0.8801', 'AUDUSD': '0.6612'}, 'USDEUR'),\n   '0.922935')]]\nfor label, args, expected in cases[N - 1]:\n    check(label, solve(*args), 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":"A deterministic, bounded teaching model with a stipulated toy contract; it makes no claim of conformance to any real regulation, standard, or institution's rules. 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":"w2-currency_rounding_and_fx_conversion-usd-quote-convention-cross-usd-leg","generated_at":"2026-09-29T14:47:03.059998+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Currency amounts must be rounded at the right stage and in the right unit, or ledgers, quotes and settlements drift by minor units.","root_cause":"USD has no special case, so its leg is searched as 'USDUSD'.","sha256":"a98d1d5fe6b054b0d259209edea9ed4c1b0967343ebc70f66f4f997d65169e56","title":"A target involving USD itself looks up a USDUSD quote · 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":41.738,"exit_code":1,"observations":[{"actual":"ERR:no-quote","check":"regression usd-leg 1","expected":"151.370000","passed":false},{"actual":"0.006606","check":"regression usd-leg 2","expected":"0.006606","passed":true},{"actual":"ERR:no-quote","check":"partial repair guard 2","expected":"0.922935","passed":false},{"actual":"164.009395","check":"control: euro yen","expected":"164.009395","passed":true},{"actual":"1.167513","check":"control: sterling euro","expected":"1.167513","passed":true},{"actual":"ERR:no-quote","check":"control: missing leg","expected":"ERR:no-quote","passed":true},{"actual":"1.718443","check":"control: franc aussie","expected":"1.718443","passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression usd-leg 1\", \"actual\": \"ERR:no-quote\", \"expected\": \"151.370000\", \"passed\": false}, {\"check\": \"regression usd-leg 2\", \"actual\": \"0.006606\", \"expected\": \"0.006606\", \"passed\": true}, {\"check\": \"partial repair guard 2\", \"actual\": \"ERR:no-quote\", \"expected\": \"0.922935\", \"passed\": false}, {\"check\": \"control: euro yen\", \"actual\": \"164.009395\", \"expected\": \"164.009395\", \"passed\": true}, {\"check\": \"control: sterling euro\", \"actual\": \"1.167513\", \"expected\": \"1.167513\", \"passed\": true}, {\"check\": \"control: missing leg\", \"actual\": \"ERR:no-quote\", \"expected\": \"ERR:no-quote\", \"passed\": true}, {\"check\": \"control: franc aussie\", \"actual\": \"1.718443\", \"expected\": \"1.718443\", \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":41.026,"exit_code":1,"observations":[{"actual":"ERR:no-quote","check":"regression usd-leg 1","expected":"151.370000","passed":false},{"actual":"ERR:no-quote","check":"regression usd-leg 2","expected":"0.006606","passed":false},{"actual":"ERR:no-quote","check":"partial repair guard 2","expected":"0.922935","passed":false},{"actual":"164.009395","check":"control: euro yen","expected":"164.009395","passed":true},{"actual":"1.167513","check":"control: sterling euro","expected":"1.167513","passed":true},{"actual":"ERR:no-quote","check":"control: missing leg","expected":"ERR:no-quote","passed":true},{"actual":"1.718443","check":"control: franc aussie","expected":"1.718443","passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"regression usd-leg 1\", \"actual\": \"ERR:no-quote\", \"expected\": \"151.370000\", \"passed\": false}, {\"check\": \"regression usd-leg 2\", \"actual\": \"ERR:no-quote\", \"expected\": \"0.006606\", \"passed\": false}, {\"check\": \"partial repair guard 2\", \"actual\": \"ERR:no-quote\", \"expected\": \"0.922935\", \"passed\": false}, {\"check\": \"control: euro yen\", \"actual\": \"164.009395\", \"expected\": \"164.009395\", \"passed\": true}, {\"check\": \"control: sterling euro\", \"actual\": \"1.167513\", \"expected\": \"1.167513\", \"passed\": true}, {\"check\": \"control: missing leg\", \"actual\": \"ERR:no-quote\", \"expected\": \"ERR:no-quote\", \"passed\": true}, {\"check\": \"control: franc aussie\", \"actual\": \"1.718443\", \"expected\": \"1.718443\", \"passed\": true}], \"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."}}