diff --git a/crates/lox-library/src/tests.rs b/crates/lox-library/src/tests.rs index c541ea1..2ab2e44 100644 --- a/crates/lox-library/src/tests.rs +++ b/crates/lox-library/src/tests.rs @@ -1279,6 +1279,27 @@ fn stats_test_blockage_migration_70() { block_bridges(&mut th, 70, credentials); } +#[test] +fn stats_test_blockage_migration_75() { + let mut th = TestHarness::new_buckets(150, 150); + let mut credentials: Vec = Vec::new(); + for _ in 0..10000 { + let cred = th.open_invite().1 .0; + th.advance_days(30); + let (_, migcred) = th.trust_promotion(&cred); + let (_, cred1) = th.level0_migration(&cred, &migcred); + th.advance_days(14); + let (_, cred2) = th.level_up(&cred1); + let (_, (cred2a, invite)) = th.issue_invite(&cred2); + let (_, bob_cred) = th.redeem_invite(&invite); + th.advance_days(28); + let (_, _) = th.level_up(&bob_cred); + let (_, cred3) = th.level_up(&cred2a); + credentials.push(cred3); + } + + block_bridges(&mut th, 75, credentials); +} #[test] fn stats_test_blockage_migration_80() { @@ -1396,14 +1417,19 @@ fn stats_test_blockage_migration_100() { /// bucket list. fn block_bridges(th: &mut TestHarness, percentage: usize, credentials: Vec) { - let blockable_bridges = th.ba.bridge_table.buckets.len() - th.ba.bridge_table.spares.len(); - let to_block: usize = (blockable_bridges * percentage / 100).into(); + let blockable_num = th.ba.bridge_table.buckets.len() + - th.ba.bridge_table.spares.len() + - th.bdb.openinv_buckets.len(); + let blockable_range = th.ba.bridge_table.buckets.len() - th.ba.bridge_table.spares.len(); + let to_block: usize = (blockable_num * percentage / 100).into(); let mut block_index: HashSet = HashSet::new(); let mut rng = rand::thread_rng(); while block_index.len() <= to_block - 1 { - let rand_num = rng.gen_range(0, blockable_bridges); - block_index.insert(rand_num); + let rand_num = rng.gen_range(0, blockable_range); + if !th.bdb.openinv_buckets.contains(&(rand_num as u32)) { + block_index.insert(rand_num); + } } for index in block_index {