mirror of
https://github.com/kmc7468/cs220.git
synced 2025-12-12 21:08:45 +00:00
fix tests
This commit is contained in:
@@ -33,7 +33,7 @@ mod test {
|
|||||||
|
|
||||||
let it = || (1..=5).cycle().my_zip((1..=3).cycle()).map(|(x, y)| x * y);
|
let it = || (1..=5).cycle().my_zip((1..=3).cycle()).map(|(x, y)| x * y);
|
||||||
let take15 = vec![
|
let take15 = vec![
|
||||||
2, // 1 * 1,
|
1, // 1 * 1,
|
||||||
4, // 2 * 2,
|
4, // 2 * 2,
|
||||||
9, // 3 * 3,
|
9, // 3 * 3,
|
||||||
4, // 4 * 1,
|
4, // 4 * 1,
|
||||||
|
|||||||
@@ -24,8 +24,7 @@ mod test {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
fn can_every_husband_rescue_his_wife() -> bool {
|
||||||
fn can_every_husband_rescue_his_wife() {
|
|
||||||
// HINT: https://en.wikipedia.org/wiki/100_prisoners_problem
|
// HINT: https://en.wikipedia.org/wiki/100_prisoners_problem
|
||||||
const WIVES: usize = 100;
|
const WIVES: usize = 100;
|
||||||
|
|
||||||
@@ -37,7 +36,7 @@ mod test {
|
|||||||
rooms
|
rooms
|
||||||
});
|
});
|
||||||
|
|
||||||
assert!((0..WIVES).all(|his_wife| {
|
(0..WIVES).all(|his_wife| {
|
||||||
// A new husband steps into the labyrinth to rescue his wife...!
|
// A new husband steps into the labyrinth to rescue his wife...!
|
||||||
let husband = Box::new(Husband::seeking(his_wife /*👩*/));
|
let husband = Box::new(Husband::seeking(his_wife /*👩*/));
|
||||||
let strategy = Box::new(husband.has_devised_a_strategy());
|
let strategy = Box::new(husband.has_devised_a_strategy());
|
||||||
@@ -57,6 +56,18 @@ mod test {
|
|||||||
})
|
})
|
||||||
.is_some(/* The husband has successfully rescued his wife! 👫*/)
|
.is_some(/* The husband has successfully rescued his wife! 👫*/)
|
||||||
// or is_none(/* The unfortunate husband has encountered the Minotaur and... 🪓*/)
|
// or is_none(/* The unfortunate husband has encountered the Minotaur and... 🪓*/)
|
||||||
}));
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn main() {
|
||||||
|
let mut num_success = 0;
|
||||||
|
for _ in 0..10000 {
|
||||||
|
if can_every_husband_rescue_his_wife() {
|
||||||
|
num_success += 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
assert!(num_success > 3000)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,9 +9,9 @@ mod test_card {
|
|||||||
use std::thread;
|
use std::thread;
|
||||||
use std::time::Duration;
|
use std::time::Duration;
|
||||||
|
|
||||||
const NUM_CARDS: usize = 10_000;
|
const NUM_CARDS: usize = 10000;
|
||||||
const DURATION: u64 = 1;
|
const DURATION: u64 = 20;
|
||||||
const NUM_ENEMIES: usize = 100;
|
const NUM_ENEMIES: usize = 25;
|
||||||
|
|
||||||
#[derive(Clone, Debug)]
|
#[derive(Clone, Debug)]
|
||||||
struct Card {
|
struct Card {
|
||||||
@@ -104,7 +104,7 @@ mod test_card {
|
|||||||
let idx = init + (cnt % dist);
|
let idx = init + (cnt % dist);
|
||||||
match ground.get_card_color(idx) {
|
match ground.get_card_color(idx) {
|
||||||
Color::White => ground.flip_card(idx, Color::Blue),
|
Color::White => ground.flip_card(idx, Color::Blue),
|
||||||
Color::Blue => thread::sleep(Duration::from_micros(1)),
|
Color::Blue => thread::sleep(Duration::from_micros(10)),
|
||||||
};
|
};
|
||||||
cnt += 1;
|
cnt += 1;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user