use uor_foundation::enforcement::{ConstrainedTypeInput, Grounded, Validated};
use uor_foundation::pipeline::{run_parallel, ParallelDeclaration};
use uor_foundation_test_helpers::{validated_runtime, Fnv1aHasher16};
const DISJOINTNESS_WITNESS: &str = "https://uor.foundation/parallel/ParallelDisjointnessWitness";
fn main() {
static PARTITION_ABC: &[u32] = &[0, 0, 0, 1, 1, 1, 2, 2, 2];
static PARTITION_432: &[u32] = &[0, 0, 0, 0, 1, 1, 1, 2, 2];
let unit_abc: Validated<ParallelDeclaration> =
validated_runtime(ParallelDeclaration::new_with_partition::<
ConstrainedTypeInput,
>(PARTITION_ABC, DISJOINTNESS_WITNESS));
let unit_432: Validated<ParallelDeclaration> =
validated_runtime(ParallelDeclaration::new_with_partition::<
ConstrainedTypeInput,
>(PARTITION_432, DISJOINTNESS_WITNESS));
let g_abc: Grounded<ConstrainedTypeInput> =
run_parallel::<ConstrainedTypeInput, _, Fnv1aHasher16>(unit_abc).expect("3-3-3 admits");
let g_432: Grounded<ConstrainedTypeInput> =
run_parallel::<ConstrainedTypeInput, _, Fnv1aHasher16>(unit_432).expect("4-3-2 admits");
assert_ne!(
g_abc.content_fingerprint(),
g_432.content_fingerprint(),
"distinct partitions must yield distinct fingerprints"
);
println!("3-3-3 partition: unit_address={:?}", g_abc.unit_address());
println!("4-3-2 partition: unit_address={:?}", g_432.unit_address());
println!("Fingerprints differ → per-component fold is live.");
}