#!/usr/bin/env python3 """Diff old vs new sorter plans by source path -> target.""" import json import sys changed = 0 same = 0 examples = [] for n in (1, 2, 3): old = {p["source"]: p for p in json.load(open(f"/tmp/plan{n}.json"))} new = {p["source"]: p for p in json.load(open(f"/tmp/plan{n}b.json"))} for src, np in new.items(): op = old.get(src) if not op: continue if op["target"] != np["target"] or op["kind"] != np["kind"]: changed += 1 if len(examples) < 40: examples.append((n, op, np)) else: same += 1 print(f"same: {same} changed: {changed}") for n, op, np in examples: print(f"\n[{n}] {op['name']} (score {op['score']} -> {np['score']})") print(f" old: {op['target']}") print(f" new: {np['target']}")