space_filling_evidence/
space_filling_evidence.rs1use sim_lib_numbers_stats::{LatinHypercubePlan, Scramble, SobolPlan, SweepPlan, UntestedRegion};
2
3fn main() {
4 let latin = LatinHypercubePlan {
5 dimensions: 3,
6 points: 8,
7 seed: 2026,
8 max_work: 21,
9 untested_regions: vec![],
10 }
11 .generate()
12 .expect("bounded Latin design");
13 let sobol = SobolPlan {
14 dimensions: 2,
15 points: 8,
16 skip: 4,
17 scramble: Scramble::DigitalShift,
18 seed: 2026,
19 max_work: 16,
20 untested_regions: vec![],
21 }
22 .generate()
23 .expect("reviewed Sobol design");
24 let covered = SweepPlan {
25 inject_lower_boundary: true,
26 inject_upper_boundary: true,
27 untested_regions: vec![UntestedRegion {
28 label: "unstable-corner".into(),
29 reason: "excluded by study protocol".into(),
30 }],
31 }
32 .apply(sobol);
33 println!(
34 "latin={} occupancy={:?} sampler={:?}",
35 latin.points.len(),
36 latin.coverage.stratum_occupancy,
37 latin.coverage.sampler
38 );
39 println!(
40 "sobol={} boundaries={:?} duplicates={:?} exclusions={:?}",
41 covered.points.len(),
42 covered.coverage.boundary_injections,
43 covered.coverage.duplicates,
44 covered.coverage.untested_regions
45 );
46}