import json
raw=json.load(open("data/rawapi_fcf.json")); et=json.load(open("data/edgartools_fcf.json"))
Q=raw["quarters"]; order=raw["order"]
print(f"{'Company':<10} {'Quarter':<9} {'RawAPI OCF':>12} {'Edgar OCF':>12} {'d':>7} | {'RawAPI Cap':>12} {'Edgar Cap':>12} {'d':>7}")
print("-"*100)
mis=0; miss=0
for c in order:
    for q in Q:
        r=raw["rows"][c][q]; e=et["result"][c][q]
        eo = None if e["ocf"] is None else round(e["ocf"]/1e6)
        ec = None if e["capex"] is None else round(abs(e["capex"])/1e6)
        do = "n/a" if eo is None else f"{eo-r['ocf']:+d}"
        dc = "n/a" if ec is None else f"{ec-r['capex']:+d}"
        flag=""
        if eo is None or ec is None: miss+=1; flag=" <-- MISSING"
        elif eo!=r["ocf"] or ec!=r["capex"]: mis+=1; flag=" <-- DIFF"
        print(f"{c:<10} {q:<9} {r['ocf']:>12,} {str(eo):>12} {do:>7} | {r['capex']:>12,} {str(ec):>12} {dc:>7}{flag}")
print("-"*100)
print(f"cells compared: {len(order)*len(Q)*2} | mismatches: {mis} | missing from edgartools: {miss}")
