1use hybrid_phi::core::hybrid_phi_inverse;
5use hybrid_phi::quantized_memory::phi_quantized_encode;
6use hybrid_phi::phi_fs::PhiMemoryStore;
7use std::fs::{self, File};
8use std::io::Write;
9use std::path::Path;
10
11fn main() {
12 let n = 10;
13 let step = 0.01;
14 let values = [1.0, 2.0, 3.14, 42.0];
15 let name = "phi_shape";
16 let store = PhiMemoryStore::new(".phi_store");
17
18 let encoded: Vec<f64> = values.iter().map(|&w| phi_quantized_encode(w, n, step)).collect();
20 store.save(name, &encoded).expect("failed to save");
21
22 let metadata_path = Path::new(".phi_store").join(format!("{}.meta.txt", name));
24 let mut meta_file = File::create(&metadata_path).expect("failed to create metadata");
25 writeln!(meta_file, "n={}", n).unwrap();
26 writeln!(meta_file, "step={:.5}", step).unwrap();
27 writeln!(meta_file, "length={}", encoded.len()).unwrap();
28 writeln!(meta_file, "saved_at={:?}", chrono::Utc::now()).unwrap();
29
30 let entries = store.list().expect("failed to list");
32 println!("Stored φ-entries:");
33 for entry in entries {
34 println!("- {}", entry);
35 }
36
37 let loaded = store.load(name).expect("failed to load");
39 println!("\nDecoded values from '{}':", name);
40 for (i, &q) in loaded.iter().enumerate() {
41 let r = hybrid_phi_inverse(q, n);
42 println!(" index {}: quant = {:.6}, recon = {:.6}", i, q, r);
43 }
44
45 let _ = fs::remove_dir_all(".phi_store");
47}