broken_source:
"""Failure Map reference implementation. Python standard library only."""
import json
import math
import struct
def render(x):
    if math.isnan(x): return 'nan'
    if math.isinf(x): return '-infinity' if x<0 else '+infinity'
    return format(x,'.11g')

N = 1
observations = []
def solve(a,b):
    try:
        if a<=0 or b<=0: return 'domain'
        if a==b: return '0'
        r=(a-b)/b
        if abs(r)<0.5:
            result=math.log(a)-math.log(b)
        else:
            result=math.log(a)-math.log(b)
        return render(result)
    except (ValueError, OverflowError, ZeroDivisionError, TypeError):
        return "arithmetic-error"
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('overflowing quotient', solve(N*1e300,1e-300), render(math.log(N*1e300)-math.log(1e-300)))
check('underflowing quotient', solve(1e-300,N*1e300), render(math.log(1e-300)-math.log(N*1e300)))
check('nearby moderate', solve(1.125,1.0), render(math.log(1.125)))
check('nearby large', solve(math.nextafter(1e100,math.inf),1e100), render(math.log1p((math.nextafter(1e100,math.inf)-1e100)/1e100)))
check('normal', solve(float(N+1),1.0), render(math.log(N+1)))
check('reverse', solve(1.0,float(N+1)), render(-math.log(N+1)))
check('equal', solve(float(N),float(N)), "0")
check('invalid', solve(0.0,float(N)), "domain")
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)

source:
"""Failure Map reference implementation. Python standard library only."""
import json
import math
import struct
def render(x):
    if math.isnan(x): return 'nan'
    if math.isinf(x): return '-infinity' if x<0 else '+infinity'
    return format(x,'.11g')

N = 1
observations = []
def solve(a,b):
    try:
        if a<=0 or b<=0: return 'domain'
        if a==b: return '0'
        r=(a-b)/b
        if abs(r)<0.5:
            result=math.log(a/b)
        else:
            result=math.log(a)-math.log(b)
        return render(result)
    except (ValueError, OverflowError, ZeroDivisionError, TypeError):
        return "arithmetic-error"
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('overflowing quotient', solve(N*1e300,1e-300), render(math.log(N*1e300)-math.log(1e-300)))
check('underflowing quotient', solve(1e-300,N*1e300), render(math.log(1e-300)-math.log(N*1e300)))
check('nearby moderate', solve(1.125,1.0), render(math.log(1.125)))
check('nearby large', solve(math.nextafter(1e100,math.inf),1e100), render(math.log1p((math.nextafter(1e100,math.inf)-1e100)/1e100)))
check('normal', solve(float(N+1),1.0), render(math.log(N+1)))
check('reverse', solve(1.0,float(N+1)), render(-math.log(N+1)))
check('equal', solve(float(N),float(N)), "0")
check('invalid', solve(0.0,float(N)), "domain")
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)

prompt:
Log ratio subtracts close logarithms at large magnitude.

Evaluate log(a/b) for positive finite endpoints without overflowing an intermediate quotient and without cancellation for nearby operands. Finite results are rendered to eleven significant decimal digits; modeled domain violations and arithmetic errors are explicit strings.

split: open-access


broken_source:
"""Failure Map reference implementation. Python standard library only."""
import json
import math
import struct
def render(x):
    if math.isnan(x): return 'nan'
    if math.isinf(x): return '-infinity' if x<0 else '+infinity'
    return format(x,'.11g')

N = 1
observations = []
def solve(a,b):
    try:
        if a<=0 or b<=0: return 'domain'
        if a==b: return '0'
        r=(a-b)/a
        if abs(r)<0.5:
            result=math.log1p(r)
        else:
            result=math.log(a)-math.log(b)
        return render(result)
    except (ValueError, OverflowError, ZeroDivisionError, TypeError):
        return "arithmetic-error"
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('overflowing quotient', solve(N*1e300,1e-300), render(math.log(N*1e300)-math.log(1e-300)))
check('underflowing quotient', solve(1e-300,N*1e300), render(math.log(1e-300)-math.log(N*1e300)))
check('nearby moderate', solve(1.125,1.0), render(math.log(1.125)))
check('nearby large', solve(math.nextafter(1e100,math.inf),1e100), render(math.log1p((math.nextafter(1e100,math.inf)-1e100)/1e100)))
check('normal', solve(float(N+1),1.0), render(math.log(N+1)))
check('reverse', solve(1.0,float(N+1)), render(-math.log(N+1)))
check('equal', solve(float(N),float(N)), "0")
check('invalid', solve(0.0,float(N)), "domain")
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)

meaning: Fixture-count band, not measured model difficulty

deps: stdlib

source:
"""Failure Map reference implementation. Python standard library only."""
import json
import math
import struct
def render(x):
    if math.isnan(x): return 'nan'
    if math.isinf(x): return '-infinity' if x<0 else '+infinity'
    return format(x,'.11g')

N = 1
observations = []
def solve(a,b):
    try:
        if a<=0 or b<=0: return 'domain'
        if a==b: return '0'
        r=(a-b)/max(a,b)
        if abs(r)<0.5:
            result=math.log1p(r)
        else:
            result=math.log(a)-math.log(b)
        return render(result)
    except (ValueError, OverflowError, ZeroDivisionError, TypeError):
        return "arithmetic-error"
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('overflowing quotient', solve(N*1e300,1e-300), render(math.log(N*1e300)-math.log(1e-300)))
check('underflowing quotient', solve(1e-300,N*1e300), render(math.log(1e-300)-math.log(N*1e300)))
check('nearby moderate', solve(1.125,1.0), render(math.log(1.125)))
check('nearby large', solve(math.nextafter(1e100,math.inf),1e100), render(math.log1p((math.nextafter(1e100,math.inf)-1e100)/1e100)))
check('normal', solve(float(N+1),1.0), render(math.log(N+1)))
check('reverse', solve(1.0,float(N+1)), render(-math.log(N+1)))
check('equal', solve(float(N),float(N)), "0")
check('invalid', solve(0.0,float(N)), "domain")
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)

prompt:
Log ratio normalizes its difference by the numerator.

Evaluate log(a/b) for positive finite endpoints without overflowing an intermediate quotient and without cancellation for nearby operands. Finite results are rendered to eleven significant decimal digits; modeled domain violations and arithmetic errors are explicit strings.

split: open-access


broken_source:
"""Failure Map reference implementation. Python standard library only."""
import json
import math
import struct
def render(x):
    if math.isnan(x): return 'nan'
    if math.isinf(x): return '-infinity' if x<0 else '+infinity'
    return format(x,'.11g')

N = 1
observations = []
def solve(a,b):
    try:
        if a<=0 or b<=0: return 'domain'
        if a==b: return '0'
        r=(a-b)/b
        if abs(r)<0.5:
            result=math.log1p(r)
        else:
            result=math.log(b)-math.log(a)
        return render(result)
    except (ValueError, OverflowError, ZeroDivisionError, TypeError):
        return "arithmetic-error"
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('overflowing quotient', solve(N*1e300,1e-300), render(math.log(N*1e300)-math.log(1e-300)))
check('underflowing quotient', solve(1e-300,N*1e300), render(math.log(1e-300)-math.log(N*1e300)))
check('nearby moderate', solve(1.125,1.0), render(math.log(1.125)))
check('nearby large', solve(math.nextafter(1e100,math.inf),1e100), render(math.log1p((math.nextafter(1e100,math.inf)-1e100)/1e100)))
check('normal', solve(float(N+1),1.0), render(math.log(N+1)))
check('reverse', solve(1.0,float(N+1)), render(-math.log(N+1)))
check('equal', solve(float(N),float(N)), "0")
check('invalid', solve(0.0,float(N)), "domain")
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)

source:
"""Failure Map reference implementation. Python standard library only."""
import json
import math
import struct
def render(x):
    if math.isnan(x): return 'nan'
    if math.isinf(x): return '-infinity' if x<0 else '+infinity'
    return format(x,'.11g')

N = 1
observations = []
def solve(a,b):
    try:
        if a<=0 or b<=0: return 'domain'
        if a==b: return '0'
        r=(a-b)/b
        if abs(r)<0.5:
            result=math.log1p(r)
        else:
            result=abs(math.log(a)-math.log(b))
        return render(result)
    except (ValueError, OverflowError, ZeroDivisionError, TypeError):
        return "arithmetic-error"
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('overflowing quotient', solve(N*1e300,1e-300), render(math.log(N*1e300)-math.log(1e-300)))
check('underflowing quotient', solve(1e-300,N*1e300), render(math.log(1e-300)-math.log(N*1e300)))
check('nearby moderate', solve(1.125,1.0), render(math.log(1.125)))
check('nearby large', solve(math.nextafter(1e100,math.inf),1e100), render(math.log1p((math.nextafter(1e100,math.inf)-1e100)/1e100)))
check('normal', solve(float(N+1),1.0), render(math.log(N+1)))
check('reverse', solve(1.0,float(N+1)), render(-math.log(N+1)))
check('equal', solve(float(N),float(N)), "0")
check('invalid', solve(0.0,float(N)), "domain")
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)

prompt:
Log ratio reverses the distant logarithm difference.

Evaluate log(a/b) for positive finite endpoints without overflowing an intermediate quotient and without cancellation for nearby operands. Finite results are rendered to eleven significant decimal digits; modeled domain violations and arithmetic errors are explicit strings.

split: open-access


broken_source:
"""Failure Map reference implementation. Python standard library only."""
import json
import math
import struct
def render(x):
    if math.isnan(x): return 'nan'
    if math.isinf(x): return '-infinity' if x<0 else '+infinity'
    return format(x,'.11g')

N = 1
observations = []
def solve(a,b):
    try:
        if a<0 or b<0: return 'domain'
        if a==b: return '0'
        r=(a-b)/b
        if abs(r)<0.5:
            result=math.log1p(r)
        else:
            result=math.log(a)-math.log(b)
        return render(result)
    except (ValueError, OverflowError, ZeroDivisionError, TypeError):
        return "arithmetic-error"
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('overflowing quotient', solve(N*1e300,1e-300), render(math.log(N*1e300)-math.log(1e-300)))
check('underflowing quotient', solve(1e-300,N*1e300), render(math.log(1e-300)-math.log(N*1e300)))
check('nearby moderate', solve(1.125,1.0), render(math.log(1.125)))
check('nearby large', solve(math.nextafter(1e100,math.inf),1e100), render(math.log1p((math.nextafter(1e100,math.inf)-1e100)/1e100)))
check('normal', solve(float(N+1),1.0), render(math.log(N+1)))
check('reverse', solve(1.0,float(N+1)), render(-math.log(N+1)))
check('equal', solve(float(N),float(N)), "0")
check('invalid', solve(0.0,float(N)), "domain")
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)

source:
"""Failure Map reference implementation. Python standard library only."""
import json
import math
import struct
def render(x):
    if math.isnan(x): return 'nan'
    if math.isinf(x): return '-infinity' if x<0 else '+infinity'
    return format(x,'.11g')

