use super::{fold_origin_held, stake_lane_reserved_out};
#[test]
fn fold_origin_held_keeps_store_hit() {
assert_eq!(
fold_origin_held((true, Some(100)), Some(200)),
(true, Some(100))
);
assert_eq!(fold_origin_held((true, None), Some(200)), (true, None));
}
#[test]
fn fold_origin_held_promotes_origin_content() {
assert_eq!(
fold_origin_held((false, None), Some(4096)),
(true, Some(4096))
);
}
#[test]
fn fold_origin_held_absent_stays_false() {
assert_eq!(fold_origin_held((false, None), None), (false, None));
}
#[test]
fn no_reservation_never_reserves_out() {
assert!(!stake_lane_reserved_out(0, 256, 256, || false));
assert!(!stake_lane_reserved_out(0, 256, 0, || false));
}
#[test]
fn stake_lane_requester_never_reserved_out() {
assert!(!stake_lane_reserved_out(8, 256, 256, || true));
assert!(!stake_lane_reserved_out(8, 256, 255, || true));
}
#[test]
fn end_client_refused_at_reserved_ceiling() {
assert!(!stake_lane_reserved_out(8, 256, 247, || false));
assert!(stake_lane_reserved_out(8, 256, 248, || false));
assert!(stake_lane_reserved_out(8, 256, 256, || false));
}
#[test]
fn holds_disabled_is_not_a_reservation_refusal() {
assert!(!stake_lane_reserved_out(8, 0, 0, || false));
}
#[test]
fn reserving_full_budget_excludes_all_end_clients() {
assert!(stake_lane_reserved_out(256, 256, 0, || false));
assert!(stake_lane_reserved_out(512, 256, 0, || false));
}
#[test]
fn is_stake_lane_lookup_is_skipped_below_ceiling() {
let consulted = std::cell::Cell::new(false);
let probe = || {
consulted.set(true);
false
};
assert!(!stake_lane_reserved_out(0, 256, 256, probe));
assert!(!stake_lane_reserved_out(8, 0, 0, probe));
assert!(!stake_lane_reserved_out(8, 256, 247, probe));
assert!(!consulted.get(), "staker-set lookup ran below the ceiling");
assert!(stake_lane_reserved_out(8, 256, 248, probe));
assert!(consulted.get(), "staker-set lookup skipped at the ceiling");
}