Jump to content

The Principia Machina/TPC-PY/gen record view corpus.py

From The Invariance Itself
# -*- coding: utf-8 -*-
"""gen_record_view_corpus 0.1.0 (agent TQ, increment 12): writes
vectors/record_view_corpus.json, the round trip of record_view
(tpm_record_schema 0.3.0 sections 10.5 and 14.3) over the record inputs of
the seven record-reading corpora of the earlier trees: agent RC's 820 pinned
fixtures (increment 10) and, as a second class, increment 11's 1073.

The distinct [view, module record] pairs are held literally below (RECORDS,
one JSON line each with its count in increment 10 and in increment 11), as
tools/rt_build.py outside the tree extracted them; the counts are asserted
to be 14.3's. For each pair this generator applies the inverse map of 10.5
(test tooling, not a TPC function), written here: a status of HELD or
REFUTED becomes STATUS, any other status word GRADE; author "TPX" with
supplied_by x becomes AUTHOR x and LANDED_BY "TPX"; vetted_by v becomes
LANDED_BY v; a finding {EQUATION|DECIMAL|TEXT, v} becomes EQUATION, VALUE
or STATEMENT v; PROBE_LOAD's standing true or false becomes GRADE
PROVISIONAL or WITHDRAWN; every key the view does not map (the SUITE's
sr1_fail, a fixture-only key) is a harness extra. The expected result of
record_view(canonical, view, null) is the module record less those extras
(a record carried whole has an empty canonical image and the result {}):
record_view returns the module record byte for byte after canonical JSON,
the extras beside it. Each case carries its extras under the case key
"harness", which the runners do not read.

Run from tpc/:  python gen_record_view_corpus.py   (standard library only)
"""
import copy
import json
import os
import sys

HERE = os.path.dirname(os.path.abspath(__file__))
sys.path.insert(0, HERE)
import tpc_strike as S      # noqa: E402  existing function: a float as C "%.12g" (canon)
CORPUS_VERSION = "0.1.0"


def cj(v):
    if v is True:
        return "true"
    if v is False:
        return "false"
    if v is None:
        return "null"
    if type(v) is int:
        return str(v)
    if type(v) is float:                    # a module record's number, copied as given
        return S.canon(v)
    if type(v) is str:
        out = ['"']
        for ch in v:
            if ch == '"':
                out.append('\\"')
            elif ch == "\\":
                out.append("\\\\")
            elif ord(ch) < 0x20:
                out.append("\\u%04x" % ord(ch))
            else:
                out.append(ch)
        out.append('"')
        return "".join(out)
    if type(v) is list:
        return "[" + ",".join(cj(x) for x in v) + "]"
    if type(v) is dict:
        return "{" + ",".join(cj(k) + ":" + cj(v[k]) for k in sorted(v)) + "}"
    raise TypeError(type(v))


def _status(s, c):
    if s in ("HELD", "REFUTED"):
        c["STATUS"] = s
    else:
        c["GRADE"] = s


MAPS = {"HOLD": {"id": "ID", "block_id": "BLOCK", "kind": "CLASS", "cites": "CITES",
                 "assumptions": "ASSUMPTIONS", "vetted_in": "VETTED_IN"},
        "EOM": {"ID": "ID", "ROLE": "ROLE", "EQUATION": "EQUATION"},
        "LITERATURE": {"id": "ID", "literature": "LITERATURE"},
        "STRIKE": {"assumptions": "ASSUMPTIONS", "cites": "CITES"},
        "SUITE": {"assumptions": "ASSUMPTIONS", "cites": "CITES", "regime": "REGIME",
                  "domain": "DOMAIN"},
        "PROBE_LOAD": {"assumptions": "ASSUMPTIONS", "cites": "CITES"},
        "PROBE_M": {"x": "VALUE", "u": "U_C", "unit": "UNIT"},
        "PROBE_L": {}}
STATUS_KEY = {"HOLD": "status", "EOM": "STATUS", "LITERATURE": "status"}