N = 1
observations = []
def solve(a,b):
    try:
        if a<=0 or b<=0: return '-infinity'
        if a==b: return '0'
        r=(a-b)/b
        if abs(r)<0.5:
            result=math.log1p(r)
        else:
            result=math.log(a)-math.log(b)
        return render(result)
    except (ValueError, OverflowError, ZeroDivisionError, TypeError):
        return "arithmetic-error"
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('overflowing quotient', solve(N*1e300,1e-300), render(math.log(N*1e300)-math.log(1e-300)))
check('underflowing quotient', solve(1e-300,N*1e300), render(math.log(1e-300)-math.log(N*1e300)))
check('nearby moderate', solve(1.125,1.0), render(math.log(1.125)))
check('nearby large', solve(math.nextafter(1e100,math.inf),1e100), render(math.log1p((math.nextafter(1e100,math.inf)-1e100)/1e100)))
check('normal', solve(float(N+1),1.0), render(math.log(N+1)))
check('reverse', solve(1.0,float(N+1)), render(-math.log(N+1)))
check('equal', solve(float(N),float(N)), "0")
check('invalid', solve(0.0,float(N)), "domain")
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)

prompt:
Log ratio accepts zero endpoints as ordinary positives.

Evaluate log(a/b) for positive finite endpoints without overflowing an intermediate quotient and without cancellation for nearby operands. Finite results are rendered to eleven significant decimal digits; modeled domain violations and arithmetic errors are explicit strings.

split: open-access


broken_source:
"""Failure Map reference implementation. Python standard library only."""
import json
import math
import struct
N = 1
observations = []
def solve(a,b,rel_tol,abs_tol):
    if rel_tol<0 or abs_tol<0: return 'invalid'
    if a==b: return math.isfinite(a)
    if not math.isfinite(a) or not math.isfinite(b): return False
    difference=abs(a-b)
    relative=rel_tol*max(abs(a),abs(b))
    return difference<=max(abs_tol,relative)
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('equal infinity', solve(math.inf,math.inf,1e-9,0.0), True)
check('opposite infinity', solve(math.inf,-math.inf,1e-9,0.0), False)
check('nan', solve(math.nan,math.nan,1.0,1.0), False)
check('absolute zero', solve(0.0,N*1e-9,0.0,N*1e-9), True)
check('relative boundary', solve(float(N),float(N*2),0.5,0.0), True)
check('reverse relative', solve(float(N*2),float(N),0.5,0.0), True)
check('negative values', solve(-float(N),-float(N*2),0.5,0.0), True)
check('disjoint tolerances', solve(0.0,1.5,0.5,1.0), False)
check('ordinary apart', solve(float(N),float(N+1),1e-6,0.0), False)
check('bad relative', solve(1.0,1.0,-1.0,0.0), "invalid")
check('bad absolute', solve(1.0,1.0,0.0,-1.0), "invalid")
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)

source:
"""Failure Map reference implementation. Python standard library only."""
import json
import math
import struct
N = 1
observations = []
def solve(a,b,rel_tol,abs_tol):
    if rel_tol<0 or abs_tol<0: return 'invalid'
    if a==b: return not math.isinf(a)
    if not math.isfinite(a) or not math.isfinite(b): return False
    difference=abs(a-b)
    relative=rel_tol*max(abs(a),abs(b))
    return difference<=max(abs_tol,relative)
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('equal infinity', solve(math.inf,math.inf,1e-9,0.0), True)
check('opposite infinity', solve(math.inf,-math.inf,1e-9,0.0), False)
check('nan', solve(math.nan,math.nan,1.0,1.0), False)
check('absolute zero', solve(0.0,N*1e-9,0.0,N*1e-9), True)
check('relative boundary', solve(float(N),float(N*2),0.5,0.0), True)
check('reverse relative', solve(float(N*2),float(N),0.5,0.0), True)
check('negative values', solve(-float(N),-float(N*2),0.5,0.0), True)
check('disjoint tolerances', solve(0.0,1.5,0.5,1.0), False)
check('ordinary apart', solve(float(N),float(N+1),1e-6,0.0), False)
check('bad relative', solve(1.0,1.0,-1.0,0.0), "invalid")
check('bad absolute', solve(1.0,1.0,0.0,-1.0), "invalid")
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)

prompt:
Closeness rejects equal infinities before checking exact equality.

Symmetric binary64 closeness: equal values including like-signed infinities are close; remaining nonfinite pairs are not. For finite a,b require abs(a-b)<=max(abs_tol,rel_tol*max(abs(a),abs(b))). Negative tolerances return invalid.

split: open-access


broken_source:
"""Failure Map reference implementation. Python standard library only."""
import json
import math
import struct
N = 1
observations = []
def solve(a,b,rel_tol,abs_tol):
    if rel_tol<0 or abs_tol<0: return 'invalid'
    if a==b: return True
    if math.isnan(a) or math.isnan(b): return False
    difference=abs(a-b)
    relative=rel_tol*max(abs(a),abs(b))
    return difference<=max(abs_tol,relative)
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('equal infinity', solve(math.inf,math.inf,1e-9,0.0), True)
check('opposite infinity', solve(math.inf,-math.inf,1e-9,0.0), False)
check('nan', solve(math.nan,math.nan,1.0,1.0), False)
check('absolute zero', solve(0.0,N*1e-9,0.0,N*1e-9), True)
check('relative boundary', solve(float(N),float(N*2),0.5,0.0), True)
check('reverse relative', solve(float(N*2),float(N),0.5,0.0), True)
check('negative values', solve(-float(N),-float(N*2),0.5,0.0), True)
check('disjoint tolerances', solve(0.0,1.5,0.5,1.0), False)
check('ordinary apart', solve(float(N),float(N+1),1e-6,0.0), False)
check('bad relative', solve(1.0,1.0,-1.0,0.0), "invalid")
check('bad absolute', solve(1.0,1.0,0.0,-1.0), "invalid")
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)

source:
"""Failure Map reference implementation. Python standard library only."""
import json
import math
import struct
N = 1
observations = []
def solve(a,b,rel_tol,abs_tol):
    if rel_tol<0 or abs_tol<0: return 'invalid'
    if a==b: return True
    if math.isnan(a) and math.isnan(b): return False
    difference=abs(a-b)
    relative=rel_tol*max(abs(a),abs(b))
    return difference<=max(abs_tol,relative)
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('equal infinity', solve(math.inf,math.inf,1e-9,0.0), True)
check('opposite infinity', solve(math.inf,-math.inf,1e-9,0.0), False)
check('nan', solve(math.nan,math.nan,1.0,1.0), False)
check('absolute zero', solve(0.0,N*1e-9,0.0,N*1e-9), True)
check('relative boundary', solve(float(N),float(N*2),0.5,0.0), True)
check('reverse relative', solve(float(N*2),float(N),0.5,0.0), True)
check('negative values', solve(-float(N),-float(N*2),0.5,0.0), True)
check('disjoint tolerances', solve(0.0,1.5,0.5,1.0), False)
check('ordinary apart', solve(float(N),float(N+1),1e-6,0.0), False)
check('bad relative', solve(1.0,1.0,-1.0,0.0), "invalid")
check('bad absolute', solve(1.0,1.0,0.0,-1.0), "invalid")
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)

prompt:
Closeness accepts an infinite distance against infinite tolerance.

Symmetric binary64 closeness: equal values including like-signed infinities are close; remaining nonfinite pairs are not. For finite a,b require abs(a-b)<=max(abs_tol,rel_tol*max(abs(a),abs(b))). Negative tolerances return invalid.

split: open-access


broken_source:
"""Failure Map reference implementation. Python standard library only."""
import json
import math
import struct
N = 1
observations = []
def solve(a,b,rel_tol,abs_tol):
    if rel_tol<0 or abs_tol<0: return 'invalid'
    if a==b: return True
    if not math.isfinite(a) or not math.isfinite(b): return False
    difference=abs(a-b)
    relative=rel_tol*abs(a)
    return difference<=max(abs_tol,relative)
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('equal infinity', solve(math.inf,math.inf,1e-9,0.0), True)
check('opposite infinity', solve(math.inf,-math.inf,1e-9,0.0), False)
check('nan', solve(math.nan,math.nan,1.0,1.0), False)
check('absolute zero', solve(0.0,N*1e-9,0.0,N*1e-9), True)
check('relative boundary', solve(float(N),float(N*2),0.5,0.0), True)
check('reverse relative', solve(float(N*2),float(N),0.5,0.0), True)
check('negative values', solve(-float(N),-float(N*2),0.5,0.0), True)
check('disjoint tolerances', solve(0.0,1.5,0.5,1.0), False)
check('ordinary apart', solve(float(N),float(N+1),1e-6,0.0), False)
check('bad relative', solve(1.0,1.0,-1.0,0.0), "invalid")
check('bad absolute', solve(1.0,1.0,0.0,-1.0), "invalid")
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)

source:
"""Failure Map reference implementation. Python standard library only."""
import json
import math
import struct
N = 1
observations = []
def solve(a,b,rel_tol,abs_tol):
    if rel_tol<0 or abs_tol<0: return 'invalid'
    if a==b: return True
    if not math.isfinite(a) or not math.isfinite(b): return False
    difference=abs(a-b)
    relative=rel_tol*abs(b)
    return difference<=max(abs_tol,relative)
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('equal infinity', solve(math.inf,math.inf,1e-9,0.0), True)
check('opposite infinity', solve(math.inf,-math.inf,1e-9,0.0), False)
check('nan', solve(math.nan,math.nan,1.0,1.0), False)
check('absolute zero', solve(0.0,N*1e-9,0.0,N*1e-9), True)
check('relative boundary', solve(float(N),float(N*2),0.5,0.0), True)
check('reverse relative', solve(float(N*2),float(N),0.5,0.0), True)
check('negative values', solve(-float(N),-float(N*2),0.5,0.0), True)
check('disjoint tolerances', solve(0.0,1.5,0.5,1.0), False)
check('ordinary apart', solve(float(N),float(N+1),1e-6,0.0), False)
check('bad relative', solve(1.0,1.0,-1.0,0.0), "invalid")
check('bad absolute', solve(1.0,1.0,0.0,-1.0), "invalid")
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)

prompt:
Relative closeness scales by only the first operand.

Symmetric binary64 closeness: equal values including like-signed infinities are close; remaining nonfinite pairs are not. For finite a,b require abs(a-b)<=max(abs_tol,rel_tol*max(abs(a),abs(b))). Negative tolerances return invalid.

split: open-access


broken_source:
"""Failure Map reference implementation. Python standard library only."""
import json
import math
import struct
N = 1
observations = []
def solve(a,b,rel_tol,abs_tol):
    if rel_tol<0 or abs_tol<0: return 'invalid'
    if a==b: return True
    if not math.isfinite(a) or not math.isfinite(b): return False
    difference=abs(a-b)
    relative=rel_tol*max(a,b)
    return difference<=max(abs_tol,relative)
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('equal infinity', solve(math.inf,math.inf,1e-9,0.0), True)
check('opposite infinity', solve(math.inf,-math.inf,1e-9,0.0), False)
check('nan', solve(math.nan,math.nan,1.0,1.0), False)
check('absolute zero', solve(0.0,N*1e-9,0.0,N*1e-9), True)
check('relative boundary', solve(float(N),float(N*2),0.5,0.0), True)
check('reverse relative', solve(float(N*2),float(N),0.5,0.0), True)
check('negative values', solve(-float(N),-float(N*2),0.5,0.0), True)
check('disjoint tolerances', solve(0.0,1.5,0.5,1.0), False)
check('ordinary apart', solve(float(N),float(N+1),1e-6,0.0), False)
check('bad relative', solve(1.0,1.0,-1.0,0.0), "invalid")
check('bad absolute', solve(1.0,1.0,0.0,-1.0), "invalid")
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)

