use uor_foundation::HostBounds;
#[derive(Debug, Default, Clone, Copy, PartialEq, Eq, Hash)]
pub struct AddrBounds;
impl HostBounds for AddrBounds {
const FINGERPRINT_MIN_BYTES: usize = 32;
const FINGERPRINT_MAX_BYTES: usize = 32;
const TRACE_MAX_EVENTS: usize = 64;
const WITT_LEVEL_MAX_BITS: u32 = 32;
const TERM_VALUE_MAX_BYTES: usize = 4096;
const AXIS_OUTPUT_BYTES_MAX: usize = 4096;
const FOLD_UNROLL_THRESHOLD: usize = 8;
const BETTI_DIMENSION_MAX: usize = 71;
const NERVE_CONSTRAINTS_MAX: usize = 128;
const NERVE_SITES_MAX: usize = 71;
const JACOBIAN_SITES_MAX: usize = 71;
const RECURSION_TRACE_DEPTH_MAX: usize = 16;
const OP_CHAIN_DEPTH_MAX: usize = 8;
const AFFINE_COEFFS_MAX: usize = 80;
const CONJUNCTION_TERMS_MAX: usize = 128;
const ROUTE_INPUT_BUFFER_BYTES: usize = 4096;
const ROUTE_OUTPUT_BUFFER_BYTES: usize = 4096;
const UNFOLD_ITERATIONS_MAX: usize = 256;
const NERVE_OUTPUT_BYTES_MAX: usize = 4096;
const CHAIN_COMPLEX_OUTPUT_BYTES_MAX: usize = 4096;
const HOMOLOGY_GROUPS_OUTPUT_BYTES_MAX: usize = 4096;
const COCHAIN_COMPLEX_OUTPUT_BYTES_MAX: usize = 4096;
const COHOMOLOGY_GROUPS_OUTPUT_BYTES_MAX: usize = 4096;
const POSTNIKOV_TOWER_OUTPUT_BYTES_MAX: usize = 4096;
const HOMOTOPY_GROUPS_OUTPUT_BYTES_MAX: usize = 4096;
const K_INVARIANTS_OUTPUT_BYTES_MAX: usize = 4096;
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn bounds_constants_match_addr_label_width() {
assert_eq!(<AddrBounds as HostBounds>::FINGERPRINT_MIN_BYTES, 32);
assert_eq!(<AddrBounds as HostBounds>::FINGERPRINT_MAX_BYTES, 32);
assert_eq!(<AddrBounds as HostBounds>::TRACE_MAX_EVENTS, 64);
assert_eq!(<AddrBounds as HostBounds>::WITT_LEVEL_MAX_BITS, 32);
assert_eq!(<AddrBounds as HostBounds>::NERVE_SITES_MAX, 71);
}
#[test]
fn psi_stage_output_ceilings_uniform() {
let v = <AddrBounds as HostBounds>::TERM_VALUE_MAX_BYTES;
assert_eq!(<AddrBounds as HostBounds>::NERVE_OUTPUT_BYTES_MAX, v);
assert_eq!(
<AddrBounds as HostBounds>::CHAIN_COMPLEX_OUTPUT_BYTES_MAX,
v
);
assert_eq!(
<AddrBounds as HostBounds>::HOMOLOGY_GROUPS_OUTPUT_BYTES_MAX,
v
);
assert_eq!(
<AddrBounds as HostBounds>::COCHAIN_COMPLEX_OUTPUT_BYTES_MAX,
v
);
assert_eq!(
<AddrBounds as HostBounds>::COHOMOLOGY_GROUPS_OUTPUT_BYTES_MAX,
v
);
assert_eq!(
<AddrBounds as HostBounds>::POSTNIKOV_TOWER_OUTPUT_BYTES_MAX,
v
);
assert_eq!(
<AddrBounds as HostBounds>::HOMOTOPY_GROUPS_OUTPUT_BYTES_MAX,
v
);
assert_eq!(<AddrBounds as HostBounds>::K_INVARIANTS_OUTPUT_BYTES_MAX, v);
}
}