def inverse(view, rec):
    """module record -> (canonical record, harness extras), 10.5."""
    c, x = {}, {}
    m = MAPS[view]
    for k, v in rec.items():
        if k in m:
            c[m[k]] = copy.deepcopy(v)
        elif view in STATUS_KEY and k == STATUS_KEY[view]:
            _status(v, c)
        elif view == "HOLD" and k in ("author", "supplied_by", "vetted_by"):
            pass
        elif view in ("STRIKE", "SUITE") and k == "steps":
            c["DERIVATION"] = {"STEPS": copy.deepcopy(v)}
        elif view == "PROBE_LOAD" and k == "standing" and type(v) is bool:
            c["GRADE"] = "PROVISIONAL" if v else "WITHDRAWN"
        elif view == "PROBE_L" and k == "finding" and type(v) is dict and \
                sorted(v) == ["type", "value"] and v["type"] in ("EQUATION", "DECIMAL", "TEXT"):
            c[{"EQUATION": "EQUATION", "DECIMAL": "VALUE", "TEXT": "STATEMENT"}[v["type"]]] = \
                copy.deepcopy(v["value"])
        else:
            x[k] = copy.deepcopy(v)
    if view == "HOLD":
        if "supplied_by" in rec:
            c["AUTHOR"] = copy.deepcopy(rec["supplied_by"])
            c["LANDED_BY"] = "TPX"
        elif "author" in rec:
            c["AUTHOR"] = copy.deepcopy(rec["author"])
        if "vetted_by" in rec:
            c["LANDED_BY"] = copy.deepcopy(rec["vetted_by"])
    return c, x