source:
"""Failure Map reference implementation. Python standard library only."""
import json
import math
import struct
N = 1
observations = []
def solve(a,b,rel_tol,abs_tol):
    if rel_tol<0 or abs_tol<0: return 'invalid'
    if a==b: return True
    if not math.isfinite(a) or not math.isfinite(b): return False
    difference=abs(a-b)
    relative=rel_tol*min(abs(a),abs(b))
    return difference<=max(abs_tol,relative)
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('equal infinity', solve(math.inf,math.inf,1e-9,0.0), True)
check('opposite infinity', solve(math.inf,-math.inf,1e-9,0.0), False)
check('nan', solve(math.nan,math.nan,1.0,1.0), False)
check('absolute zero', solve(0.0,N*1e-9,0.0,N*1e-9), True)
check('relative boundary', solve(float(N),float(N*2),0.5,0.0), True)
check('reverse relative', solve(float(N*2),float(N),0.5,0.0), True)
check('negative values', solve(-float(N),-float(N*2),0.5,0.0), True)
check('disjoint tolerances', solve(0.0,1.5,0.5,1.0), False)
check('ordinary apart', solve(float(N),float(N+1),1e-6,0.0), False)
check('bad relative', solve(1.0,1.0,-1.0,0.0), "invalid")
check('bad absolute', solve(1.0,1.0,0.0,-1.0), "invalid")
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)

prompt:
Relative closeness uses signed magnitudes.

Symmetric binary64 closeness: equal values including like-signed infinities are close; remaining nonfinite pairs are not. For finite a,b require abs(a-b)<=max(abs_tol,rel_tol*max(abs(a),abs(b))). Negative tolerances return invalid.

split: open-access


broken_source:
"""Failure Map reference implementation. Python standard library only."""
import json
import math
import struct
N = 1
observations = []
def solve(a,b,rel_tol,abs_tol):
    if rel_tol<0 or abs_tol<0: return 'invalid'
    if a==b: return True
    if not math.isfinite(a) or not math.isfinite(b): return False
    difference=abs(a-b)
    relative=rel_tol*max(abs(a),abs(b))
    return difference<=abs_tol+relative
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('equal infinity', solve(math.inf,math.inf,1e-9,0.0), True)
check('opposite infinity', solve(math.inf,-math.inf,1e-9,0.0), False)
check('nan', solve(math.nan,math.nan,1.0,1.0), False)
check('absolute zero', solve(0.0,N*1e-9,0.0,N*1e-9), True)
check('relative boundary', solve(float(N),float(N*2),0.5,0.0), True)
check('reverse relative', solve(float(N*2),float(N),0.5,0.0), True)
check('negative values', solve(-float(N),-float(N*2),0.5,0.0), True)
check('disjoint tolerances', solve(0.0,1.5,0.5,1.0), False)
check('ordinary apart', solve(float(N),float(N+1),1e-6,0.0), False)
check('bad relative', solve(1.0,1.0,-1.0,0.0), "invalid")
check('bad absolute', solve(1.0,1.0,0.0,-1.0), "invalid")
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)

source:
"""Failure Map reference implementation. Python standard library only."""
import json
import math
import struct
N = 1
observations = []
def solve(a,b,rel_tol,abs_tol):
    if rel_tol<0 or abs_tol<0: return 'invalid'
    if a==b: return True
    if not math.isfinite(a) or not math.isfinite(b): return False
    difference=abs(a-b)
    relative=rel_tol*max(abs(a),abs(b))
    return difference<=2*max(abs_tol,relative)
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('equal infinity', solve(math.inf,math.inf,1e-9,0.0), True)
check('opposite infinity', solve(math.inf,-math.inf,1e-9,0.0), False)
check('nan', solve(math.nan,math.nan,1.0,1.0), False)
check('absolute zero', solve(0.0,N*1e-9,0.0,N*1e-9), True)
check('relative boundary', solve(float(N),float(N*2),0.5,0.0), True)
check('reverse relative', solve(float(N*2),float(N),0.5,0.0), True)
check('negative values', solve(-float(N),-float(N*2),0.5,0.0), True)
check('disjoint tolerances', solve(0.0,1.5,0.5,1.0), False)
check('ordinary apart', solve(float(N),float(N+1),1e-6,0.0), False)
check('bad relative', solve(1.0,1.0,-1.0,0.0), "invalid")
check('bad absolute', solve(1.0,1.0,0.0,-1.0), "invalid")
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)

prompt:
Closeness sums tolerances instead of choosing the larger.

Symmetric binary64 closeness: equal values including like-signed infinities are close; remaining nonfinite pairs are not. For finite a,b require abs(a-b)<=max(abs_tol,rel_tol*max(abs(a),abs(b))). Negative tolerances return invalid.

split: open-access


broken_source:
"""Failure Map reference implementation. Python standard library only."""
import json
import math
import struct
N = 1
observations = []
def solve(a,b,rel_tol,abs_tol):
    if rel_tol<0 or abs_tol<0: return 'invalid'
    if a==b: return True
    if not math.isfinite(a) or not math.isfinite(b): return False
    difference=abs(a-b)
    relative=rel_tol*max(abs(a),abs(b))
    return difference<max(abs_tol,relative)
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('equal infinity', solve(math.inf,math.inf,1e-9,0.0), True)
check('opposite infinity', solve(math.inf,-math.inf,1e-9,0.0), False)
check('nan', solve(math.nan,math.nan,1.0,1.0), False)
check('absolute zero', solve(0.0,N*1e-9,0.0,N*1e-9), True)
check('relative boundary', solve(float(N),float(N*2),0.5,0.0), True)
check('reverse relative', solve(float(N*2),float(N),0.5,0.0), True)
check('negative values', solve(-float(N),-float(N*2),0.5,0.0), True)
check('disjoint tolerances', solve(0.0,1.5,0.5,1.0), False)
check('ordinary apart', solve(float(N),float(N+1),1e-6,0.0), False)
check('bad relative', solve(1.0,1.0,-1.0,0.0), "invalid")
check('bad absolute', solve(1.0,1.0,0.0,-1.0), "invalid")
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)

source:
"""Failure Map reference implementation. Python standard library only."""
import json
import math
import struct
N = 1
observations = []
def solve(a,b,rel_tol,abs_tol):
    if rel_tol<0 or abs_tol<0: return 'invalid'
    if a==b: return True
    if not math.isfinite(a) or not math.isfinite(b): return False
    difference=abs(a-b)
    relative=rel_tol*max(abs(a),abs(b))
    return difference<=min(abs_tol,relative)
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('equal infinity', solve(math.inf,math.inf,1e-9,0.0), True)
check('opposite infinity', solve(math.inf,-math.inf,1e-9,0.0), False)
check('nan', solve(math.nan,math.nan,1.0,1.0), False)
check('absolute zero', solve(0.0,N*1e-9,0.0,N*1e-9), True)
check('relative boundary', solve(float(N),float(N*2),0.5,0.0), True)
check('reverse relative', solve(float(N*2),float(N),0.5,0.0), True)
check('negative values', solve(-float(N),-float(N*2),0.5,0.0), True)
check('disjoint tolerances', solve(0.0,1.5,0.5,1.0), False)
check('ordinary apart', solve(float(N),float(N+1),1e-6,0.0), False)
check('bad relative', solve(1.0,1.0,-1.0,0.0), "invalid")
check('bad absolute', solve(1.0,1.0,0.0,-1.0), "invalid")
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)

prompt:
Closeness excludes values exactly at tolerance.

Symmetric binary64 closeness: equal values including like-signed infinities are close; remaining nonfinite pairs are not. For finite a,b require abs(a-b)<=max(abs_tol,rel_tol*max(abs(a),abs(b))). Negative tolerances return invalid.

split: open-access


broken_source:
"""Failure Map reference implementation. Python standard library only."""
import json
import math
import struct
N = 1
observations = []
def solve(a,b,rel_tol,abs_tol):
    rel_tol=abs(rel_tol); abs_tol=abs(abs_tol)
    if a==b: return True
    if not math.isfinite(a) or not math.isfinite(b): return False
    difference=abs(a-b)
    relative=rel_tol*max(abs(a),abs(b))
    return difference<=max(abs_tol,relative)
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('equal infinity', solve(math.inf,math.inf,1e-9,0.0), True)
check('opposite infinity', solve(math.inf,-math.inf,1e-9,0.0), False)
check('nan', solve(math.nan,math.nan,1.0,1.0), False)
check('absolute zero', solve(0.0,N*1e-9,0.0,N*1e-9), True)
check('relative boundary', solve(float(N),float(N*2),0.5,0.0), True)
check('reverse relative', solve(float(N*2),float(N),0.5,0.0), True)
check('negative values', solve(-float(N),-float(N*2),0.5,0.0), True)
check('disjoint tolerances', solve(0.0,1.5,0.5,1.0), False)
check('ordinary apart', solve(float(N),float(N+1),1e-6,0.0), False)
check('bad relative', solve(1.0,1.0,-1.0,0.0), "invalid")
check('bad absolute', solve(1.0,1.0,0.0,-1.0), "invalid")
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)

source:
"""Failure Map reference implementation. Python standard library only."""
import json
import math
import struct
N = 1
observations = []
def solve(a,b,rel_tol,abs_tol):
    if rel_tol<0 and abs_tol<0: return 'invalid'
    if a==b: return True
    if not math.isfinite(a) or not math.isfinite(b): return False
    difference=abs(a-b)
    relative=rel_tol*max(abs(a),abs(b))
    return difference<=max(abs_tol,relative)
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('equal infinity', solve(math.inf,math.inf,1e-9,0.0), True)
check('opposite infinity', solve(math.inf,-math.inf,1e-9,0.0), False)
check('nan', solve(math.nan,math.nan,1.0,1.0), False)
check('absolute zero', solve(0.0,N*1e-9,0.0,N*1e-9), True)
check('relative boundary', solve(float(N),float(N*2),0.5,0.0), True)
check('reverse relative', solve(float(N*2),float(N),0.5,0.0), True)
check('negative values', solve(-float(N),-float(N*2),0.5,0.0), True)
check('disjoint tolerances', solve(0.0,1.5,0.5,1.0), False)
check('ordinary apart', solve(float(N),float(N+1),1e-6,0.0), False)
check('bad relative', solve(1.0,1.0,-1.0,0.0), "invalid")
check('bad absolute', solve(1.0,1.0,0.0,-1.0), "invalid")
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)

prompt:
Closeness silently takes absolute values of negative tolerances.

Symmetric binary64 closeness: equal values including like-signed infinities are close; remaining nonfinite pairs are not. For finite a,b require abs(a-b)<=max(abs_tol,rel_tol*max(abs(a),abs(b))). Negative tolerances return invalid.

split: open-access


