Skip to content

Commit 1e307cf

Browse files
committed
remove remaining probabilistic tests
1 parent fe54937 commit 1e307cf

File tree

1 file changed

+13
-28
lines changed

1 file changed

+13
-28
lines changed

exercises/practice/robot-name/tests/robot_name.rs

Lines changed: 13 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
use std::collections::HashSet;
2-
31
use rand::SeedableRng as _;
42
use rand::rngs::SmallRng;
53
use robot_name::*;
@@ -28,15 +26,6 @@ fn name_should_match_expected_pattern() {
2826
assert_name_matches_pattern(robot.name());
2927
}
3028

31-
#[test]
32-
#[ignore]
33-
fn factory_prevents_name_collisions() {
34-
let mut factory = RobotFactory::new();
35-
let robot_1 = factory.new_robot(&mut deterministic_rng());
36-
let robot_2 = factory.new_robot(&mut deterministic_rng());
37-
assert_ne!(robot_1.name(), robot_2.name());
38-
}
39-
4029
#[test]
4130
#[ignore]
4231
fn robot_name_depends_on_rng() {
@@ -56,13 +45,11 @@ fn robot_name_only_depends_on_rng() {
5645

5746
#[test]
5847
#[ignore]
59-
fn many_different_robots_have_different_names() {
60-
// In 3,529 random robot names, there is ~99.99% chance of a name collision
61-
let mut rng = deterministic_rng();
48+
fn factory_prevents_name_collisions() {
6249
let mut factory = RobotFactory::new();
63-
let robots: Vec<_> = (0..3529).map(|_| factory.new_robot(&mut rng)).collect();
64-
let mut set = HashSet::new();
65-
assert!(robots.iter().all(|robot| set.insert(robot.name())));
50+
let robot_1 = factory.new_robot(&mut deterministic_rng());
51+
let robot_2 = factory.new_robot(&mut deterministic_rng());
52+
assert_ne!(robot_1.name(), robot_2.name());
6653
}
6754

6855
#[test]
@@ -91,19 +78,17 @@ fn new_name_is_different_from_old_name() {
9178
#[test]
9279
#[ignore]
9380
fn factory_prevents_name_collision_despite_reset() {
94-
// To keep the same probablity as the first test with many robots, we
95-
// generate 3,529 robots and reset their names, then generate another 3,529
96-
// robots and check if there are collisions across these two groups.
97-
let mut rng = deterministic_rng();
9881
let mut factory = RobotFactory::new();
99-
let mut reset_robots: Vec<_> = (0..3529).map(|_| factory.new_robot(&mut rng)).collect();
100-
for robot in &mut reset_robots {
101-
robot.reset(&mut rng);
102-
}
103-
let mut set = HashSet::new();
104-
assert!(reset_robots.iter().all(|robot| set.insert(robot.name())));
10582

106-
assert!((0..3529).all(|_| !set.contains(factory.new_robot(&mut rng).name())));
83+
let mut rng = deterministic_rng();
84+
let mut robot_1 = factory.new_robot(&mut rng);
85+
robot_1.reset(&mut rng);
86+
87+
let mut rng = deterministic_rng();
88+
let mut robot_2 = factory.new_robot(&mut rng);
89+
robot_2.reset(&mut rng);
90+
91+
assert_ne!(robot_1.name(), robot_2.name());
10792
}
10893

10994
#[test]

0 commit comments

Comments
 (0)