repair-checks.py

back to table · edit · history · where entries came from · files · download

2041 bytes, as of the version from 2026-10-25 14:25 (current). Recorded here, not run.

"""Recheck the metadata repair for numberdb.org/T489.

Run with SageMath, with generate.py and checks.py downloaded from T489 beside
this file, and NUMBERDB_API_KEY set for the private draft:
    sage -python repair-checks.py
The campaign runner may instead pipe the key on stdin and set
NUMBERDB_KEY_FROM_STDIN=1. No table is written or offered for review.
"""
import contextlib
import io
import json
import os
import sys
from decimal import Decimal
import numberdb.sage as numberdb
import mpmath as mp
import generate
import checks

if os.environ.get('NUMBERDB_KEY_FROM_STDIN') == '1':
    os.environ['NUMBERDB_API_KEY'] = sys.stdin.read().strip()

doc = numberdb.table('T489')
program = next(iter(doc['Programs'].values()))
code = program if isinstance(program, str) else program['code']
output = io.StringIO()
with contextlib.redirect_stdout(output):
    exec(compile(code, 'T489-displayed-program', 'exec'), {})
printed = output.getvalue().strip()
rows = doc['Numbers']['unit-square']
for n in ('2', '3'):
    stored = rows[n]
    stored = stored['number'] if isinstance(stored, dict) else stored
    assert printed == stored, (n, printed, stored)
print('Displayed program exactly reproduces both stored square n=2 and n=3 strings.')

approximate = exact = 0
for domain, rows in doc['Numbers'].items():
    for n, entry in rows.items():
        s = str(entry['number'] if isinstance(entry, dict) else entry)
        if '.' in s or 'e' in s.lower():
            assert len(Decimal(s).as_tuple().digits) == 100, (domain, n, s)
            approximate += 1
        else:
            exact += 1
assert generate.SteklovEigenvalues.digits == 100
print(json.dumps({'approximate_100_digit_entries': approximate, 'exact_entries': exact, 'generator_digits': generate.SteklovEigenvalues.digits}))
report = generate.SteklovEigenvalues().verify(sample=None)
print(report)
assert report.ok
os.environ['NUMBERDB_KEY_FROM_STDIN'] = '0'  # The wrapper has consumed stdin.
sys.argv = ['checks.py', '--stored']
checks.main()
print('REPAIR_CHECKS_PASSED')