FA-61576 / Options payoff and settlement / Open access
Special opening settlement value for index options: half-cent settlement values round to even · case 01
Exact half-cent values settle a cent lower half of the time.
ROOT CAUSE
The quantization uses banker's rounding.
VERIFIED REPAIR
Round half-up to cents.
Unsuccessful approach: Truncating to cents lowers every fractional value.
Case contract
Inputs components [weight, opening price or None, last close] and a divisor. Each component uses its opening price, or its last close if it did not open. Settlement = sum(weight*price)/divisor computed in Decimal and rounded half-up to cents. Return as a string.
Why this case matters
Option expiry, exercise and settlement engines move cash and shares; a wrong branch misstates obligations.
1 / The failure
Exit 1"""Failure Map reference implementation. Python standard library only."""
import json
from decimal import Decimal, ROUND_HALF_UP, ROUND_HALF_EVEN, ROUND_DOWN
N = 1
observations = []
def solve(components, divisor):
total = Decimal(0)
for w, op, close in components:
px = op if op is not None else close
total += Decimal(str(w)) * Decimal(str(px))
val = (total / Decimal(str(divisor))).quantize(Decimal('0.01'), rounding=ROUND_HALF_EVEN)
return str(val)
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[['regression settlement rounding mode 1', [[[1, 38.79, 40.378], [1.5, 186.655, 180.163], [0.5, 13.08, 12.643]], 0.5], '650.63'], ['regression settlement rounding mode 2', [[[1.5, 166.141, 161.691], [1.5, 118.467, 117.341], [3, 18.846, 19.774]], 2], '241.73'], ['partial repair probe 1', [[[0.5, None, 160.862], [1, 66.98, 65.82], [2, None, 182.096], [0.5, 33.672, 33.239]], 1], '528.44'], ['partial repair probe 2', [[[0.5, 193.605, 193.453], [1.5, 135.426, 135.553], [1, None, 85.835]], 2], '192.89'], ['boundary control 1', [[[1, None, 10.0], [2, 5.0, 4.0]], 2], '10.00'], ['normal control 1', [[[0.5, 20.415, 19.879], [1.5, 152.089, 157.637], [1.5, 106.795, 110.396], [1, None, 155.609]], 1], '554.14'], ['normal control 2', [[[0.5, 106.616, 109.753], [3, 182.574, 179.101], [1, 48.45, 47.519], [0.5, None, 27.452]], 2], '331.60'], ['normal control 3', [[[1, None, 169.547], [2, 176.066, 180.982], [1.5, 16.157, 16.833], [3, 46.697, 44.875], [3, None, 171.952], [1.5, 121.585, 121.726]], 1.25], '1107.39']], [['regression settlement rounding mode 1', [[[2, 191.853, 193.22], [3, None, 84.528]], 2], '318.65'], ['regression settlement rounding mode 2', [[[0.5, None, 47.039], [3, 172.439, 181.365], [2, None, 107.369], [2, 115.824, 116.814]], 0.5], '1974.45'], ['partial repair probe 1', [[[2, None, 168.281], [2, 30.899, 29.856], [3, 32.803, 32.739], [1, 122.102, 122.898], [0.5, 191.008, 198.424]], 1], '714.38'], ['partial repair probe 2', [[[3, 16.992, 17.666], [1.5, 29.107, 30.399]], 4], '23.66'], ['boundary control 1', [[[1, None, 10.0], [2, 5.0, 4.0]], 2], '10.00'], ['normal control 1', [[[1, None, 65.868], [1, None, 158.33], [3, 137.696, 133.715], [1, None, 183.261], [3, 184.203, 177.685], [1, 12.225, 12.555]], 0.5], '2770.76'], ['normal control 2', [[[1.5, None, 195.364], [3, 35.52, 35.531], [3, None, 182.591], [1, 118.595, 114.601], [1, None, 89.404], [2, None, 177.317]], 4], '377.50'], ['normal control 3', [[[2, None, 141.271], [2, None, 51.704], [1.5, 118.603, 114.944], [1.5, None, 18.672], [0.5, 182.134, 178.819], [2, 109.121, 110.117]], 0.5], '1802.34']], [['regression settlement rounding mode 1', [[[1, 10.005, 10.0]], 1], '10.01'], ['regression settlement rounding mode 2', [[[2, None, 134.348], [2, 179.109, 175.897], [1, None, 180.728], [2, None, 183.384], [1, None, 67.915]], 1], '1242.33'], ['partial repair probe 1', [[[1, 20.57, 20.464], [1.5, None, 195.278], [1, 137.933, 133.006], [2, 62.689, 64.407], [1.5, 203.625, 195.427]], 2], '441.12'], ['partial repair probe 2', [[[3, None, 41.799], [0.5, 179.575, 174.157], [0.5, None, 197.224], [1.5, 136.723, 131.192], [3, 128.882, 127.245], [1, 128.205, 129.543]], 1.25], '826.99'], ['boundary control 1', [[[1, None, 10.0], [2, 5.0, 4.0]], 2], '10.00'], ['normal control 1', [[[1.5, 34.383, 33.927], [3, 125.316, 122.465]], 1], '427.52'], ['normal control 2', [[[2, 49.349, 49.841], [0.5, 140.601, 143.116], [2, 184.11, 179.202], [3, 60.266, 57.754], [1, 114.722, 113.718], [0.5, None, 185.123]], 1.25], '740.24'], ['normal control 3', [[[3, 109.509, 112.946], [1.5, None, 101.147], [3, 46.464, 47.536], [3, 169.433, 173.369], [3, 203.86, 198.26], [1, 47.804, 46.611]], 2], '893.66']], [['regression settlement rounding mode 1', [[[1, None, 93.437], [3, 90.88, 87.107], [3, 90.113, 87.448], [0.5, None, 59.65], [1.5, 164.801, 171.303]], 0.5], '1826.89'], ['regression settlement rounding mode 2', [[[1.5, None, 76.278], [0.5, 161.218, 157.802], [0.5, 40.053, 38.771]], 0.5], '430.11'], ['partial repair probe 1', [[[0.5, 158.141, 153.244], [2, 104.453, 108.262], [0.5, None, 48.326], [0.5, 55.327, 55.896], [0.5, 44.353, 44.512]], 8], '45.25'], ['partial repair probe 2', [[[0.5, 86.657, 89.91], [1, 180.822, 176.79], [1, None, 42.087], [2, 103.599, 101.973], [1.5, 25.4, 24.938]], 2], '255.77'], ['boundary control 1', [[[1, None, 10.0], [2, 5.0, 4.0]], 2], '10.00'], ['normal control 1', [[[1, 118.952, 118.389], [3, None, 15.777], [0.5, None, 84.309], [3, None, 68.185]], 8], '51.62'], ['normal control 2', [[[1.5, 168.828, 177.339], [2, None, 137.131], [2, 152.461, 147.559], [0.5, 157.875, 154.317]], 2], '455.68'], ['normal control 3', [[[3, 143.994, 147.851], [1.5, 22.199, 22.763]], 4], '116.32']], [['regression settlement rounding mode 1', [[[1.5, 24.361, 24.485], [0.5, 102.252, 102.627], [2, 103.332, 101.585], [2, 201.605, 193.274], [1.5, 122.313, 121.155], [1.5, 71.356, 69.738]], 1], '988.05'], ['regression settlement rounding mode 2', [[[2, 13.558, 13.914], [1.5, 71.539, 69.751], [1.5, 198.187, 191.804]], 1], '431.71'], ['partial repair probe 1', [[[1.5, 155.546, 153.219], [0.5, 88.243, 91.627], [1.5, 111.796, 115.767], [2, None, 154.621]], 8], '94.30'], ['partial repair probe 2', [[[3, 68.608, 68.091], [3, 191.25, 184.851], [0.5, None, 125.688]], 1], '842.42'], ['boundary control 1', [[[1, None, 10.0], [2, 5.0, 4.0]], 2], '10.00'], ['normal control 1', [[[1.5, None, 35.672], [1, 40.044, 40.607]], 1], '93.55'], ['normal control 2', [[[1.5, 127.88, 124.218], [2, 119.029, 125.074], [1, None, 117.087]], 1.25], '437.57'], ['normal control 3', [[[3, 31.608, 32.348], [2, 84.454, 83.132], [1, 88.713, 93.316], [2, None, 172.34]], 2], '348.56']]]
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 fixture | Actual | Expected | Outcome |
|---|---|---|---|
| regression settlement rounding mode 1 | 650.62 | 650.63 | Failed |
| regression settlement rounding mode 2 | 241.72 | 241.73 | Failed |
| partial repair probe 1 | 528.44 | 528.44 | Passed |
| partial repair probe 2 | 192.89 | 192.89 | Passed |
| boundary control 1 | 10.00 | 10.00 | Passed |
| normal control 1 | 554.14 | 554.14 | Passed |
| normal control 2 | 331.60 | 331.60 | Passed |
| normal control 3 | 1107.39 | 1107.39 | Passed |
SHA-256 / cc63874db2478d169eaad59922624197283b2d6b2b579dd1d45d105e9c3382a5
2 / The unsuccessful fix
Exit 1"""Failure Map reference implementation. Python standard library only."""
import json
from decimal import Decimal, ROUND_HALF_UP, ROUND_HALF_EVEN, ROUND_DOWN
N = 1
observations = []
def solve(components, divisor):
total = Decimal(0)
for w, op, close in components:
px = op if op is not None else close
total += Decimal(str(w)) * Decimal(str(px))
val = (total / Decimal(str(divisor))).quantize(Decimal('0.01'), rounding=ROUND_DOWN)
return str(val)
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[['regression settlement rounding mode 1', [[[1, 38.79, 40.378], [1.5, 186.655, 180.163], [0.5, 13.08, 12.643]], 0.5], '650.63'], ['regression settlement rounding mode 2', [[[1.5, 166.141, 161.691], [1.5, 118.467, 117.341], [3, 18.846, 19.774]], 2], '241.73'], ['partial repair probe 1', [[[0.5, None, 160.862], [1, 66.98, 65.82], [2, None, 182.096], [0.5, 33.672, 33.239]], 1], '528.44'], ['partial repair probe 2', [[[0.5, 193.605, 193.453], [1.5, 135.426, 135.553], [1, None, 85.835]], 2], '192.89'], ['boundary control 1', [[[1, None, 10.0], [2, 5.0, 4.0]], 2], '10.00'], ['normal control 1', [[[0.5, 20.415, 19.879], [1.5, 152.089, 157.637], [1.5, 106.795, 110.396], [1, None, 155.609]], 1], '554.14'], ['normal control 2', [[[0.5, 106.616, 109.753], [3, 182.574, 179.101], [1, 48.45, 47.519], [0.5, None, 27.452]], 2], '331.60'], ['normal control 3', [[[1, None, 169.547], [2, 176.066, 180.982], [1.5, 16.157, 16.833], [3, 46.697, 44.875], [3, None, 171.952], [1.5, 121.585, 121.726]], 1.25], '1107.39']], [['regression settlement rounding mode 1', [[[2, 191.853, 193.22], [3, None, 84.528]], 2], '318.65'], ['regression settlement rounding mode 2', [[[0.5, None, 47.039], [3, 172.439, 181.365], [2, None, 107.369], [2, 115.824, 116.814]], 0.5], '1974.45'], ['partial repair probe 1', [[[2, None, 168.281], [2, 30.899, 29.856], [3, 32.803, 32.739], [1, 122.102, 122.898], [0.5, 191.008, 198.424]], 1], '714.38'], ['partial repair probe 2', [[[3, 16.992, 17.666], [1.5, 29.107, 30.399]], 4], '23.66'], ['boundary control 1', [[[1, None, 10.0], [2, 5.0, 4.0]], 2], '10.00'], ['normal control 1', [[[1, None, 65.868], [1, None, 158.33], [3, 137.696, 133.715], [1, None, 183.261], [3, 184.203, 177.685], [1, 12.225, 12.555]], 0.5], '2770.76'], ['normal control 2', [[[1.5, None, 195.364], [3, 35.52, 35.531], [3, None, 182.591], [1, 118.595, 114.601], [1, None, 89.404], [2, None, 177.317]], 4], '377.50'], ['normal control 3', [[[2, None, 141.271], [2, None, 51.704], [1.5, 118.603, 114.944], [1.5, None, 18.672], [0.5, 182.134, 178.819], [2, 109.121, 110.117]], 0.5], '1802.34']], [['regression settlement rounding mode 1', [[[1, 10.005, 10.0]], 1], '10.01'], ['regression settlement rounding mode 2', [[[2, None, 134.348], [2, 179.109, 175.897], [1, None, 180.728], [2, None, 183.384], [1, None, 67.915]], 1], '1242.33'], ['partial repair probe 1', [[[1, 20.57, 20.464], [1.5, None, 195.278], [1, 137.933, 133.006], [2, 62.689, 64.407], [1.5, 203.625, 195.427]], 2], '441.12'], ['partial repair probe 2', [[[3, None, 41.799], [0.5, 179.575, 174.157], [0.5, None, 197.224], [1.5, 136.723, 131.192], [3, 128.882, 127.245], [1, 128.205, 129.543]], 1.25], '826.99'], ['boundary control 1', [[[1, None, 10.0], [2, 5.0, 4.0]], 2], '10.00'], ['normal control 1', [[[1.5, 34.383, 33.927], [3, 125.316, 122.465]], 1], '427.52'], ['normal control 2', [[[2, 49.349, 49.841], [0.5, 140.601, 143.116], [2, 184.11, 179.202], [3, 60.266, 57.754], [1, 114.722, 113.718], [0.5, None, 185.123]], 1.25], '740.24'], ['normal control 3', [[[3, 109.509, 112.946], [1.5, None, 101.147], [3, 46.464, 47.536], [3, 169.433, 173.369], [3, 203.86, 198.26], [1, 47.804, 46.611]], 2], '893.66']], [['regression settlement rounding mode 1', [[[1, None, 93.437], [3, 90.88, 87.107], [3, 90.113, 87.448], [0.5, None, 59.65], [1.5, 164.801, 171.303]], 0.5], '1826.89'], ['regression settlement rounding mode 2', [[[1.5, None, 76.278], [0.5, 161.218, 157.802], [0.5, 40.053, 38.771]], 0.5], '430.11'], ['partial repair probe 1', [[[0.5, 158.141, 153.244], [2, 104.453, 108.262], [0.5, None, 48.326], [0.5, 55.327, 55.896], [0.5, 44.353, 44.512]], 8], '45.25'], ['partial repair probe 2', [[[0.5, 86.657, 89.91], [1, 180.822, 176.79], [1, None, 42.087], [2, 103.599, 101.973], [1.5, 25.4, 24.938]], 2], '255.77'], ['boundary control 1', [[[1, None, 10.0], [2, 5.0, 4.0]], 2], '10.00'], ['normal control 1', [[[1, 118.952, 118.389], [3, None, 15.777], [0.5, None, 84.309], [3, None, 68.185]], 8], '51.62'], ['normal control 2', [[[1.5, 168.828, 177.339], [2, None, 137.131], [2, 152.461, 147.559], [0.5, 157.875, 154.317]], 2], '455.68'], ['normal control 3', [[[3, 143.994, 147.851], [1.5, 22.199, 22.763]], 4], '116.32']], [['regression settlement rounding mode 1', [[[1.5, 24.361, 24.485], [0.5, 102.252, 102.627], [2, 103.332, 101.585], [2, 201.605, 193.274], [1.5, 122.313, 121.155], [1.5, 71.356, 69.738]], 1], '988.05'], ['regression settlement rounding mode 2', [[[2, 13.558, 13.914], [1.5, 71.539, 69.751], [1.5, 198.187, 191.804]], 1], '431.71'], ['partial repair probe 1', [[[1.5, 155.546, 153.219], [0.5, 88.243, 91.627], [1.5, 111.796, 115.767], [2, None, 154.621]], 8], '94.30'], ['partial repair probe 2', [[[3, 68.608, 68.091], [3, 191.25, 184.851], [0.5, None, 125.688]], 1], '842.42'], ['boundary control 1', [[[1, None, 10.0], [2, 5.0, 4.0]], 2], '10.00'], ['normal control 1', [[[1.5, None, 35.672], [1, 40.044, 40.607]], 1], '93.55'], ['normal control 2', [[[1.5, 127.88, 124.218], [2, 119.029, 125.074], [1, None, 117.087]], 1.25], '437.57'], ['normal control 3', [[[3, 31.608, 32.348], [2, 84.454, 83.132], [1, 88.713, 93.316], [2, None, 172.34]], 2], '348.56']]]
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 fixture | Actual | Expected | Outcome |
|---|---|---|---|
| regression settlement rounding mode 1 | 650.62 | 650.63 | Failed |
| regression settlement rounding mode 2 | 241.72 | 241.73 | Failed |
| partial repair probe 1 | 528.43 | 528.44 | Failed |
| partial repair probe 2 | 192.88 | 192.89 | Failed |
| boundary control 1 | 10.00 | 10.00 | Passed |
| normal control 1 | 554.14 | 554.14 | Passed |
| normal control 2 | 331.60 | 331.60 | Passed |
| normal control 3 | 1107.39 | 1107.39 | Passed |
SHA-256 / 1766239d77b3155926a560ca7b017097ab1846e1f3251aa194b99d0a913b7c1a
3 / The verified repair
Exit 0"""Failure Map reference implementation. Python standard library only."""
import json
from decimal import Decimal, ROUND_HALF_UP, ROUND_HALF_EVEN, ROUND_DOWN
N = 1
observations = []
def solve(components, divisor):
total = Decimal(0)
for w, op, close in components:
px = op if op is not None else close
total += Decimal(str(w)) * Decimal(str(px))
val = (total / Decimal(str(divisor))).quantize(Decimal('0.01'), rounding=ROUND_HALF_UP)
return str(val)
def check(label, actual, expected):
observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
fixtures = [[['regression settlement rounding mode 1', [[[1, 38.79, 40.378], [1.5, 186.655, 180.163], [0.5, 13.08, 12.643]], 0.5], '650.63'], ['regression settlement rounding mode 2', [[[1.5, 166.141, 161.691], [1.5, 118.467, 117.341], [3, 18.846, 19.774]], 2], '241.73'], ['partial repair probe 1', [[[0.5, None, 160.862], [1, 66.98, 65.82], [2, None, 182.096], [0.5, 33.672, 33.239]], 1], '528.44'], ['partial repair probe 2', [[[0.5, 193.605, 193.453], [1.5, 135.426, 135.553], [1, None, 85.835]], 2], '192.89'], ['boundary control 1', [[[1, None, 10.0], [2, 5.0, 4.0]], 2], '10.00'], ['normal control 1', [[[0.5, 20.415, 19.879], [1.5, 152.089, 157.637], [1.5, 106.795, 110.396], [1, None, 155.609]], 1], '554.14'], ['normal control 2', [[[0.5, 106.616, 109.753], [3, 182.574, 179.101], [1, 48.45, 47.519], [0.5, None, 27.452]], 2], '331.60'], ['normal control 3', [[[1, None, 169.547], [2, 176.066, 180.982], [1.5, 16.157, 16.833], [3, 46.697, 44.875], [3, None, 171.952], [1.5, 121.585, 121.726]], 1.25], '1107.39']], [['regression settlement rounding mode 1', [[[2, 191.853, 193.22], [3, None, 84.528]], 2], '318.65'], ['regression settlement rounding mode 2', [[[0.5, None, 47.039], [3, 172.439, 181.365], [2, None, 107.369], [2, 115.824, 116.814]], 0.5], '1974.45'], ['partial repair probe 1', [[[2, None, 168.281], [2, 30.899, 29.856], [3, 32.803, 32.739], [1, 122.102, 122.898], [0.5, 191.008, 198.424]], 1], '714.38'], ['partial repair probe 2', [[[3, 16.992, 17.666], [1.5, 29.107, 30.399]], 4], '23.66'], ['boundary control 1', [[[1, None, 10.0], [2, 5.0, 4.0]], 2], '10.00'], ['normal control 1', [[[1, None, 65.868], [1, None, 158.33], [3, 137.696, 133.715], [1, None, 183.261], [3, 184.203, 177.685], [1, 12.225, 12.555]], 0.5], '2770.76'], ['normal control 2', [[[1.5, None, 195.364], [3, 35.52, 35.531], [3, None, 182.591], [1, 118.595, 114.601], [1, None, 89.404], [2, None, 177.317]], 4], '377.50'], ['normal control 3', [[[2, None, 141.271], [2, None, 51.704], [1.5, 118.603, 114.944], [1.5, None, 18.672], [0.5, 182.134, 178.819], [2, 109.121, 110.117]], 0.5], '1802.34']], [['regression settlement rounding mode 1', [[[1, 10.005, 10.0]], 1], '10.01'], ['regression settlement rounding mode 2', [[[2, None, 134.348], [2, 179.109, 175.897], [1, None, 180.728], [2, None, 183.384], [1, None, 67.915]], 1], '1242.33'], ['partial repair probe 1', [[[1, 20.57, 20.464], [1.5, None, 195.278], [1, 137.933, 133.006], [2, 62.689, 64.407], [1.5, 203.625, 195.427]], 2], '441.12'], ['partial repair probe 2', [[[3, None, 41.799], [0.5, 179.575, 174.157], [0.5, None, 197.224], [1.5, 136.723, 131.192], [3, 128.882, 127.245], [1, 128.205, 129.543]], 1.25], '826.99'], ['boundary control 1', [[[1, None, 10.0], [2, 5.0, 4.0]], 2], '10.00'], ['normal control 1', [[[1.5, 34.383, 33.927], [3, 125.316, 122.465]], 1], '427.52'], ['normal control 2', [[[2, 49.349, 49.841], [0.5, 140.601, 143.116], [2, 184.11, 179.202], [3, 60.266, 57.754], [1, 114.722, 113.718], [0.5, None, 185.123]], 1.25], '740.24'], ['normal control 3', [[[3, 109.509, 112.946], [1.5, None, 101.147], [3, 46.464, 47.536], [3, 169.433, 173.369], [3, 203.86, 198.26], [1, 47.804, 46.611]], 2], '893.66']], [['regression settlement rounding mode 1', [[[1, None, 93.437], [3, 90.88, 87.107], [3, 90.113, 87.448], [0.5, None, 59.65], [1.5, 164.801, 171.303]], 0.5], '1826.89'], ['regression settlement rounding mode 2', [[[1.5, None, 76.278], [0.5, 161.218, 157.802], [0.5, 40.053, 38.771]], 0.5], '430.11'], ['partial repair probe 1', [[[0.5, 158.141, 153.244], [2, 104.453, 108.262], [0.5, None, 48.326], [0.5, 55.327, 55.896], [0.5, 44.353, 44.512]], 8], '45.25'], ['partial repair probe 2', [[[0.5, 86.657, 89.91], [1, 180.822, 176.79], [1, None, 42.087], [2, 103.599, 101.973], [1.5, 25.4, 24.938]], 2], '255.77'], ['boundary control 1', [[[1, None, 10.0], [2, 5.0, 4.0]], 2], '10.00'], ['normal control 1', [[[1, 118.952, 118.389], [3, None, 15.777], [0.5, None, 84.309], [3, None, 68.185]], 8], '51.62'], ['normal control 2', [[[1.5, 168.828, 177.339], [2, None, 137.131], [2, 152.461, 147.559], [0.5, 157.875, 154.317]], 2], '455.68'], ['normal control 3', [[[3, 143.994, 147.851], [1.5, 22.199, 22.763]], 4], '116.32']], [['regression settlement rounding mode 1', [[[1.5, 24.361, 24.485], [0.5, 102.252, 102.627], [2, 103.332, 101.585], [2, 201.605, 193.274], [1.5, 122.313, 121.155], [1.5, 71.356, 69.738]], 1], '988.05'], ['regression settlement rounding mode 2', [[[2, 13.558, 13.914], [1.5, 71.539, 69.751], [1.5, 198.187, 191.804]], 1], '431.71'], ['partial repair probe 1', [[[1.5, 155.546, 153.219], [0.5, 88.243, 91.627], [1.5, 111.796, 115.767], [2, None, 154.621]], 8], '94.30'], ['partial repair probe 2', [[[3, 68.608, 68.091], [3, 191.25, 184.851], [0.5, None, 125.688]], 1], '842.42'], ['boundary control 1', [[[1, None, 10.0], [2, 5.0, 4.0]], 2], '10.00'], ['normal control 1', [[[1.5, None, 35.672], [1, 40.044, 40.607]], 1], '93.55'], ['normal control 2', [[[1.5, 127.88, 124.218], [2, 119.029, 125.074], [1, None, 117.087]], 1.25], '437.57'], ['normal control 3', [[[3, 31.608, 32.348], [2, 84.454, 83.132], [1, 88.713, 93.316], [2, None, 172.34]], 2], '348.56']]]
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 fixture | Actual | Expected | Outcome |
|---|---|---|---|
| regression settlement rounding mode 1 | 650.63 | 650.63 | Passed |
| regression settlement rounding mode 2 | 241.73 | 241.73 | Passed |
| partial repair probe 1 | 528.44 | 528.44 | Passed |
| partial repair probe 2 | 192.89 | 192.89 | Passed |
| boundary control 1 | 10.00 | 10.00 | Passed |
| normal control 1 | 554.14 | 554.14 | Passed |
| normal control 2 | 331.60 | 331.60 | Passed |
| normal control 3 | 1107.39 | 1107.39 | Passed |
SHA-256 / 011d938e38465266bd89e34b834d719e435195139f7aee788e38b8fb4fa87b84
Verification & scope
A deterministic toy contract stated explicitly in the contract field; no claim of conformance to any exchange or clearing rulebook. 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:56.509365+00:00.
Case digest / fa5a6108d2619c5dfe9135e758aa2dbac18c479d7c6d3498a2f1ec331d255f27