FAILURE MAP
← Case archive

FA-13316 / Numerical aggregation / Open access

Frequency symmetric trim mean: A negative zero slice end removes all untrimmed observations. · case 01

The reduction disagrees with its explicit aggregation oracle.

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

ROOT CAUSE

A negative zero slice end removes all untrimmed observations.

VERIFIED REPAIR

Preserve the frequency symmetric trim mean contract at the identified reduction decision.

Unsuccessful approach: Forcing a nonzero end offset discards an observation for k=0.

Case contract

Expand nonnegative integer frequencies. Remove exactly k lowest and k highest observations by multiplicity. Return the exact mean as a Fraction string, or None when no observations survive.

Why this case matters

Exact bounded examples isolate a reduction defect without floating-point or external-service effects.

1 / The failure

Exit 1
"""Failure Map reference implementation. Python standard library only."""
import json
from fractions import Fraction
from collections import Counter, defaultdict
import math
import itertools
N = 1
observations = []
def solve(rows, k):
    xs=sorted(x for x,w in rows for _ in range(w))
    if not xs or 2*k>=len(xs): return None
    return str(Fraction(sum(xs[k:-k]),len(xs)-2*k))
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('regression 1', solve(*([(9, 1), (1, 4), (5, 2)], 2)), '7/3')
check('regression 2', solve(*([(2, 4)], 1)), '2')
check('regression 3', solve(*([], 0)), None)
check('regression 4', solve(*([(1, 2), (4, 2)], 2)), None)
check('regression 5', solve(*([(0, 1), (10, 3), (-5, 2)], 1)), '15/4')
check('regression 6', solve(*([(3, 0), (8, 1)], 0)), '8')
check('regression 7', solve(*([(1, 1), (8, 4), (9, 1)], 1)), '8')
check("variable weighted trim",solve([(N,3),(N+6,2)],1),str(Fraction(3*N+6,3)))
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
regression 17/37/3Passed
regression 222Passed
regression 3NoneNonePassed
regression 4NoneNonePassed
regression 515/415/4Passed
regression 608Failed
regression 788Passed
variable weighted trim33Passed

SHA-256 / 7d953eaf9b9a1436ad6197fa5f6ba4d77bad56e62056cafa9759e0afc61b5d12

2 / The unsuccessful fix

Exit 1
"""Failure Map reference implementation. Python standard library only."""
import json
from fractions import Fraction
from collections import Counter, defaultdict
import math
import itertools
N = 1
observations = []
def solve(rows, k):
    xs=sorted(x for x,w in rows for _ in range(w))
    if not xs or 2*k>=len(xs): return None
    return str(Fraction(sum(xs[k:-max(1,k)]),len(xs)-2*k))
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('regression 1', solve(*([(9, 1), (1, 4), (5, 2)], 2)), '7/3')
check('regression 2', solve(*([(2, 4)], 1)), '2')
check('regression 3', solve(*([], 0)), None)
check('regression 4', solve(*([(1, 2), (4, 2)], 2)), None)
check('regression 5', solve(*([(0, 1), (10, 3), (-5, 2)], 1)), '15/4')
check('regression 6', solve(*([(3, 0), (8, 1)], 0)), '8')
check('regression 7', solve(*([(1, 1), (8, 4), (9, 1)], 1)), '8')
check("variable weighted trim",solve([(N,3),(N+6,2)],1),str(Fraction(3*N+6,3)))
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
regression 17/37/3Passed
regression 222Passed
regression 3NoneNonePassed
regression 4NoneNonePassed
regression 515/415/4Passed
regression 608Failed
regression 788Passed
variable weighted trim33Passed

SHA-256 / a4b16c314bc62790d7634ddee6a604caa736ae1dd539b8bfa53b7e51113ca83a

3 / The verified repair

Exit 0
"""Failure Map reference implementation. Python standard library only."""
import json
from fractions import Fraction
from collections import Counter, defaultdict
import math
import itertools
N = 1
observations = []
def solve(rows, k):
    xs=sorted(x for x,w in rows for _ in range(w))
    if not xs or 2*k>=len(xs): return None
    return str(Fraction(sum(xs[k:len(xs)-k]),len(xs)-2*k))
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('regression 1', solve(*([(9, 1), (1, 4), (5, 2)], 2)), '7/3')
check('regression 2', solve(*([(2, 4)], 1)), '2')
check('regression 3', solve(*([], 0)), None)
check('regression 4', solve(*([(1, 2), (4, 2)], 2)), None)
check('regression 5', solve(*([(0, 1), (10, 3), (-5, 2)], 1)), '15/4')
check('regression 6', solve(*([(3, 0), (8, 1)], 0)), '8')
check('regression 7', solve(*([(1, 1), (8, 4), (9, 1)], 1)), '8')
check("variable weighted trim",solve([(N,3),(N+6,2)],1),str(Fraction(3*N+6,3)))
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
regression 17/37/3Passed
regression 222Passed
regression 3NoneNonePassed
regression 4NoneNonePassed
regression 515/415/4Passed
regression 688Passed
regression 788Passed
variable weighted trim33Passed

SHA-256 / 9ee402af70a2f625a20c7f5ad40164924bd05deaf5e177e5b46ad614402e637d

Verification & scope

Small offline integer/rational inputs only; no performance, statistical inference, or production-library conformance claim. 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:39:05.776771+00:00.

Case digest / 12092fa424847f96d1b1908e76e5afa1f7c6bcf940f18c5f66d17c5279f23a8c