broken_source:
"""Failure Map reference implementation. Python standard library only."""
import json
import math
import struct
N = 1
observations = []
def solve(a,b):
    if a>b: return 'invalid'
    if a==b: return a.hex()
    if a<0<b:
        midpoint=a+(b-a)/2
    else:
        midpoint=a+(b-a)/2
    return midpoint.hex()
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('opposite huge', solve(-1e308,1e308), 0.0.hex())
check('positive huge', solve(1e308,1.5e308), (1.25e308).hex())
check('negative huge', solve(-1.5e308,-1e308), (-1.25e308).hex())
check('subnormal midpoint', solve(math.ldexp(1.0,-1074),math.ldexp(5.0,-1074)), math.ldexp(3.0,-1074).hex())
check('subnormal same', solve(math.ldexp(1.0,-1074),math.ldexp(3.0,-1074)), math.ldexp(2.0,-1074).hex())
check('negative subnormal', solve(-math.ldexp(3.0,-1074),-math.ldexp(1.0,-1074)), (-math.ldexp(2.0,-1074)).hex())
check('negative zero equal', solve(-0.0,-0.0), (-0.0).hex())
check('ordinary', solve(float(N),float(N+8)), float(N+4).hex())
check('reverse', solve(float(N+1),float(N)), "invalid")
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)

source:
"""Failure Map reference implementation. Python standard library only."""
import json
import math
import struct
N = 1
observations = []
def solve(a,b):
    if a>b: return 'invalid'
    if a==b: return a.hex()
    if a<0<b:
        midpoint=a+min(b-a,1e308)/2
    else:
        midpoint=a+(b-a)/2
    return midpoint.hex()
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('opposite huge', solve(-1e308,1e308), 0.0.hex())
check('positive huge', solve(1e308,1.5e308), (1.25e308).hex())
check('negative huge', solve(-1.5e308,-1e308), (-1.25e308).hex())
check('subnormal midpoint', solve(math.ldexp(1.0,-1074),math.ldexp(5.0,-1074)), math.ldexp(3.0,-1074).hex())
check('subnormal same', solve(math.ldexp(1.0,-1074),math.ldexp(3.0,-1074)), math.ldexp(2.0,-1074).hex())
check('negative subnormal', solve(-math.ldexp(3.0,-1074),-math.ldexp(1.0,-1074)), (-math.ldexp(2.0,-1074)).hex())
check('negative zero equal', solve(-0.0,-0.0), (-0.0).hex())
check('ordinary', solve(float(N),float(N+8)), float(N+4).hex())
check('reverse', solve(float(N+1),float(N)), "invalid")
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)

prompt:
Opposite-sign midpoint overflows its endpoint difference.

Finite ordered binary64 midpoint rendered as hex. Opposite-sign endpoints use half-sums to avoid difference overflow; same-sign endpoints use a difference to preserve subnormal increments. Exact equal endpoints preserve their bits.

split: open-access


broken_source:
"""Failure Map reference implementation. Python standard library only."""
import json
import math
import struct
N = 1
observations = []
def solve(a,b):
    if a>b: return 'invalid'
    if a==b: return a.hex()
    if a<0<b:
        midpoint=a/2+b/2
    else:
        midpoint=(a+b)/2
    return midpoint.hex()
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('opposite huge', solve(-1e308,1e308), 0.0.hex())
check('positive huge', solve(1e308,1.5e308), (1.25e308).hex())
check('negative huge', solve(-1.5e308,-1e308), (-1.25e308).hex())
check('subnormal midpoint', solve(math.ldexp(1.0,-1074),math.ldexp(5.0,-1074)), math.ldexp(3.0,-1074).hex())
check('subnormal same', solve(math.ldexp(1.0,-1074),math.ldexp(3.0,-1074)), math.ldexp(2.0,-1074).hex())
check('negative subnormal', solve(-math.ldexp(3.0,-1074),-math.ldexp(1.0,-1074)), (-math.ldexp(2.0,-1074)).hex())
check('negative zero equal', solve(-0.0,-0.0), (-0.0).hex())
check('ordinary', solve(float(N),float(N+8)), float(N+4).hex())
check('reverse', solve(float(N+1),float(N)), "invalid")
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)

source:
"""Failure Map reference implementation. Python standard library only."""
import json
import math
import struct
N = 1
observations = []
def solve(a,b):
    if a>b: return 'invalid'
    if a==b: return a.hex()
    if a<0<b:
        midpoint=a/2+b/2
    else:
        midpoint=min(a+b,1e308)/2
    return midpoint.hex()
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('opposite huge', solve(-1e308,1e308), 0.0.hex())
check('positive huge', solve(1e308,1.5e308), (1.25e308).hex())
check('negative huge', solve(-1.5e308,-1e308), (-1.25e308).hex())
check('subnormal midpoint', solve(math.ldexp(1.0,-1074),math.ldexp(5.0,-1074)), math.ldexp(3.0,-1074).hex())
check('subnormal same', solve(math.ldexp(1.0,-1074),math.ldexp(3.0,-1074)), math.ldexp(2.0,-1074).hex())
check('negative subnormal', solve(-math.ldexp(3.0,-1074),-math.ldexp(1.0,-1074)), (-math.ldexp(2.0,-1074)).hex())
check('negative zero equal', solve(-0.0,-0.0), (-0.0).hex())
check('ordinary', solve(float(N),float(N+8)), float(N+4).hex())
check('reverse', solve(float(N+1),float(N)), "invalid")
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)

prompt:
Same-sign midpoint overflows its endpoint sum.

Finite ordered binary64 midpoint rendered as hex. Opposite-sign endpoints use half-sums to avoid difference overflow; same-sign endpoints use a difference to preserve subnormal increments. Exact equal endpoints preserve their bits.

split: open-access


broken_source:
"""Failure Map reference implementation. Python standard library only."""
import json
import math
import struct
N = 1
observations = []
def solve(a,b):
    if a>b: return 'invalid'
    if a==b: return a.hex()
    if a<0<b:
        midpoint=a/2+b/2
    else:
        midpoint=a/2+b/2
    return midpoint.hex()
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('opposite huge', solve(-1e308,1e308), 0.0.hex())
check('positive huge', solve(1e308,1.5e308), (1.25e308).hex())
check('negative huge', solve(-1.5e308,-1e308), (-1.25e308).hex())
check('subnormal midpoint', solve(math.ldexp(1.0,-1074),math.ldexp(5.0,-1074)), math.ldexp(3.0,-1074).hex())
check('subnormal same', solve(math.ldexp(1.0,-1074),math.ldexp(3.0,-1074)), math.ldexp(2.0,-1074).hex())
check('negative subnormal', solve(-math.ldexp(3.0,-1074),-math.ldexp(1.0,-1074)), (-math.ldexp(2.0,-1074)).hex())
check('negative zero equal', solve(-0.0,-0.0), (-0.0).hex())
check('ordinary', solve(float(N),float(N+8)), float(N+4).hex())
check('reverse', solve(float(N+1),float(N)), "invalid")
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)

source:
"""Failure Map reference implementation. Python standard library only."""
import json
import math
import struct
N = 1
observations = []
def solve(a,b):
    if a>b: return 'invalid'
    if a==b: return a.hex()
    if a<0<b:
        midpoint=a/2+b/2
    else:
        midpoint=math.ldexp(a,-1)+math.ldexp(b,-1)
    return midpoint.hex()
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('opposite huge', solve(-1e308,1e308), 0.0.hex())
check('positive huge', solve(1e308,1.5e308), (1.25e308).hex())
check('negative huge', solve(-1.5e308,-1e308), (-1.25e308).hex())
check('subnormal midpoint', solve(math.ldexp(1.0,-1074),math.ldexp(5.0,-1074)), math.ldexp(3.0,-1074).hex())
check('subnormal same', solve(math.ldexp(1.0,-1074),math.ldexp(3.0,-1074)), math.ldexp(2.0,-1074).hex())
check('negative subnormal', solve(-math.ldexp(3.0,-1074),-math.ldexp(1.0,-1074)), (-math.ldexp(2.0,-1074)).hex())
check('negative zero equal', solve(-0.0,-0.0), (-0.0).hex())
check('ordinary', solve(float(N),float(N+8)), float(N+4).hex())
check('reverse', solve(float(N+1),float(N)), "invalid")
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)

prompt:
Same-sign midpoint separately halves subnormal endpoints.

Finite ordered binary64 midpoint rendered as hex. Opposite-sign endpoints use half-sums to avoid difference overflow; same-sign endpoints use a difference to preserve subnormal increments. Exact equal endpoints preserve their bits.

split: open-access


broken_source:
"""Failure Map reference implementation. Python standard library only."""
import json
import math
import struct
N = 1
observations = []
def solve(a,b):
    if a>b: return 'invalid'
    if a==b: return (a+0.0).hex()
    if a<0<b:
        midpoint=a/2+b/2
    else:
        midpoint=a+(b-a)/2
    return midpoint.hex()
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('opposite huge', solve(-1e308,1e308), 0.0.hex())
check('positive huge', solve(1e308,1.5e308), (1.25e308).hex())
check('negative huge', solve(-1.5e308,-1e308), (-1.25e308).hex())
check('subnormal midpoint', solve(math.ldexp(1.0,-1074),math.ldexp(5.0,-1074)), math.ldexp(3.0,-1074).hex())
check('subnormal same', solve(math.ldexp(1.0,-1074),math.ldexp(3.0,-1074)), math.ldexp(2.0,-1074).hex())
check('negative subnormal', solve(-math.ldexp(3.0,-1074),-math.ldexp(1.0,-1074)), (-math.ldexp(2.0,-1074)).hex())
check('negative zero equal', solve(-0.0,-0.0), (-0.0).hex())
check('ordinary', solve(float(N),float(N+8)), float(N+4).hex())
check('reverse', solve(float(N+1),float(N)), "invalid")
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)

source:
"""Failure Map reference implementation. Python standard library only."""
import json
import math
import struct
N = 1
observations = []
def solve(a,b):
    if a>b: return 'invalid'
    if a==b: return abs(a).hex()
    if a<0<b:
        midpoint=a/2+b/2
    else:
        midpoint=a+(b-a)/2
    return midpoint.hex()
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('opposite huge', solve(-1e308,1e308), 0.0.hex())
check('positive huge', solve(1e308,1.5e308), (1.25e308).hex())
check('negative huge', solve(-1.5e308,-1e308), (-1.25e308).hex())
check('subnormal midpoint', solve(math.ldexp(1.0,-1074),math.ldexp(5.0,-1074)), math.ldexp(3.0,-1074).hex())
check('subnormal same', solve(math.ldexp(1.0,-1074),math.ldexp(3.0,-1074)), math.ldexp(2.0,-1074).hex())
check('negative subnormal', solve(-math.ldexp(3.0,-1074),-math.ldexp(1.0,-1074)), (-math.ldexp(2.0,-1074)).hex())
check('negative zero equal', solve(-0.0,-0.0), (-0.0).hex())
check('ordinary', solve(float(N),float(N+8)), float(N+4).hex())
check('reverse', solve(float(N+1),float(N)), "invalid")
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)

prompt:
Midpoint computes an exact negative-zero endpoint through addition.