# ---- the literal records: [view, module record, count in increment 10, in increment 11]
RECORDS = r"""
["EOM",{"EQUATION":"D(u, t) = 0","ID":"RR-1","ROLE":"EOM(u)","STATUS":"PROVISIONAL"},1,1]
["EOM",{"EQUATION":"D(v, D_) = 0","ID":"RR-1","ROLE":"EOM(v)","STATUS":"PROVISIONAL"},1,1]
["EOM",{"EQUATION":"D(v, t) = -k_s * x / m","ID":"RR-2","ROLE":"EOM(v)","STATUS":"PROVISIONAL"},1,1]
["EOM",{"EQUATION":"D(v, t) = 0","ID":"RR-2","ROLE":"EOM(v)","STATUS":"VOID"},1,1]
["EOM",{"EQUATION":"D(v, t) = g","ID":"RR-1","ROLE":"EOM(v)","STATUS":"PROVISIONAL"},1,1]
["EOM",{"EQUATION":"D(v, t) == 0","ID":"RR-1","ROLE":"EOM(v)","STATUS":"PROVISIONAL"},1,1]
["EOM",{"EQUATION":"D(x, k_s) = v","ID":"RR-5","ROLE":"CONSTRAINT","STATUS":"PROVISIONAL"},1,1]
["EOM",{"EQUATION":"D(x, t) = -a_r * x","ID":"RR-1","ROLE":"EOM(x)","STATUS":"PROVISIONAL"},1,1]
["EOM",{"EQUATION":"D(x, t) = v","ID":"RR-1","ROLE":"EOM v","STATUS":"PROVISIONAL"},1,1]
["EOM",{"EQUATION":"D(x, t) = v","ID":"RR-1","ROLE":"EOM(m)","STATUS":"PROVISIONAL"},1,1]
["EOM",{"EQUATION":"D(x, t) = v","ID":"RR-1","ROLE":"EOM(x)","STATUS":"PROVISIONAL"},1,1]
["EOM",{"EQUATION":"D(x, t) = v","ID":"RR-1","ROLE":5,"STATUS":"PROVISIONAL"},1,1]
["EOM",{"EQUATION":"D(x, t) = v","ID":"RR-4","ROLE":"EOM(x)","STATUS":"HELD"},1,1]
["EOM",{"EQUATION":"a = k","ID":"RR-1","ROLE":"CONSTRAINT","STATUS":"PROVISIONAL"},1,1]
["EOM",{"EQUATION":"b = L_2","ID":"RR-1","ROLE":"CONSTRAINT","STATUS":"PROVISIONAL"},1,1]
["EOM",{"EQUATION":"k_s = m * k_s / m","ID":"RR-10","ROLE":"DEFINITION","STATUS":"PROVISIONAL"},1,1]
["EOM",{"EQUATION":"m * D(v, t) = -k_s * g","ID":"RR-1","ROLE":"EOM(v)","STATUS":"HELD"},1,1]
["EOM",{"EQUATION":"m * D(v, t) = -k_s * x","ID":"RR-1","ROLE":"EOM(v)","STATUS":"HELD"},1,1]
["EOM",{"EQUATION":"m * D(v, t) = -k_s * x","ID":"RR-1","ROLE":"EOM(v)","STATUS":"PROVISIONAL"},7,7]
["EOM",{"EQUATION":"m * D(v, t) = -k_s * x","ID":"RR-1","ROLE":"EOM(v)","STATUS":"REFUTED"},1,1]
["EOM",{"EQUATION":"m * D(v, t) = -k_s * x","ID":"RR-1","ROLE":"EOM(v)","STATUS":"STRUCK"},1,1]
["EOM",{"EQUATION":"m * D(v, t) = -k_s * x","ID":"RR-1","ROLE":"EOM(v)","STATUS":"VOID"},1,1]
["EOM",{"EQUATION":"m * D(v, t) = -k_s * x","ID":"RR-2","ROLE":"INVARIANT","STATUS":"PROVISIONAL"},1,1]
["EOM",{"EQUATION":"m * D(v, t) = -k_s * x","ID":"RR-2","STATUS":"PROVISIONAL"},1,1]
["EOM",{"EQUATION":"m * D(v, t) = -k_s * x","ID":"RR-3","ROLE":"EOM(v)","STATUS":"ESTABLISHED"},1,1]
["EOM",{"EQUATION":"m * D(v, t) = -k_s * x","ID":"RR-9","ROLE":"EOM(v)","STATUS":"PROVISIONAL"},1,1]
["EOM",{"EQUATION":"x = x_max","ID":"RR-7","ROLE":"CONSTRAINT","STATUS":"PROVISIONAL"},1,1]
["EOM",{"EQUATION":"x = x_max","ID":"RR-7","STATUS":"PROVISIONAL"},1,1]
["EOM",{"EQUATION":"x_max = x_max","ID":"AB-3","ROLE":"CONSTITUTIVE","STATUS":"PROVISIONAL"},1,1]
["EOM",{"EQUATION":5,"ID":"RR-1","ROLE":"EOM(v)","STATUS":"PROVISIONAL"},1,1]
["EOM",{"ID":"-1","STATUS":"PROVISIONAL"},1,1]
["EOM",{"ID":"R R-1","STATUS":"PROVISIONAL"},1,1]
["EOM",{"ID":"RR","STATUS":"PROVISIONAL"},1,1]
["EOM",{"ID":"RR-0","STATUS":"PROVISIONAL"},1,1]
["EOM",{"ID":"RR-01","STATUS":"PROVISIONAL"},1,1]
["EOM",{"ID":"RR-1","STATUS":""},1,1]
["EOM",{"ID":"RR-1","STATUS":"HELD"},1,1]
["EOM",{"ID":"RR-1","STATUS":"PROVISIONAL"},1,1]
["EOM",{"ID":"RR-1","STATUS":"held"},1,1]
["EOM",{"ID":"RR-1","STATUS":1},1,1]
["EOM",{"ID":"RR-1"},1,1]
["EOM",{"ID":"RR-1a","STATUS":"PROVISIONAL"},1,1]
["EOM",{"ID":"RR-2","ROLE":"EOM(v)","STATUS":"PROVISIONAL"},1,1]
["EOM",{"ID":"RR-2","STATUS":"held"},1,1]
["EOM",{"ID":"RR-BIB1","STATUS":"PROVISIONAL"},1,1]
["EOM",{"ID":1,"STATUS":"PROVISIONAL"},1,1]
["EOM",{"STATUS":"PROVISIONAL"},1,1]
["HOLD",{"assumptions":["A-1","TFK-A"],"author":"other","block_id":"B9","cites":[],"id":"RR-8","kind":"RESULT","status":"PROVISIONAL"},1,1]
["HOLD",{"assumptions":["TFK-A"],"author":"other","block_id":"B9","cites":[],"id":"RR-9","kind":"RESULT","status":"PROVISIONAL"},1,1]
["HOLD",{"assumptions":[],"author":"TPX","block_id":"B3","cites":["RR-1"],"id":"CO-2","kind":"CORROBORATION","status":"PROVISIONAL","supplied_by":"acct"},1,1]
["HOLD",{"assumptions":[],"author":"acct","block_id":"B1","cites":["RR-1"],"id":"CO-3","kind":"CORROBORATION","status":"PROVISIONAL"},1,1]
["HOLD",{"assumptions":[],"author":"acct","block_id":"B1","cites":[],"id":"RR-1","kind":"RESULT","status":"PROVISIONAL"},25,55]
["HOLD",{"assumptions":[],"author":"acct","block_id":"B2","cites":"RR-2","id":"RR-1","kind":"RESULT","status":"PROVISIONAL"},1,1]
["HOLD",{"assumptions":[],"author":"acct","block_id":"B2","cites":["RR-2"],"id":"RR-1","kind":"RESULT","status":"PROVISIONAL"},1,1]
["HOLD",{"assumptions":[],"author":"acct","block_id":"B2","cites":["RR-2\u200b"],"id":"RR-1","kind":"RESULT","status":"PROVISIONAL"},1,1]
["HOLD",{"assumptions":[],"author":"acct","block_id":"B2","cites":[],"id":"A-1","kind":"ASSUMPTION","status":"PROVISIONAL"},1,1]
["HOLD",{"assumptions":[],"author":"acct","block_id":"B2","cites":[],"id":"RR-1","kind":"RESULT","status":"HELD"},1,1]
["HOLD",{"assumptions":[],"author":"acct","block_id":"B2","cites":[],"id":"RR-1","kind":"RESULT","status":"PROVISIONAL","vetted_by":5},1,1]
["HOLD",{"assumptions":[],"author":"acct","block_id":"B2","cites":[],"id":"RR-1","kind":"RESULT","status":"PROVISIONAL"},1,1]
["HOLD",{"assumptions":[],"author":"acct","block_id":"B2","cites":[],"id":"RR-10","kind":"RESULT","status":"PROVISIONAL"},1,1]
["HOLD",{"assumptions":[],"author":"acct","block_id":"B2","cites":[],"id":"RR-2","kind":"RESULT","status":"ESTABLISHED"},5,7]
["HOLD",{"assumptions":[],"author":"acct","block_id":"B2","cites":[],"id":"RR-2","kind":"RESULT","status":"HELD"},20,48]
["HOLD",{"assumptions":[],"author":"acct","block_id":"B2","cites":[],"id":"RR-2","kind":"RESULT","status":"PROVISIONAL"},1,1]
["HOLD",{"assumptions":[],"author":"acct","block_id":"B2","cites":[],"id":"RR-2","kind":"RESULT","status":"REFUTED"},1,1]
["HOLD",{"assumptions":[],"author":"acct","block_id":"B2","cites":{},"id":"RR-2","kind":"RESULT","status":"ESTABLISHED"},0,1]
["HOLD",{"assumptions":[],"author":"acct","block_id":"B3","cites":["RR-1"],"id":"CO-1","kind":"CORROBORATION","status":"PROVISIONAL"},1,1]
["HOLD",{"assumptions":[],"author":"acct","block_id":"B3","cites":[],"id":"RR-1","kind":"RESULT","status":"PROVISIONAL"},1,1]
["HOLD",{"assumptions":[],"author":"acct","block_id":"B4","cites":["RR-3"],"id":"RR-4","kind":"RESULT","status":"HELD"},20,48]
["HOLD",{"assumptions":[],"author":"acct","block_id":"B4","cites":["RR-3"],"id":"RR-4","kind":"RESULT","status":"PROVISIONAL"},5,7]
["HOLD",{"assumptions":[],"author":"co","block_id":"B3","cites":[],"id":"RR-3","kind":"RESULT","status":"PROVISIONAL","vetted_by":"acct"},1,1]
["HOLD",{"assumptions":[],"author":"co","block_id":"B3","cites":[],"id":"RR-4","kind":"RESULT","status":"PROVISIONAL","vetted_by":"lead2"},1,1]
["HOLD",{"assumptions":[],"author":"co","block_id":"B7","cites":[],"id":"RR-1","kind":"RESULT","status":"PROVISIONAL","vetted_by":"acct","vetted_in":"B3"},1,1]
["HOLD",{"assumptions":[],"author":"co","block_id":"B7","cites":[],"id":"RR-2","kind":"RESULT","status":"PROVISIONAL","vetted_by":"acct","vetted_in":"B8"},1,1]
["HOLD",{"assumptions":[],"author":"other","block_id":"B3","cites":["RR-1"],"id":"CO-4","kind":"CORROBORATION","status":"PROVISIONAL"},1,1]
["HOLD",{"assumptions":[],"author":"other","block_id":"B3","cites":[],"id":"RR-3","kind":"RESULT","status":"PROVISIONAL"},25,55]
["HOLD",{"assumptions":[],"author":"other","block_id":"B9","cites":["RR-1"],"id":"RR-2","kind":"RESULT","status":"PROVISIONAL"},1,1]
["HOLD",{"assumptions":[],"author":"other","block_id":"B9","cites":["RR-1"],"id":"RR-5","kind":"RESULT","status":"PROVISIONAL"},1,1]
["HOLD",{"assumptions":[],"author":"other","block_id":"B9","cites":["RR-1"],"id":"RR-7","kind":"RESULT","status":"PROVISIONAL"},24,54]
["HOLD",{"assumptions":[],"author":"other","block_id":"B9","cites":["RR-10"],"id":"RR-1","kind":"RESULT","status":"PROVISIONAL"},1,1]
["HOLD",{"assumptions":[],"author":"other","block_id":"B9","cites":["RR-2"],"id":"RR-3","kind":"RESULT","status":"ESTABLISHED"},1,1]
["HOLD",{"assumptions":[],"author":"other","block_id":"B9","cites":["RR-2"],"id":"RR-5","kind":"RESULT","status":"HELD"},19,47]
["HOLD",{"assumptions":[],"author":"other","block_id":"B9","cites":["RR-2"],"id":"RR-5","kind":"RESULT","status":"PROVISIONAL"},5,7]
["HOLD",{"assumptions":[],"author":"other","block_id":"B9","cites":["RR-3"],"id":"RR-3","kind":"RESULT","status":"PROVISIONAL"},1,1]
["HOLD",{"assumptions":[],"author":"other","block_id":"B9","cites":["RR-5"],"id":"RR-6","kind":"RESULT","status":"HELD"},19,47]
["HOLD",{"assumptions":[],"author":"other","block_id":"B9","cites":["RR-5"],"id":"RR-6","kind":"RESULT","status":"PROVISIONAL"},5,7]
["HOLD",{"assumptions":[],"author":"other","block_id":"B9","cites":[],"id":"RR-1","kind":"RESULT","status":"PROVISIONAL"},1,1]
["HOLD",{"author":"acct","block_id":"B2","id":"RR-1","kind":"RESULT"},1,1]
["LITERATURE",{"id":"RR-1","literature":["RR-BIB1","RR-BIB1"],"status":"PROVISIONAL"},1,1]
["LITERATURE",{"id":"RR-1","literature":["RR-BIB1","RR-BIB3"],"status":"PROVISIONAL"},7,7]
["LITERATURE",{"id":"RR-1","literature":["RR-BIB9"],"status":"PROVISIONAL"},1,1]
["LITERATURE",{"id":"RR-1","literature":[],"status":"PROVISIONAL"},2,2]
["LITERATURE",{"id":"RR-1","literature":[]},1,1]
["LITERATURE",{"id":"RR-10","literature":["RR-BIB5","RR-BIB2"],"status":"ESTABLISHED"},8,8]
["LITERATURE",{"id":"RR-2","literature":["RR-BIB2"],"status":"STRUCK"},7,7]
["LITERATURE",{"id":"RR-3","literature":["RR-BIB5"],"status":"HELD"},7,7]
["LITERATURE",{"id":"RR-4","literature":["RR-BIB1"],"status":"REFUTED"},7,7]
["LITERATURE",{"id":"RR-5","literature":["RR-BIB3"],"status":"PROVISIONAL"},7,7]
["LITERATURE",{"id":"RR-6","literature":[],"status":"PROVISIONAL"},7,7]
["LITERATURE",{"id":"RR-7","literature":["RR-BIB4"],"status":"PROVISIONAL"},8,8]
["PROBE_L",{"finding":{"type":"DECIMAL","value":"-0"}},1,1]
["PROBE_L",{"finding":{"type":"DECIMAL","value":"-5e-2"}},2,2]
["PROBE_L",{"finding":{"type":"DECIMAL","value":"0"}},3,3]
["PROBE_L",{"finding":{"type":"DECIMAL","value":"05"}},1,1]
["PROBE_L",{"finding":{"type":"DECIMAL","value":"1500"}},1,1]
["PROBE_L",{"finding":{"type":"DECIMAL","value":"15e2"}},4,4]
["PROBE_L",{"finding":{"type":"DECIMAL","value":"16e2"}},1,1]
["PROBE_L",{"finding":{"type":"DECIMAL","value":"5"}},3,3]
["PROBE_L",{"finding":{"type":"DECIMAL","value":"5e0"}},1,1]
["PROBE_L",{"finding":{"type":"PROSE","value":"5"}},2,2]
["PROBE_L",{"finding":{"type":"TEXT","value":"5"}},1,1]
["PROBE_L",{"finding":{"type":"TEXT","value":"a\nb"}},1,1]
["PROBE_L",{"finding":{"type":"TEXT","value":"a\r\nb"}},1,1]
["PROBE_L",{"finding":{"type":"TEXT","value":"a|b\nc"}},2,2]
["PROBE_L",{"finding":{"type":"TEXT","value":"caf\u00e9"}},3,3]
["PROBE_L",{"finding":{"type":"TEXT","value":"cafe\u0301"}},1,1]
["PROBE_L",{"finding":{"type":"TEXT","value":"x = 1"}},1,1]
["PROBE_L",{"finding":{"type":"TEXT","value":"x=1"}},1,1]
["PROBE_LOAD",{"assumptions":["TFK-1","b"],"cites":[],"standing":true},1,1]
["PROBE_LOAD",{"assumptions":["c"],"cites":[],"standing":true},4,4]
["PROBE_LOAD",{"assumptions":["n0"],"cites":["n0"],"standing":false},1,1]
["PROBE_LOAD",{"assumptions":["n0"],"cites":["n1"],"standing":false},1,1]
["PROBE_LOAD",{"assumptions":["n0"],"cites":["n2"],"standing":false},1,1]
["PROBE_LOAD",{"assumptions":["n0"],"cites":["n5"],"standing":false},1,1]
["PROBE_LOAD",{"assumptions":["n0"],"cites":["n6"],"standing":false},1,1]
["PROBE_LOAD",{"assumptions":["n0"],"cites":["n7"],"standing":false},1,1]
["PROBE_LOAD",{"assumptions":["n1"],"cites":["n0"],"standing":true},1,1]
["PROBE_LOAD",{"assumptions":["n1"],"cites":["n1"],"standing":true},1,1]
["PROBE_LOAD",{"assumptions":["n1"],"cites":["n2"],"standing":true},1,1]
["PROBE_LOAD",{"assumptions":["n1"],"cites":["n3"],"standing":true},1,1]
["PROBE_LOAD",{"assumptions":["n1"],"cites":["n4"],"standing":true},1,1]
["PROBE_LOAD",{"assumptions":["n1"],"cites":["n5"],"standing":true},1,1]
["PROBE_LOAD",{"assumptions":["n2"],"cites":["n0"],"standing":false},1,1]
["PROBE_LOAD",{"assumptions":["n2"],"cites":["n3"],"standing":false},1,1]
["PROBE_LOAD",{"assumptions":["n2"],"cites":["n4"],"standing":false},1,1]
["PROBE_LOAD",{"assumptions":["n2"],"cites":["n5"],"standing":false},1,1]
["PROBE_LOAD",{"assumptions":["n2"],"cites":["n6"],"standing":false},1,1]
["PROBE_LOAD",{"assumptions":["n2"],"cites":["n7"],"standing":false},1,1]
["PROBE_LOAD",{"assumptions":["n3"],"cites":["n0"],"standing":true},1,1]
["PROBE_LOAD",{"assumptions":["n3"],"cites":["n1"],"standing":true},1,1]
["PROBE_LOAD",{"assumptions":["n3"],"cites":["n2"],"standing":true},1,1]
["PROBE_LOAD",{"assumptions":["n3"],"cites":["n3"],"standing":true},1,1]
["PROBE_LOAD",{"assumptions":["n3"],"cites":["n6"],"standing":true},1,1]
["PROBE_LOAD",{"assumptions":["n3"],"cites":["n7"],"standing":true},1,1]
["PROBE_LOAD",{"assumptions":["n4"],"cites":["n1"],"standing":true},1,1]
["PROBE_LOAD",{"assumptions":["n4"],"cites":["n2"],"standing":true},1,1]
["PROBE_LOAD",{"assumptions":["n4"],"cites":["n3"],"standing":true},1,1]
["PROBE_LOAD",{"assumptions":["n4"],"cites":["n4"],"standing":true},1,1]
["PROBE_LOAD",{"assumptions":["n4"],"cites":["n5"],"standing":true},1,1]
["PROBE_LOAD",{"assumptions":["n4"],"cites":["n6"],"standing":true},1,1]
["PROBE_LOAD",{"assumptions":["n5"],"cites":["n0"],"standing":false},1,1]
["PROBE_LOAD",{"assumptions":["n5"],"cites":["n1"],"standing":false},1,1]
["PROBE_LOAD",{"assumptions":["n5"],"cites":["n4"],"standing":false},1,1]
["PROBE_LOAD",{"assumptions":["n5"],"cites":["n5"],"standing":false},1,1]
["PROBE_LOAD",{"assumptions":["n5"],"cites":["n6"],"standing":false},1,1]
["PROBE_LOAD",{"assumptions":["n5"],"cites":["n7"],"standing":false},1,1]
["PROBE_LOAD",{"assumptions":["n6"],"cites":["n0"],"standing":true},1,1]
["PROBE_LOAD",{"assumptions":["n6"],"cites":["n1"],"standing":true},1,1]
["PROBE_LOAD",{"assumptions":["n6"],"cites":["n2"],"standing":true},1,1]
["PROBE_LOAD",{"assumptions":["n6"],"cites":["n3"],"standing":true},1,1]
["PROBE_LOAD",{"assumptions":["n6"],"cites":["n4"],"standing":true},1,1]
["PROBE_LOAD",{"assumptions":["n6"],"cites":["n7"],"standing":true},1,1]
["PROBE_LOAD",{"assumptions":["n7"],"cites":["n2"],"standing":true},1,1]
["PROBE_LOAD",{"assumptions":["n7"],"cites":["n3"],"standing":true},1,1]
["PROBE_LOAD",{"assumptions":["n7"],"cites":["n4"],"standing":true},1,1]
["PROBE_LOAD",{"assumptions":["n7"],"cites":["n5"],"standing":true},1,1]
["PROBE_LOAD",{"assumptions":["n7"],"cites":["n6"],"standing":true},1,1]
["PROBE_LOAD",{"assumptions":["n7"],"cites":["n7"],"standing":true},1,1]
["PROBE_LOAD",{"assumptions":[],"cites":"b","standing":true},1,1]
["PROBE_LOAD",{"assumptions":[],"cites":[""],"standing":true},1,1]
["PROBE_LOAD",{"assumptions":[],"cites":["a"],"standing":true},7,7]
["PROBE_LOAD",{"assumptions":[],"cites":["a|b"],"standing":true},1,1]
["PROBE_LOAD",{"assumptions":[],"cites":["b","c"],"standing":true},1,1]
["PROBE_LOAD",{"assumptions":[],"cites":["b"],"standing":false},1,1]
["PROBE_LOAD",{"assumptions":[],"cites":["b"],"standing":true},5,5]
["PROBE_LOAD",{"assumptions":[],"cites":["c"],"standing":false},4,4]
["PROBE_LOAD",{"assumptions":[],"cites":["d"],"standing":true},2,2]
["PROBE_LOAD",{"assumptions":[],"cites":["r1"],"standing":true},1,1]
["PROBE_LOAD",{"assumptions":[],"cites":["r2"],"standing":true},1,1]
["PROBE_LOAD",{"assumptions":[],"cites":["r3"],"standing":true},1,1]
["PROBE_LOAD",{"assumptions":[],"cites":["r4"],"standing":true},1,1]
["PROBE_LOAD",{"assumptions":[],"cites":["r5"],"standing":true},1,1]
["PROBE_LOAD",{"assumptions":[],"cites":["x"],"standing":true},3,3]
["PROBE_LOAD",{"assumptions":[],"cites":[],"standing":1},1,1]
["PROBE_LOAD",{"assumptions":[],"cites":[],"standing":true},14,14]
["PROBE_LOAD",{"cites":[]},1,1]
["PROBE_M",{"finding":{"type":"TEXT","value":"5"}},2,2]
["PROBE_M",{"finding":{"type":"TEXT","value":"x"}},1,1]
["PROBE_M",{"u":0.0,"unit":"m","x":1.0},1,1]
["PROBE_M",{"u":0.05,"unit":"m","x":1.05},1,1]
["PROBE_M",{"u":0.1,"unit":"m","x":1.0},19,19]
["PROBE_M",{"u":0.1,"unit":"m","x":1.15},1,1]
["PROBE_M",{"u":0.1,"unit":"m","x":1.3},1,1]
["PROBE_M",{"u":0.1,"unit":"m","x":1.4},1,1]
["PROBE_M",{"u":0.1,"unit":"m","x":1.5},3,3]
["PROBE_M",{"u":0.1,"unit":"m|s","x":1.0},2,2]
["PROBE_M",{"u":0.1000001,"unit":"m","x":1.0},1,1]
["PROBE_M",{"u":0.19,"unit":"m","x":1.05},1,1]
["PROBE_M",{"u":0.2,"unit":"m","x":1.15},1,1]
["PROBE_M",{"u":0.5,"unit":"m","x":-2.0},1,1]
["PROBE_M",{"u":0.5,"unit":"m","x":-2.5},1,1]
["PROBE_M",{"u":10.0,"unit":"cm","x":100.0},1,1]
["PROBE_M",{"u":3.0,"unit":"m","x":0.0},1,1]
["PROBE_M",{"u":4.0,"unit":"m","x":10.0},1,1]
["STRIKE",{"assumptions":["a1","a3"],"cites":["A","B"],"steps":1},4,4]
["STRIKE",{"assumptions":["a1"],"cites":[],"steps":2},4,4]
["STRIKE",{"assumptions":["a2"],"cites":["A"],"steps":3},4,4]
["SUITE",{"assumptions":["A1","A2"],"cites":[],"domain":"MAIN","regime":"L","sr1_fail":false,"steps":1},46,52]
["SUITE",{"assumptions":["A1"],"cites":[],"domain":"MAIN","regime":"L","sr1_fail":false,"steps":3},46,52]
["SUITE",{"assumptions":["A3"],"cites":[],"domain":"LIM","regime":"L","sr1_fail":false,"steps":2},46,52]
["SUITE",{"assumptions":["A4"],"cites":[],"domain":"OTHER","regime":"M","sr1_fail":false,"steps":2},46,52]
["SUITE",{"assumptions":[],"cites":[],"domain":"MAIN","regime":"L","sr1_fail":false,"steps":2},46,52]
["SUITE",{"assumptions":[],"cites":[],"domain":"MAIN","regime":"L","sr1_fail":true,"steps":1},46,52]
["SUITE",{"assumptions":[],"cites":[],"domain":"MAIN","regime":"M","sr1_fail":false,"steps":1},46,52]
"""


