Skip to content

Commit 3d22b5b

Browse files
committed
fix pathfinder tests
1 parent 70b9c88 commit 3d22b5b

File tree

1 file changed

+30
-64
lines changed

1 file changed

+30
-64
lines changed

azalea/src/pathfinder/mod.rs

Lines changed: 30 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -853,7 +853,11 @@ pub fn call_successors_fn(
853853

854854
#[cfg(test)]
855855
mod tests {
856-
use std::{collections::HashSet, sync::Arc};
856+
use std::{
857+
collections::HashSet,
858+
sync::Arc,
859+
time::{Duration, Instant},
860+
};
857861

858862
use azalea_core::position::{BlockPos, ChunkPos, Vec3};
859863
use azalea_world::{Chunk, ChunkStorage, PartialChunkStorage};
@@ -904,6 +908,22 @@ mod tests {
904908
simulation
905909
}
906910

911+
pub fn assert_simulation_reaches(simulation: &mut Simulation, ticks: usize, end_pos: BlockPos) {
912+
// wait until the bot starts moving
913+
let start_pos = simulation.position();
914+
let start_time = Instant::now();
915+
while simulation.position() == start_pos
916+
&& start_time.elapsed() < Duration::from_millis(500)
917+
{
918+
simulation.tick();
919+
std::thread::yield_now();
920+
}
921+
for _ in 0..ticks {
922+
simulation.tick();
923+
}
924+
assert_eq!(BlockPos::from(simulation.position()), end_pos,);
925+
}
926+
907927
#[test]
908928
fn test_simple_forward() {
909929
let mut partial_chunks = PartialChunkStorage::default();
@@ -913,13 +933,7 @@ mod tests {
913933
BlockPos::new(0, 71, 1),
914934
vec![BlockPos::new(0, 70, 0), BlockPos::new(0, 70, 1)],
915935
);
916-
for _ in 0..20 {
917-
simulation.tick();
918-
}
919-
assert_eq!(
920-
BlockPos::from(simulation.position()),
921-
BlockPos::new(0, 71, 1)
922-
);
936+
assert_simulation_reaches(&mut simulation, 20, BlockPos::new(0, 71, 1));
923937
}
924938

925939
#[test]
@@ -937,13 +951,7 @@ mod tests {
937951
BlockPos::new(2, 72, 1),
938952
],
939953
);
940-
for _ in 0..30 {
941-
simulation.tick();
942-
}
943-
assert_eq!(
944-
BlockPos::from(simulation.position()),
945-
BlockPos::new(2, 71, 2)
946-
);
954+
assert_simulation_reaches(&mut simulation, 30, BlockPos::new(2, 71, 2));
947955
}
948956

949957
#[test]
@@ -965,13 +973,7 @@ mod tests {
965973
BlockPos::new(5, 75, 0),
966974
],
967975
);
968-
for _ in 0..120 {
969-
simulation.tick();
970-
}
971-
assert_eq!(
972-
BlockPos::from(simulation.position()),
973-
BlockPos::new(5, 76, 0)
974-
);
976+
assert_simulation_reaches(&mut simulation, 120, BlockPos::new(5, 76, 0));
975977
}
976978

977979
#[test]
@@ -983,13 +985,7 @@ mod tests {
983985
BlockPos::new(0, 71, 3),
984986
vec![BlockPos::new(0, 70, 0), BlockPos::new(0, 70, 3)],
985987
);
986-
for _ in 0..40 {
987-
simulation.tick();
988-
}
989-
assert_eq!(
990-
BlockPos::from(simulation.position()),
991-
BlockPos::new(0, 71, 3)
992-
);
988+
assert_simulation_reaches(&mut simulation, 40, BlockPos::new(0, 71, 3));
993989
}
994990

995991
#[test]
@@ -1008,13 +1004,7 @@ mod tests {
10081004
BlockPos::new(3, 66, 4),
10091005
],
10101006
);
1011-
for _ in 0..100 {
1012-
simulation.tick();
1013-
}
1014-
assert_eq!(
1015-
BlockPos::from(simulation.position()),
1016-
BlockPos::new(3, 67, 4)
1017-
);
1007+
assert_simulation_reaches(&mut simulation, 100, BlockPos::new(3, 67, 4));
10181008
}
10191009

10201010
#[test]
@@ -1031,13 +1021,7 @@ mod tests {
10311021
BlockPos::new(0, 69, 5),
10321022
],
10331023
);
1034-
for _ in 0..40 {
1035-
simulation.tick();
1036-
}
1037-
assert_eq!(
1038-
BlockPos::from(simulation.position()),
1039-
BlockPos::new(0, 70, 5)
1040-
);
1024+
assert_simulation_reaches(&mut simulation, 40, BlockPos::new(0, 70, 5));
10411025
}
10421026

10431027
#[test]
@@ -1054,13 +1038,7 @@ mod tests {
10541038
BlockPos::new(0, 67, 3),
10551039
],
10561040
);
1057-
for _ in 0..60 {
1058-
simulation.tick();
1059-
}
1060-
assert_eq!(
1061-
BlockPos::from(simulation.position()),
1062-
BlockPos::new(0, 68, 3)
1063-
);
1041+
assert_simulation_reaches(&mut simulation, 60, BlockPos::new(0, 68, 3));
10641042
}
10651043

10661044
#[test]
@@ -1077,13 +1055,7 @@ mod tests {
10771055
BlockPos::new(3, 73, 0),
10781056
],
10791057
);
1080-
for _ in 0..60 {
1081-
simulation.tick();
1082-
}
1083-
assert_eq!(
1084-
BlockPos::from(simulation.position()),
1085-
BlockPos::new(3, 74, 0)
1086-
);
1058+
assert_simulation_reaches(&mut simulation, 60, BlockPos::new(3, 74, 0));
10871059
}
10881060

10891061
#[test]
@@ -1101,12 +1073,6 @@ mod tests {
11011073
BlockPos::new(4, 70, 12),
11021074
],
11031075
);
1104-
for _ in 0..80 {
1105-
simulation.tick();
1106-
}
1107-
assert_eq!(
1108-
BlockPos::from(simulation.position()),
1109-
BlockPos::new(4, 71, 12)
1110-
);
1076+
assert_simulation_reaches(&mut simulation, 80, BlockPos::new(4, 71, 12));
11111077
}
11121078
}

0 commit comments

Comments
 (0)