1use conservation_checker::ConservationChecker;
2
3fn main() {
4 let mut checker = ConservationChecker::new();
5 checker.register("energy", 100.0, 5.0);
6
7 println!("Initial: energy = {}", checker.current_value("energy"));
8
9 checker.update("energy", 98.0);
10 checker.snapshot();
11 println!("After use: energy = {} (conserved: {})",
12 checker.current_value("energy"),
13 checker.is_conserved("energy"));
14
15 checker.update("energy", 90.0);
16 checker.snapshot();
17 println!("After heavy use: energy = {} (conserved: {})",
18 checker.current_value("energy"),
19 checker.is_conserved("energy"));
20 println!("Violations: {:?}", checker.violations());
21 println!("Phase: {}", checker.phase("energy"));
22 println!("Drift rate: {:.2}/snapshot", checker.drift_rate("energy"));
23}