def main():
    rows = [json.loads(ln) for ln in RECORDS.split("\n") if ln.strip()]
    n10 = sum(r[2] for r in rows)
    n11 = sum(r[3] for r in rows)
    assert (len(rows), n10, n11) == (213, 820, 1073), (len(rows), n10, n11)
    cases = []
    counts = {"lossless": [0, 0], "whole": [0, 0]}
    for i, (view, rec, a, b) in enumerate(rows, 1):
        c, x = inverse(view, rec)
        shape = {k: v for k, v in rec.items() if k not in x}
        kind = "whole" if not c else "lossless"
        counts[kind][0] += a
        counts[kind][1] += b
        cases.append({"name": "RT%03d %s %s (increment 10 x%d, increment 11 x%d)" % (i, view, kind, a, b),
                      "fn": "record_view", "args": {"record": c, "view": view, "grade": None},
                      "expected": cj(["OK", shape]), "harness": x})
    assert counts == {"lossless": [815, 1068], "whole": [5, 5]}, counts
    out = {"corpus": "record_view", "version": CORPUS_VERSION,
           "spec": "tpm_record_schema 0.3.0, 10.5 and 14.3",
           "note": ("the round trip over agent RC's 820 pinned fixture records (increment 10: "
                    "815 lossless, 5 carried whole) and increment 11's 1073 (1068, 5), 213 "
                    "distinct; expected: the module record less the harness extras"),
           "cases": cases}
    with open(os.path.join(HERE, "vectors", "record_view_corpus.json"), "w", encoding="utf-8",
              newline="\n") as f:
        json.dump(out, f, indent=1, sort_keys=True, ensure_ascii=True)
        f.write("\n")
    print("wrote %d record_view cases (increment 10: %d records, increment 11: %d)" % (len(cases), n10, n11))


if __name__ == "__main__":
    main()
# END OF ARTIFACT --- gen_record_view_corpus.py 0.1.0
# If this line is absent, the payload arrived truncated.