Finite ordered binary64 midpoint rendered as hex. Opposite-sign endpoints use half-sums to avoid difference overflow; same-sign endpoints use a difference to preserve subnormal increments. Exact equal endpoints preserve their bits.

split: open-access


broken_source:
"""Failure Map reference implementation. Python standard library only."""
import json
import math
import struct
N = 1
observations = []
def solve(a,b):
    if a>b: a,b=b,a
    if a==b: return a.hex()
    if a<0<b:
        midpoint=a/2+b/2
    else:
        midpoint=a+(b-a)/2
    return midpoint.hex()
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('opposite huge', solve(-1e308,1e308), 0.0.hex())
check('positive huge', solve(1e308,1.5e308), (1.25e308).hex())
check('negative huge', solve(-1.5e308,-1e308), (-1.25e308).hex())
check('subnormal midpoint', solve(math.ldexp(1.0,-1074),math.ldexp(5.0,-1074)), math.ldexp(3.0,-1074).hex())
check('subnormal same', solve(math.ldexp(1.0,-1074),math.ldexp(3.0,-1074)), math.ldexp(2.0,-1074).hex())
check('negative subnormal', solve(-math.ldexp(3.0,-1074),-math.ldexp(1.0,-1074)), (-math.ldexp(2.0,-1074)).hex())
check('negative zero equal', solve(-0.0,-0.0), (-0.0).hex())
check('ordinary', solve(float(N),float(N+8)), float(N+4).hex())
check('reverse', solve(float(N+1),float(N)), "invalid")
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)

source:
"""Failure Map reference implementation. Python standard library only."""
import json
import math
import struct
N = 1
observations = []
def solve(a,b):
    if a>b: return b.hex()
    if a==b: return a.hex()
    if a<0<b:
        midpoint=a/2+b/2
    else:
        midpoint=a+(b-a)/2
    return midpoint.hex()
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('opposite huge', solve(-1e308,1e308), 0.0.hex())
check('positive huge', solve(1e308,1.5e308), (1.25e308).hex())
check('negative huge', solve(-1.5e308,-1e308), (-1.25e308).hex())
check('subnormal midpoint', solve(math.ldexp(1.0,-1074),math.ldexp(5.0,-1074)), math.ldexp(3.0,-1074).hex())
check('subnormal same', solve(math.ldexp(1.0,-1074),math.ldexp(3.0,-1074)), math.ldexp(2.0,-1074).hex())
check('negative subnormal', solve(-math.ldexp(3.0,-1074),-math.ldexp(1.0,-1074)), (-math.ldexp(2.0,-1074)).hex())
check('negative zero equal', solve(-0.0,-0.0), (-0.0).hex())
check('ordinary', solve(float(N),float(N+8)), float(N+4).hex())
check('reverse', solve(float(N+1),float(N)), "invalid")
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)

prompt:
Midpoint silently sorts reversed endpoints.

Finite ordered binary64 midpoint rendered as hex. Opposite-sign endpoints use half-sums to avoid difference overflow; same-sign endpoints use a difference to preserve subnormal increments. Exact equal endpoints preserve their bits.

split: open-access


broken_source:
"""Failure Map reference implementation. Python standard library only."""
import json
import math
import decimal
from decimal import Decimal, Context, ROUND_HALF_EVEN, ROUND_HALF_UP, ROUND_DOWN

N = 1
observations = []
def solve(text,precision,engineering):
    ctx=Context(prec=precision,rounding=ROUND_HALF_EVEN)
    value=Decimal(text)
    sign,digits,exponent=value.as_tuple()
    prefix='-' if sign else ''
    if value.is_zero(): return prefix+'0e0'
    coefficient=''.join(str(d) for d in digits)
    adjusted=len(coefficient)+exponent-1
    scale=(adjusted//3)*3 if engineering else adjusted
    leading=adjusted-scale+1
    coefficient=coefficient.ljust(leading,'0')
    mantissa=coefficient[:leading]
    if len(coefficient)>leading: mantissa+='.'+coefficient[leading:]
    return prefix+mantissa+'e'+str(scale)
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('scientific carry', solve("999.5",3,False), "1.00e3")
check('engineering carry', solve("999.5",3,True), "1.00e3")
check('two integer digits', solve("12345",3,True), "12.3e3")
check('three integer digits', solve("123456",3,True), "123e3")
check('negative exponent', solve("0.01234",3,True), "12.3e-3")
check('scientific small', solve("0.01234",3,False), "1.23e-2")
check('padding', solve(str(N)+"e2",3,True), str(N)+"00e0")
check('negative coefficient', solve("-12345",3,False), "-1.23e4")
check('negative zero', solve("-0.00",3,False), "-0e0")
check('positive zero', solve("0.00",3,True), "0e0")
check('retained zeros', solve("1.200",4,False), "1.200e0")
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)

source:
"""Failure Map reference implementation. Python standard library only."""
import json
import math
import decimal
from decimal import Decimal, Context, ROUND_HALF_EVEN, ROUND_HALF_UP, ROUND_DOWN

N = 1
observations = []
def solve(text,precision,engineering):
    ctx=Context(prec=precision,rounding=ROUND_HALF_EVEN)
    value=Decimal(str(float(text)))
    sign,digits,exponent=value.as_tuple()
    prefix='-' if sign else ''
    if value.is_zero(): return prefix+'0e0'
    coefficient=''.join(str(d) for d in digits)
    adjusted=len(coefficient)+exponent-1
    scale=(adjusted//3)*3 if engineering else adjusted
    leading=adjusted-scale+1
    coefficient=coefficient.ljust(leading,'0')
    mantissa=coefficient[:leading]
    if len(coefficient)>leading: mantissa+='.'+coefficient[leading:]
    return prefix+mantissa+'e'+str(scale)
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('scientific carry', solve("999.5",3,False), "1.00e3")
check('engineering carry', solve("999.5",3,True), "1.00e3")
check('two integer digits', solve("12345",3,True), "12.3e3")
check('three integer digits', solve("123456",3,True), "123e3")
check('negative exponent', solve("0.01234",3,True), "12.3e-3")
check('scientific small', solve("0.01234",3,False), "1.23e-2")
check('padding', solve(str(N)+"e2",3,True), str(N)+"00e0")
check('negative coefficient', solve("-12345",3,False), "-1.23e4")
check('negative zero', solve("-0.00",3,False), "-0e0")
check('positive zero', solve("0.00",3,True), "0e0")
check('retained zeros', solve("1.200",4,False), "1.200e0")
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)

prompt:
Decimal notation lays out unrounded coefficient digits.

Render a finite decimal text after half-even rounding to precision, in scientific or engineering notation. Preserve coefficient trailing zeros; engineering exponent is a multiple of three with one to three integer digits. Zero is canonical coefficient zero with original sign and exponent zero.

split: open-access


broken_source:
"""Failure Map reference implementation. Python standard library only."""
import json
import math
import decimal
from decimal import Decimal, Context, ROUND_HALF_EVEN, ROUND_HALF_UP, ROUND_DOWN

N = 1
observations = []
def solve(text,precision,engineering):
    ctx=Context(prec=precision,rounding=ROUND_HALF_EVEN)
    value=ctx.create_decimal(text)
    sign,digits,exponent=value.as_tuple()
    prefix='-' if sign else ''
    if value.is_zero(): return prefix+'0e0'
    coefficient=''.join(str(d) for d in digits)
    adjusted=exponent
    scale=(adjusted//3)*3 if engineering else adjusted
    leading=adjusted-scale+1
    coefficient=coefficient.ljust(leading,'0')
    mantissa=coefficient[:leading]
    if len(coefficient)>leading: mantissa+='.'+coefficient[leading:]
    return prefix+mantissa+'e'+str(scale)
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('scientific carry', solve("999.5",3,False), "1.00e3")
check('engineering carry', solve("999.5",3,True), "1.00e3")
check('two integer digits', solve("12345",3,True), "12.3e3")
check('three integer digits', solve("123456",3,True), "123e3")
check('negative exponent', solve("0.01234",3,True), "12.3e-3")
check('scientific small', solve("0.01234",3,False), "1.23e-2")
check('padding', solve(str(N)+"e2",3,True), str(N)+"00e0")
check('negative coefficient', solve("-12345",3,False), "-1.23e4")
check('negative zero', solve("-0.00",3,False), "-0e0")
check('positive zero', solve("0.00",3,True), "0e0")
check('retained zeros', solve("1.200",4,False), "1.200e0")
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)

source:
"""Failure Map reference implementation. Python standard library only."""
import json
import math
import decimal
from decimal import Decimal, Context, ROUND_HALF_EVEN, ROUND_HALF_UP, ROUND_DOWN

N = 1
observations = []
def solve(text,precision,engineering):
    ctx=Context(prec=precision,rounding=ROUND_HALF_EVEN)
    value=ctx.create_decimal(text)
    sign,digits,exponent=value.as_tuple()
    prefix='-' if sign else ''
    if value.is_zero(): return prefix+'0e0'
    coefficient=''.join(str(d) for d in digits)
    adjusted=len(coefficient)+exponent
    scale=(adjusted//3)*3 if engineering else adjusted
    leading=adjusted-scale+1
    coefficient=coefficient.ljust(leading,'0')
    mantissa=coefficient[:leading]
    if len(coefficient)>leading: mantissa+='.'+coefficient[leading:]
    return prefix+mantissa+'e'+str(scale)
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('scientific carry', solve("999.5",3,False), "1.00e3")
check('engineering carry', solve("999.5",3,True), "1.00e3")
check('two integer digits', solve("12345",3,True), "12.3e3")
check('three integer digits', solve("123456",3,True), "123e3")
check('negative exponent', solve("0.01234",3,True), "12.3e-3")
check('scientific small', solve("0.01234",3,False), "1.23e-2")
check('padding', solve(str(N)+"e2",3,True), str(N)+"00e0")
check('negative coefficient', solve("-12345",3,False), "-1.23e4")
check('negative zero', solve("-0.00",3,False), "-0e0")
check('positive zero', solve("0.00",3,True), "0e0")
check('retained zeros', solve("1.200",4,False), "1.200e0")
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)

prompt:
Decimal notation uses coefficient exponent as scientific exponent.

Render a finite decimal text after half-even rounding to precision, in scientific or engineering notation. Preserve coefficient trailing zeros; engineering exponent is a multiple of three with one to three integer digits. Zero is canonical coefficient zero with original sign and exponent zero.

split: open-access


broken_source:
"""Failure Map reference implementation. Python standard library only."""
import json
import math
import decimal
from decimal import Decimal, Context, ROUND_HALF_EVEN, ROUND_HALF_UP, ROUND_DOWN

