| | |
| | """ |
| | Run experiments on canonical corpus and generate summary statistics. |
| | """ |
| | import json |
| | import sys |
| | import os |
| |
|
| | |
| | os.environ['MPLBACKEND'] = 'Agg' |
| |
|
| | |
| | os.chdir(os.path.dirname(__file__)) |
| |
|
| | |
| | from src.test_harness import recursion_test, compression_sweep |
| |
|
| | |
| | signals = [ |
| | "This function must return an integer.", |
| | "The tenant shall not sublet the premises without written consent.", |
| | "You must wear a helmet while cycling.", |
| | "All passwords must be at least 8 characters long.", |
| | "The budget cannot exceed $5000." |
| | ] |
| |
|
| | results = {"recursion": [], "compression": []} |
| |
|
| | print("Running experiments on 5 signals...") |
| |
|
| | for i, signal in enumerate(signals, 1): |
| | print(f"\n[{i}/5] Testing: {signal[:50]}...") |
| | |
| | |
| | print(" - Running recursion test (depth=10)...") |
| | deltas = recursion_test(signal, depth=10) |
| | stability = 1.0 - deltas[-1] |
| | results["recursion"].append({ |
| | "signal": signal, |
| | "deltas": deltas, |
| | "final_stability": stability |
| | }) |
| | print(f" Stability after 10 iterations: {stability*100:.1f}%") |
| | |
| | |
| | print(" - Running compression sweep...") |
| | sigmas, fids = compression_sweep(signal) |
| | avg_fidelity = sum(fids) / len(fids) |
| | results["compression"].append({ |
| | "signal": signal, |
| | "avg_fidelity": avg_fidelity, |
| | "fidelities": fids |
| | }) |
| | print(f" Average fidelity: {avg_fidelity*100:.1f}%") |
| |
|
| | |
| | avg_recursion_stability = sum(r["final_stability"] for r in results["recursion"]) / len(results["recursion"]) |
| | avg_compression_fidelity = sum(r["avg_fidelity"] for r in results["compression"]) / len(results["compression"]) |
| |
|
| | print(f"\n{'='*60}") |
| | print(f"RESULTS (n=5 signals, 10 iterations each):") |
| | print(f"{'='*60}") |
| | print(f" Average commitment stability after 10 recursions: {avg_recursion_stability*100:.1f}%") |
| | print(f" Average compression fidelity: {avg_compression_fidelity*100:.1f}%") |
| | print(f"{'='*60}\n") |
| |
|
| | |
| | os.makedirs('outputs', exist_ok=True) |
| | with open('outputs/experiment_results.json', 'w') as f: |
| | json.dump({ |
| | "summary": { |
| | "n_signals": len(signals), |
| | "recursion_depth": 10, |
| | "avg_recursion_stability": avg_recursion_stability, |
| | "avg_compression_fidelity": avg_compression_fidelity |
| | }, |
| | "detailed_results": results |
| | }, f, indent=2) |
| | |
| | print("✓ Detailed results saved to: outputs/experiment_results.json") |