use uor_addr::json::address;
fn main() {
let pairs: &[(&str, &[u8], &[u8])] = &[
("integer vs string", b"42", br#""42""#),
("null vs false", b"null", b"false"),
("empty object vs empty array", b"{}", b"[]"),
(
"number array vs string array",
b"[1,2,3]",
br#"["1","2","3"]"#,
),
("object vs single-key object string", b"{}", br#""{}""#),
];
println!("uor-addr — typed distinction in κ-labels\n");
for (label, a, b) in pairs {
let addr_a = address(a).expect("valid").address;
let addr_b = address(b).expect("valid").address;
let same = addr_a == addr_b;
println!(" case: {label}");
println!(" {:>25} → {}", std::str::from_utf8(a).unwrap(), addr_a);
println!(" {:>25} → {}", std::str::from_utf8(b).unwrap(), addr_b);
println!(" distinct: {}\n", if same { "NO (BUG)" } else { "yes" });
assert!(!same, "typed distinction broken for {label}");
}
println!("OK — typed cases yield distinct κ-labels by structure.");
}