N = 1
observations = []
def solve(text,precision,engineering):
    ctx=Context(prec=precision,rounding=ROUND_HALF_EVEN)
    value=ctx.create_decimal(text)
    sign,digits,exponent=value.as_tuple()
    prefix='-' if sign else ''
    if value.is_zero(): return prefix+'0e0'
    coefficient=''.join(str(d) for d in digits)
    adjusted=len(coefficient)+exponent-1
    scale=int(adjusted/3)*3 if engineering else adjusted
    leading=adjusted-scale+1
    coefficient=coefficient.ljust(leading,'0')
    mantissa=coefficient[:leading]
    if len(coefficient)>leading: mantissa+='.'+coefficient[leading:]
    return prefix+mantissa+'e'+str(scale)
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('scientific carry', solve("999.5",3,False), "1.00e3")
check('engineering carry', solve("999.5",3,True), "1.00e3")
check('two integer digits', solve("12345",3,True), "12.3e3")
check('three integer digits', solve("123456",3,True), "123e3")
check('negative exponent', solve("0.01234",3,True), "12.3e-3")
check('scientific small', solve("0.01234",3,False), "1.23e-2")
check('padding', solve(str(N)+"e2",3,True), str(N)+"00e0")
check('negative coefficient', solve("-12345",3,False), "-1.23e4")
check('negative zero', solve("-0.00",3,False), "-0e0")
check('positive zero', solve("0.00",3,True), "0e0")
check('retained zeros', solve("1.200",4,False), "1.200e0")
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)

source:
"""Failure Map reference implementation. Python standard library only."""
import json
import math
import decimal
from decimal import Decimal, Context, ROUND_HALF_EVEN, ROUND_HALF_UP, ROUND_DOWN

N = 1
observations = []
def solve(text,precision,engineering):
    ctx=Context(prec=precision,rounding=ROUND_HALF_EVEN)
    value=ctx.create_decimal(text)
    sign,digits,exponent=value.as_tuple()
    prefix='-' if sign else ''
    if value.is_zero(): return prefix+'0e0'
    coefficient=''.join(str(d) for d in digits)
    adjusted=len(coefficient)+exponent-1
    scale=(abs(adjusted)//3)*3 if engineering else adjusted
    leading=adjusted-scale+1
    coefficient=coefficient.ljust(leading,'0')
    mantissa=coefficient[:leading]
    if len(coefficient)>leading: mantissa+='.'+coefficient[leading:]
    return prefix+mantissa+'e'+str(scale)
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('scientific carry', solve("999.5",3,False), "1.00e3")
check('engineering carry', solve("999.5",3,True), "1.00e3")
check('two integer digits', solve("12345",3,True), "12.3e3")
check('three integer digits', solve("123456",3,True), "123e3")
check('negative exponent', solve("0.01234",3,True), "12.3e-3")
check('scientific small', solve("0.01234",3,False), "1.23e-2")
check('padding', solve(str(N)+"e2",3,True), str(N)+"00e0")
check('negative coefficient', solve("-12345",3,False), "-1.23e4")
check('negative zero', solve("-0.00",3,False), "-0e0")
check('positive zero', solve("0.00",3,True), "0e0")
check('retained zeros', solve("1.200",4,False), "1.200e0")
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)

prompt:
Engineering notation truncates negative exponent division.

Render a finite decimal text after half-even rounding to precision, in scientific or engineering notation. Preserve coefficient trailing zeros; engineering exponent is a multiple of three with one to three integer digits. Zero is canonical coefficient zero with original sign and exponent zero.

split: open-access


broken_source:
"""Failure Map reference implementation. Python standard library only."""
import json
import math
import decimal
from decimal import Decimal, Context, ROUND_HALF_EVEN, ROUND_HALF_UP, ROUND_DOWN

N = 1
observations = []
def solve(text,precision,engineering):
    ctx=Context(prec=precision,rounding=ROUND_HALF_EVEN)
    value=ctx.create_decimal(text)
    sign,digits,exponent=value.as_tuple()
    prefix='-' if sign else ''
    if value.is_zero(): return prefix+'0e0'
    coefficient=''.join(str(d) for d in digits)
    adjusted=len(coefficient)+exponent-1
    scale=(adjusted//3)*3 if engineering else adjusted
    leading=adjusted-scale
    coefficient=coefficient.ljust(leading,'0')
    mantissa=coefficient[:leading]
    if len(coefficient)>leading: mantissa+='.'+coefficient[leading:]
    return prefix+mantissa+'e'+str(scale)
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('scientific carry', solve("999.5",3,False), "1.00e3")
check('engineering carry', solve("999.5",3,True), "1.00e3")
check('two integer digits', solve("12345",3,True), "12.3e3")
check('three integer digits', solve("123456",3,True), "123e3")
check('negative exponent', solve("0.01234",3,True), "12.3e-3")
check('scientific small', solve("0.01234",3,False), "1.23e-2")
check('padding', solve(str(N)+"e2",3,True), str(N)+"00e0")
check('negative coefficient', solve("-12345",3,False), "-1.23e4")
check('negative zero', solve("-0.00",3,False), "-0e0")
check('positive zero', solve("0.00",3,True), "0e0")
check('retained zeros', solve("1.200",4,False), "1.200e0")
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)

source:
"""Failure Map reference implementation. Python standard library only."""
import json
import math
import decimal
from decimal import Decimal, Context, ROUND_HALF_EVEN, ROUND_HALF_UP, ROUND_DOWN

N = 1
observations = []
def solve(text,precision,engineering):
    ctx=Context(prec=precision,rounding=ROUND_HALF_EVEN)
    value=ctx.create_decimal(text)
    sign,digits,exponent=value.as_tuple()
    prefix='-' if sign else ''
    if value.is_zero(): return prefix+'0e0'
    coefficient=''.join(str(d) for d in digits)
    adjusted=len(coefficient)+exponent-1
    scale=(adjusted//3)*3 if engineering else adjusted
    leading=1
    coefficient=coefficient.ljust(leading,'0')
    mantissa=coefficient[:leading]
    if len(coefficient)>leading: mantissa+='.'+coefficient[leading:]
    return prefix+mantissa+'e'+str(scale)
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('scientific carry', solve("999.5",3,False), "1.00e3")
check('engineering carry', solve("999.5",3,True), "1.00e3")
check('two integer digits', solve("12345",3,True), "12.3e3")
check('three integer digits', solve("123456",3,True), "123e3")
check('negative exponent', solve("0.01234",3,True), "12.3e-3")
check('scientific small', solve("0.01234",3,False), "1.23e-2")
check('padding', solve(str(N)+"e2",3,True), str(N)+"00e0")
check('negative coefficient', solve("-12345",3,False), "-1.23e4")
check('negative zero', solve("-0.00",3,False), "-0e0")
check('positive zero', solve("0.00",3,True), "0e0")
check('retained zeros', solve("1.200",4,False), "1.200e0")
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)

prompt:
Engineering notation uses exponent residue as a zero-based digit count.

Render a finite decimal text after half-even rounding to precision, in scientific or engineering notation. Preserve coefficient trailing zeros; engineering exponent is a multiple of three with one to three integer digits. Zero is canonical coefficient zero with original sign and exponent zero.

split: open-access


broken_source:
"""Failure Map reference implementation. Python standard library only."""
import json
import math
import decimal
from decimal import Decimal, Context, ROUND_HALF_EVEN, ROUND_HALF_UP, ROUND_DOWN

N = 1
observations = []
def solve(text,precision,engineering):
    ctx=Context(prec=precision,rounding=ROUND_HALF_EVEN)
    value=ctx.create_decimal(text)
    sign,digits,exponent=value.as_tuple()
    prefix='-' if sign else ''
    if value.is_zero(): return prefix+'0e0'
    coefficient=''.join(str(d) for d in digits)
    adjusted=len(coefficient)+exponent-1
    scale=(adjusted//3)*3 if engineering else adjusted
    leading=adjusted-scale+1
    coefficient=coefficient
    mantissa=coefficient[:leading]
    if len(coefficient)>leading: mantissa+='.'+coefficient[leading:]
    return prefix+mantissa+'e'+str(scale)
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('scientific carry', solve("999.5",3,False), "1.00e3")
check('engineering carry', solve("999.5",3,True), "1.00e3")
check('two integer digits', solve("12345",3,True), "12.3e3")
check('three integer digits', solve("123456",3,True), "123e3")
check('negative exponent', solve("0.01234",3,True), "12.3e-3")
check('scientific small', solve("0.01234",3,False), "1.23e-2")
check('padding', solve(str(N)+"e2",3,True), str(N)+"00e0")
check('negative coefficient', solve("-12345",3,False), "-1.23e4")
check('negative zero', solve("-0.00",3,False), "-0e0")
check('positive zero', solve("0.00",3,True), "0e0")
check('retained zeros', solve("1.200",4,False), "1.200e0")
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)

source:
"""Failure Map reference implementation. Python standard library only."""
import json
import math
import decimal
from decimal import Decimal, Context, ROUND_HALF_EVEN, ROUND_HALF_UP, ROUND_DOWN

N = 1
observations = []
def solve(text,precision,engineering):
    ctx=Context(prec=precision,rounding=ROUND_HALF_EVEN)
    value=ctx.create_decimal(text)
    sign,digits,exponent=value.as_tuple()
    prefix='-' if sign else ''
    if value.is_zero(): return prefix+'0e0'
    coefficient=''.join(str(d) for d in digits)
    adjusted=len(coefficient)+exponent-1
    scale=(adjusted//3)*3 if engineering else adjusted
    leading=adjusted-scale+1
    coefficient=coefficient.rjust(leading,"0")
    mantissa=coefficient[:leading]
    if len(coefficient)>leading: mantissa+='.'+coefficient[leading:]
    return prefix+mantissa+'e'+str(scale)
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('scientific carry', solve("999.5",3,False), "1.00e3")
check('engineering carry', solve("999.5",3,True), "1.00e3")
check('two integer digits', solve("12345",3,True), "12.3e3")
check('three integer digits', solve("123456",3,True), "123e3")
check('negative exponent', solve("0.01234",3,True), "12.3e-3")
check('scientific small', solve("0.01234",3,False), "1.23e-2")
check('padding', solve(str(N)+"e2",3,True), str(N)+"00e0")
check('negative coefficient', solve("-12345",3,False), "-1.23e4")
check('negative zero', solve("-0.00",3,False), "-0e0")
check('positive zero', solve("0.00",3,True), "0e0")
check('retained zeros', solve("1.200",4,False), "1.200e0")
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)

prompt:
Engineering notation fails to pad an integer mantissa.

Render a finite decimal text after half-even rounding to precision, in scientific or engineering notation. Preserve coefficient trailing zeros; engineering exponent is a multiple of three with one to three integer digits. Zero is canonical coefficient zero with original sign and exponent zero.

split: open-access


broken_source:
"""Failure Map reference implementation. Python standard library only."""
import json
import math
import decimal
from decimal import Decimal, Context, ROUND_HALF_EVEN, ROUND_HALF_UP, ROUND_DOWN

N = 1
observations = []
def solve(text,precision,engineering):
    ctx=Context(prec=precision,rounding=ROUND_HALF_EVEN)
    value=ctx.create_decimal(text)
    sign,digits,exponent=value.as_tuple()
    prefix='-' if sign else ''
    if value.is_zero(): return prefix+'0e0'
    coefficient=''.join(str(d) for d in digits)
    adjusted=len(coefficient)+exponent-1
    scale=(adjusted//3)*3 if engineering else adjusted
    leading=adjusted-scale+1
    coefficient=coefficient.ljust(leading,'0')
    mantissa=coefficient[:1]
    if len(coefficient)>leading: mantissa+='.'+coefficient[leading:]
    return prefix+mantissa+'e'+str(scale)
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('scientific carry', solve("999.5",3,False), "1.00e3")
check('engineering carry', solve("999.5",3,True), "1.00e3")
check('two integer digits', solve("12345",3,True), "12.3e3")
check('three integer digits', solve("123456",3,True), "123e3")
check('negative exponent', solve("0.01234",3,True), "12.3e-3")
check('scientific small', solve("0.01234",3,False), "1.23e-2")
check('padding', solve(str(N)+"e2",3,True), str(N)+"00e0")
check('negative coefficient', solve("-12345",3,False), "-1.23e4")
check('negative zero', solve("-0.00",3,False), "-0e0")
check('positive zero', solve("0.00",3,True), "0e0")
check('retained zeros', solve("1.200",4,False), "1.200e0")
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)

