#!/usr/bin/env python3
import json, sys

IDENTITY = ("referent", "population", "unit")

def gate(a, b):
    for field in IDENTITY:
        if a.get(field) != b.get(field):
            return {"status":"REFUSE", "field":field,
                    "expected":a.get(field), "received":b.get(field)}
    return {"status":"PASS", "identity":{f:a[f] for f in IDENTITY}}

def main():
    if len(sys.argv) != 3:
        raise SystemExit("usage: envelope_gate.py EXPECTED.json RECEIVED.json")
    with open(sys.argv[1]) as f: a=json.load(f)
    with open(sys.argv[2]) as f: b=json.load(f)
    print(json.dumps(gate(a,b), sort_keys=True))

if __name__ == '__main__': main()
