paulistrings 0.1.2

Classical simulation of quantum circuits in the Pauli basis, parallel across threads, NUMA domains, MPI ranks and GPUs
Documentation
use super::*;

static COUNT: Knob<usize> =
    Knob::new("PAULISTRINGS_TEST_KNOB_NEVER_SET", "paulistrings::propagate", parse_positive, || 8);

#[test]
fn unset_empty_and_unparsable_values_fall_back_to_the_default() {
    for raw in [None, Some(""), Some("  "), Some("0"), Some("-2"), Some("many")] {
        assert_eq!(COUNT.resolve(raw), 8, "{raw:?}");
    }
}

#[test]
fn a_valid_value_is_parsed_after_trimming() {
    assert_eq!(COUNT.resolve(Some("64")), 64);
    assert_eq!(COUNT.resolve(Some(" 3 ")), 3);
}

#[test]
fn get_reads_once_and_caches() {
    let first: *const usize = COUNT.get();
    assert_eq!(*COUNT.get(), 8);
    assert!(std::ptr::eq(first, COUNT.get()));
}