source:
"""Failure Map reference implementation. Python standard library only."""
import json
import math
import decimal
from decimal import Decimal, Context, ROUND_HALF_EVEN, ROUND_HALF_UP, ROUND_DOWN

N = 1
observations = []
def solve(text,precision,engineering):
    ctx=Context(prec=precision,rounding=ROUND_HALF_EVEN)
    value=ctx.create_decimal(text)
    sign,digits,exponent=value.as_tuple()
    prefix='-' if sign else ''
    if value.is_zero(): return prefix+'0e0'
    coefficient=''.join(str(d) for d in digits)
    adjusted=len(coefficient)+exponent-1
    scale=(adjusted//3)*3 if engineering else adjusted
    leading=adjusted-scale+1
    coefficient=coefficient.ljust(leading,'0')
    mantissa=coefficient
    if len(coefficient)>leading: mantissa+='.'+coefficient[leading:]
    return prefix+mantissa+'e'+str(scale)
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('scientific carry', solve("999.5",3,False), "1.00e3")
check('engineering carry', solve("999.5",3,True), "1.00e3")
check('two integer digits', solve("12345",3,True), "12.3e3")
check('three integer digits', solve("123456",3,True), "123e3")
check('negative exponent', solve("0.01234",3,True), "12.3e-3")
check('scientific small', solve("0.01234",3,False), "1.23e-2")
check('padding', solve(str(N)+"e2",3,True), str(N)+"00e0")
check('negative coefficient', solve("-12345",3,False), "-1.23e4")
check('negative zero', solve("-0.00",3,False), "-0e0")
check('positive zero', solve("0.00",3,True), "0e0")
check('retained zeros', solve("1.200",4,False), "1.200e0")
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)

prompt:
Engineering notation always places its decimal after one digit.

Render a finite decimal text after half-even rounding to precision, in scientific or engineering notation. Preserve coefficient trailing zeros; engineering exponent is a multiple of three with one to three integer digits. Zero is canonical coefficient zero with original sign and exponent zero.

split: open-access


broken_source:
"""Failure Map reference implementation. Python standard library only."""
import json
import math
import decimal
from decimal import Decimal, Context, ROUND_HALF_EVEN, ROUND_HALF_UP, ROUND_DOWN

N = 1
observations = []
def solve(text,precision,engineering):
    ctx=Context(prec=precision,rounding=ROUND_HALF_EVEN)
    value=ctx.create_decimal(text)
    sign,digits,exponent=value.as_tuple()
    prefix='-' if sign else ''
    if value.is_zero(): return prefix+'0e0'
    coefficient=''.join(str(d) for d in digits)
    adjusted=len(coefficient)+exponent-1
    scale=(adjusted//3)*3 if engineering else adjusted
    leading=adjusted-scale+1
    coefficient=coefficient.ljust(leading,'0')
    mantissa=coefficient[:leading]
    if len(coefficient)>leading: mantissa+="."+coefficient[leading:].rstrip("0")
    return prefix+mantissa+'e'+str(scale)
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('scientific carry', solve("999.5",3,False), "1.00e3")
check('engineering carry', solve("999.5",3,True), "1.00e3")
check('two integer digits', solve("12345",3,True), "12.3e3")
check('three integer digits', solve("123456",3,True), "123e3")
check('negative exponent', solve("0.01234",3,True), "12.3e-3")
check('scientific small', solve("0.01234",3,False), "1.23e-2")
check('padding', solve(str(N)+"e2",3,True), str(N)+"00e0")
check('negative coefficient', solve("-12345",3,False), "-1.23e4")
check('negative zero', solve("-0.00",3,False), "-0e0")
check('positive zero', solve("0.00",3,True), "0e0")
check('retained zeros', solve("1.200",4,False), "1.200e0")
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)

source:
"""Failure Map reference implementation. Python standard library only."""
import json
import math
import decimal
from decimal import Decimal, Context, ROUND_HALF_EVEN, ROUND_HALF_UP, ROUND_DOWN

N = 1
observations = []
def solve(text,precision,engineering):
    ctx=Context(prec=precision,rounding=ROUND_HALF_EVEN)
    value=ctx.create_decimal(text)
    sign,digits,exponent=value.as_tuple()
    prefix='-' if sign else ''
    if value.is_zero(): return prefix+'0e0'
    coefficient=''.join(str(d) for d in digits)
    adjusted=len(coefficient)+exponent-1
    scale=(adjusted//3)*3 if engineering else adjusted
    leading=adjusted-scale+1
    coefficient=coefficient.ljust(leading,'0')
    mantissa=coefficient[:leading]
    if len(coefficient)>leading: mantissa+="."+str(int(coefficient[leading:]))
    return prefix+mantissa+'e'+str(scale)
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('scientific carry', solve("999.5",3,False), "1.00e3")
check('engineering carry', solve("999.5",3,True), "1.00e3")
check('two integer digits', solve("12345",3,True), "12.3e3")
check('three integer digits', solve("123456",3,True), "123e3")
check('negative exponent', solve("0.01234",3,True), "12.3e-3")
check('scientific small', solve("0.01234",3,False), "1.23e-2")
check('padding', solve(str(N)+"e2",3,True), str(N)+"00e0")
check('negative coefficient', solve("-12345",3,False), "-1.23e4")
check('negative zero', solve("-0.00",3,False), "-0e0")
check('positive zero', solve("0.00",3,True), "0e0")
check('retained zeros', solve("1.200",4,False), "1.200e0")
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)

prompt:
Decimal notation strips significant trailing coefficient zeros.

Render a finite decimal text after half-even rounding to precision, in scientific or engineering notation. Preserve coefficient trailing zeros; engineering exponent is a multiple of three with one to three integer digits. Zero is canonical coefficient zero with original sign and exponent zero.

split: open-access


broken_source:
"""Failure Map reference implementation. Python standard library only."""
import json
import math
import decimal
from decimal import Decimal, Context, ROUND_HALF_EVEN, ROUND_HALF_UP, ROUND_DOWN

N = 1
observations = []
def solve(text,precision,engineering):
    ctx=Context(prec=precision,rounding=ROUND_HALF_EVEN)
    value=ctx.create_decimal(text)
    sign,digits,exponent=value.as_tuple()
    prefix='-' if sign else ''
    if value.is_zero(): return "0e0"
    coefficient=''.join(str(d) for d in digits)
    adjusted=len(coefficient)+exponent-1
    scale=(adjusted//3)*3 if engineering else adjusted
    leading=adjusted-scale+1
    coefficient=coefficient.ljust(leading,'0')
    mantissa=coefficient[:leading]
    if len(coefficient)>leading: mantissa+='.'+coefficient[leading:]
    return prefix+mantissa+'e'+str(scale)
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('scientific carry', solve("999.5",3,False), "1.00e3")
check('engineering carry', solve("999.5",3,True), "1.00e3")
check('two integer digits', solve("12345",3,True), "12.3e3")
check('three integer digits', solve("123456",3,True), "123e3")
check('negative exponent', solve("0.01234",3,True), "12.3e-3")
check('scientific small', solve("0.01234",3,False), "1.23e-2")
check('padding', solve(str(N)+"e2",3,True), str(N)+"00e0")
check('negative coefficient', solve("-12345",3,False), "-1.23e4")
check('negative zero', solve("-0.00",3,False), "-0e0")
check('positive zero', solve("0.00",3,True), "0e0")
check('retained zeros', solve("1.200",4,False), "1.200e0")
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)

source:
"""Failure Map reference implementation. Python standard library only."""
import json
import math
import decimal
from decimal import Decimal, Context, ROUND_HALF_EVEN, ROUND_HALF_UP, ROUND_DOWN

N = 1
observations = []
def solve(text,precision,engineering):
    ctx=Context(prec=precision,rounding=ROUND_HALF_EVEN)
    value=ctx.create_decimal(text)
    sign,digits,exponent=value.as_tuple()
    prefix='-' if sign else ''
    if value.is_zero(): return "-0e0"
    coefficient=''.join(str(d) for d in digits)
    adjusted=len(coefficient)+exponent-1
    scale=(adjusted//3)*3 if engineering else adjusted
    leading=adjusted-scale+1
    coefficient=coefficient.ljust(leading,'0')
    mantissa=coefficient[:leading]
    if len(coefficient)>leading: mantissa+='.'+coefficient[leading:]
    return prefix+mantissa+'e'+str(scale)
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('scientific carry', solve("999.5",3,False), "1.00e3")
check('engineering carry', solve("999.5",3,True), "1.00e3")
check('two integer digits', solve("12345",3,True), "12.3e3")
check('three integer digits', solve("123456",3,True), "123e3")
check('negative exponent', solve("0.01234",3,True), "12.3e-3")
check('scientific small', solve("0.01234",3,False), "1.23e-2")
check('padding', solve(str(N)+"e2",3,True), str(N)+"00e0")
check('negative coefficient', solve("-12345",3,False), "-1.23e4")
check('negative zero', solve("-0.00",3,False), "-0e0")
check('positive zero', solve("0.00",3,True), "0e0")
check('retained zeros', solve("1.200",4,False), "1.200e0")
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)

prompt:
Decimal notation drops the sign of a zero coefficient.

Render a finite decimal text after half-even rounding to precision, in scientific or engineering notation. Preserve coefficient trailing zeros; engineering exponent is a multiple of three with one to three integer digits. Zero is canonical coefficient zero with original sign and exponent zero.

split: open-access


broken_source:
"""Failure Map reference implementation. Python standard library only."""
import json
import math
import decimal
from decimal import Decimal, Context, ROUND_HALF_EVEN, ROUND_HALF_UP, ROUND_DOWN

N = 1
observations = []
def solve(text,precision,engineering):
    ctx=Context(prec=precision,rounding=ROUND_HALF_EVEN)
    value=ctx.create_decimal(text)
    sign,digits,exponent=value.as_tuple()
    prefix="-" if value<0 else ""
    if value.is_zero(): return prefix+'0e0'
    coefficient=''.join(str(d) for d in digits)
    adjusted=len(coefficient)+exponent-1
    scale=(adjusted//3)*3 if engineering else adjusted
    leading=adjusted-scale+1
    coefficient=coefficient.ljust(leading,'0')
    mantissa=coefficient[:leading]
    if len(coefficient)>leading: mantissa+='.'+coefficient[leading:]
    return prefix+mantissa+'e'+str(scale)
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('scientific carry', solve("999.5",3,False), "1.00e3")
check('engineering carry', solve("999.5",3,True), "1.00e3")
check('two integer digits', solve("12345",3,True), "12.3e3")
check('three integer digits', solve("123456",3,True), "123e3")
check('negative exponent', solve("0.01234",3,True), "12.3e-3")
check('scientific small', solve("0.01234",3,False), "1.23e-2")
check('padding', solve(str(N)+"e2",3,True), str(N)+"00e0")
check('negative coefficient', solve("-12345",3,False), "-1.23e4")
check('negative zero', solve("-0.00",3,False), "-0e0")
check('positive zero', solve("0.00",3,True), "0e0")
check('retained zeros', solve("1.200",4,False), "1.200e0")
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)

source:
"""Failure Map reference implementation. Python standard library only."""
import json
import math
import decimal
from decimal import Decimal, Context, ROUND_HALF_EVEN, ROUND_HALF_UP, ROUND_DOWN

N = 1
observations = []
def solve(text,precision,engineering):
    ctx=Context(prec=precision,rounding=ROUND_HALF_EVEN)
    value=ctx.create_decimal(text)
    sign,digits,exponent=value.as_tuple()
    prefix=""
    if value.is_zero(): return prefix+'0e0'
    coefficient=''.join(str(d) for d in digits)
    adjusted=len(coefficient)+exponent-1
    scale=(adjusted//3)*3 if engineering else adjusted
    leading=adjusted-scale+1
    coefficient=coefficient.ljust(leading,'0')
    mantissa=coefficient[:leading]
    if len(coefficient)>leading: mantissa+='.'+coefficient[leading:]
    return prefix+mantissa+'e'+str(scale)
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('scientific carry', solve("999.5",3,False), "1.00e3")
check('engineering carry', solve("999.5",3,True), "1.00e3")
check('two integer digits', solve("12345",3,True), "12.3e3")
check('three integer digits', solve("123456",3,True), "123e3")
check('negative exponent', solve("0.01234",3,True), "12.3e-3")
check('scientific small', solve("0.01234",3,False), "1.23e-2")
check('padding', solve(str(N)+"e2",3,True), str(N)+"00e0")
check('negative coefficient', solve("-12345",3,False), "-1.23e4")
check('negative zero', solve("-0.00",3,False), "-0e0")
check('positive zero', solve("0.00",3,True), "0e0")
check('retained zeros', solve("1.200",4,False), "1.200e0")
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)

prompt:
Decimal notation derives sign from comparison with zero.

Render a finite decimal text after half-even rounding to precision, in scientific or engineering notation. Preserve coefficient trailing zeros; engineering exponent is a multiple of three with one to three integer digits. Zero is canonical coefficient zero with original sign and exponent zero.

split: open-access


broken_source:
"""Failure Map reference implementation. Python standard library only."""
import json
import math
import struct
def render(x):
    if math.isnan(x): return 'nan'
    if math.isinf(x): return '-infinity' if x<0 else '+infinity'
    return format(x,'.11g')

N = 1
observations = []
def solve(x):
    try:
        if x>=1024: return '+infinity'
        if x<=-1075: return '0'
        k=math.floor(x)
        f=x-k
        mantissa=math.exp(f)
        result=math.ldexp(mantissa,k)
        return render(result)
    except (ValueError, OverflowError, ZeroDivisionError, TypeError):
        return "arithmetic-error"
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('integer', solve(float(N)), render(2.0**N))
check('negative integer', solve(-float(N)), render(2.0**(-N)))
check('fraction', solve(N+0.5), render(2.0**(N+0.5)))
check('large finite', solve(1023.0), render(2.0**1023))
check('small subnormal', solve(-1074.0), render(math.ldexp(1.0,-1074)))
check('subnormal half above', solve(-1074.5), render(math.ldexp(1.0,-1074)))
check('underflow midpoint', solve(-1075.0), "0")
check('overflow', solve(1024.0), "+infinity")
check('negative fraction', solve(-N-0.5), render(2.0**(-N-0.5)))
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)

source:
"""Failure Map reference implementation. Python standard library only."""
import json
import math
import struct
def render(x):
    if math.isnan(x): return 'nan'
    if math.isinf(x): return '-infinity' if x<0 else '+infinity'
    return format(x,'.11g')

N = 1
observations = []
def solve(x):
    try:
        if x>=1024: return '+infinity'
        if x<=-1075: return '0'
        k=math.floor(x)
        f=x-k
        mantissa=math.exp(f/math.log(2))
        result=math.ldexp(mantissa,k)
        return render(result)
    except (ValueError, OverflowError, ZeroDivisionError, TypeError):
        return "arithmetic-error"
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('integer', solve(float(N)), render(2.0**N))
check('negative integer', solve(-float(N)), render(2.0**(-N)))
check('fraction', solve(N+0.5), render(2.0**(N+0.5)))
check('large finite', solve(1023.0), render(2.0**1023))
check('small subnormal', solve(-1074.0), render(math.ldexp(1.0,-1074)))
check('subnormal half above', solve(-1074.5), render(math.ldexp(1.0,-1074)))
check('underflow midpoint', solve(-1075.0), "0")
check('overflow', solve(1024.0), "+infinity")
check('negative fraction', solve(-N-0.5), render(2.0**(-N-0.5)))
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)

prompt:
Split base-two exponential uses an unconverted natural exponential.

Compute 2**x for finite x by separating its integer exponent from a bounded fractional exponential. Values x>=1024 return positive infinity; x<=-1075 return positive zero under nearest-even rounding. Finite results are rendered to eleven significant decimal digits; modeled domain violations and arithmetic errors are explicit strings.

split: open-access


broken_source:
"""Failure Map reference implementation. Python standard library only."""
import json
import math
import struct
def render(x):
    if math.isnan(x): return 'nan'
    if math.isinf(x): return '-infinity' if x<0 else '+infinity'
    return format(x,'.11g')

N = 1
observations = []
def solve(x):
    try:
        if x>=1024: return '+infinity'
        if x<=-1075: return '0'
        k=math.floor(x)
        f=x-k
        mantissa=2.0**f
        result=mantissa*(2.0**k)
        return render(result)
    except (ValueError, OverflowError, ZeroDivisionError, TypeError):
        return "arithmetic-error"
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('integer', solve(float(N)), render(2.0**N))
check('negative integer', solve(-float(N)), render(2.0**(-N)))
check('fraction', solve(N+0.5), render(2.0**(N+0.5)))
check('large finite', solve(1023.0), render(2.0**1023))
check('small subnormal', solve(-1074.0), render(math.ldexp(1.0,-1074)))
check('subnormal half above', solve(-1074.5), render(math.ldexp(1.0,-1074)))
check('underflow midpoint', solve(-1075.0), "0")
check('overflow', solve(1024.0), "+infinity")
check('negative fraction', solve(-N-0.5), render(2.0**(-N-0.5)))
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)

source:
"""Failure Map reference implementation. Python standard library only."""
import json
import math
import struct
def render(x):
    if math.isnan(x): return 'nan'
    if math.isinf(x): return '-infinity' if x<0 else '+infinity'
    return format(x,'.11g')

N = 1
observations = []
def solve(x):
    try:
        if x>=1024: return '+infinity'
        if x<=-1075: return '0'
        k=math.floor(x)
        f=x-k
        mantissa=2.0**f
        result=max(2.0**k,2.0**-1022)*(2.0**f)
        return render(result)
    except (ValueError, OverflowError, ZeroDivisionError, TypeError):
        return "arithmetic-error"
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('integer', solve(float(N)), render(2.0**N))
check('negative integer', solve(-float(N)), render(2.0**(-N)))
check('fraction', solve(N+0.5), render(2.0**(N+0.5)))
check('large finite', solve(1023.0), render(2.0**1023))
check('small subnormal', solve(-1074.0), render(math.ldexp(1.0,-1074)))
check('subnormal half above', solve(-1074.5), render(math.ldexp(1.0,-1074)))
check('underflow midpoint', solve(-1075.0), "0")
check('overflow', solve(1024.0), "+infinity")
check('negative fraction', solve(-N-0.5), render(2.0**(-N-0.5)))
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)

prompt:
Split base-two exponential underflows its scale before multiplication.

Compute 2**x for finite x by separating its integer exponent from a bounded fractional exponential. Values x>=1024 return positive infinity; x<=-1075 return positive zero under nearest-even rounding. Finite results are rendered to eleven significant decimal digits; modeled domain violations and arithmetic errors are explicit strings.

split: open-access


broken_source:
"""Failure Map reference implementation. Python standard library only."""
import json
import math
import struct
def render(x):
    if math.isnan(x): return 'nan'
    if math.isinf(x): return '-infinity' if x<0 else '+infinity'
    return format(x,'.11g')

N = 1
observations = []
def solve(x):
    try:
        if x>=1024: return '+infinity'
        if x < -1022: return '0'
        k=math.floor(x)
        f=x-k
        mantissa=2.0**f
        result=math.ldexp(mantissa,k)
        return render(result)
    except (ValueError, OverflowError, ZeroDivisionError, TypeError):
        return "arithmetic-error"
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('integer', solve(float(N)), render(2.0**N))
check('negative integer', solve(-float(N)), render(2.0**(-N)))
check('fraction', solve(N+0.5), render(2.0**(N+0.5)))
check('large finite', solve(1023.0), render(2.0**1023))
check('small subnormal', solve(-1074.0), render(math.ldexp(1.0,-1074)))
check('subnormal half above', solve(-1074.5), render(math.ldexp(1.0,-1074)))
check('underflow midpoint', solve(-1075.0), "0")
check('overflow', solve(1024.0), "+infinity")
check('negative fraction', solve(-N-0.5), render(2.0**(-N-0.5)))
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)

source:
"""Failure Map reference implementation. Python standard library only."""
import json
import math
import struct
def render(x):
    if math.isnan(x): return 'nan'
    if math.isinf(x): return '-infinity' if x<0 else '+infinity'
    return format(x,'.11g')

N = 1
observations = []
def solve(x):
    try:
        if x>=1024: return '+infinity'
        if x < -1074: return '0'
        k=math.floor(x)
        f=x-k
        mantissa=2.0**f
        result=math.ldexp(mantissa,k)
        return render(result)
    except (ValueError, OverflowError, ZeroDivisionError, TypeError):
        return "arithmetic-error"
def check(label, actual, expected):
    observations.append({"check": label, "actual": actual, "expected": expected, "passed": actual == expected})
check('integer', solve(float(N)), render(2.0**N))
check('negative integer', solve(-float(N)), render(2.0**(-N)))
check('fraction', solve(N+0.5), render(2.0**(N+0.5)))
check('large finite', solve(1023.0), render(2.0**1023))
check('small subnormal', solve(-1074.0), render(math.ldexp(1.0,-1074)))
check('subnormal half above', solve(-1074.5), render(math.ldexp(1.0,-1074)))
check('underflow midpoint', solve(-1075.0), "0")
check('overflow', solve(1024.0), "+infinity")
check('negative fraction', solve(-N-0.5), render(2.0**(-N-0.5)))
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)

prompt:
Base-two exponential flushes subnormal outputs.

Compute 2**x for finite x by separating its integer exponent from a bounded fractional exponential. Values x>=1024 return positive infinity; x<=-1075 return positive zero under nearest-even rounding. Finite results are rendered to eleven significant decimal digits; modeled domain violations and arithmetic errors are explicit strings.

split: open-access