diff options
| author | mat <git@matdoes.dev> | 2023-11-12 15:59:12 -0600 |
|---|---|---|
| committer | mat <git@matdoes.dev> | 2023-11-12 15:59:12 -0600 |
| commit | 3d22b5b91cf8ea790e98273d114f26589e8280ae (patch) | |
| tree | 231e2178170135a8154f58ee84c4c1bbfe91fae2 | |
| parent | 70b9c88d63326ce4f328fa4c867cd9b415de7b0d (diff) | |
| download | azalea-drasl-3d22b5b91cf8ea790e98273d114f26589e8280ae.tar.xz | |
fix pathfinder tests
| -rw-r--r-- | azalea/src/pathfinder/mod.rs | 94 |
1 files changed, 30 insertions, 64 deletions
diff --git a/azalea/src/pathfinder/mod.rs b/azalea/src/pathfinder/mod.rs index bb10fa8e..5763f379 100644 --- a/azalea/src/pathfinder/mod.rs +++ b/azalea/src/pathfinder/mod.rs @@ -853,7 +853,11 @@ pub fn call_successors_fn( #[cfg(test)] mod tests { - use std::{collections::HashSet, sync::Arc}; + use std::{ + collections::HashSet, + sync::Arc, + time::{Duration, Instant}, + }; use azalea_core::position::{BlockPos, ChunkPos, Vec3}; use azalea_world::{Chunk, ChunkStorage, PartialChunkStorage}; @@ -904,6 +908,22 @@ mod tests { simulation } + pub fn assert_simulation_reaches(simulation: &mut Simulation, ticks: usize, end_pos: BlockPos) { + // wait until the bot starts moving + let start_pos = simulation.position(); + let start_time = Instant::now(); + while simulation.position() == start_pos + && start_time.elapsed() < Duration::from_millis(500) + { + simulation.tick(); + std::thread::yield_now(); + } + for _ in 0..ticks { + simulation.tick(); + } + assert_eq!(BlockPos::from(simulation.position()), end_pos,); + } + #[test] fn test_simple_forward() { let mut partial_chunks = PartialChunkStorage::default(); @@ -913,13 +933,7 @@ mod tests { BlockPos::new(0, 71, 1), vec![BlockPos::new(0, 70, 0), BlockPos::new(0, 70, 1)], ); - for _ in 0..20 { - simulation.tick(); - } - assert_eq!( - BlockPos::from(simulation.position()), - BlockPos::new(0, 71, 1) - ); + assert_simulation_reaches(&mut simulation, 20, BlockPos::new(0, 71, 1)); } #[test] @@ -937,13 +951,7 @@ mod tests { BlockPos::new(2, 72, 1), ], ); - for _ in 0..30 { - simulation.tick(); - } - assert_eq!( - BlockPos::from(simulation.position()), - BlockPos::new(2, 71, 2) - ); + assert_simulation_reaches(&mut simulation, 30, BlockPos::new(2, 71, 2)); } #[test] @@ -965,13 +973,7 @@ mod tests { BlockPos::new(5, 75, 0), ], ); - for _ in 0..120 { - simulation.tick(); - } - assert_eq!( - BlockPos::from(simulation.position()), - BlockPos::new(5, 76, 0) - ); + assert_simulation_reaches(&mut simulation, 120, BlockPos::new(5, 76, 0)); } #[test] @@ -983,13 +985,7 @@ mod tests { BlockPos::new(0, 71, 3), vec![BlockPos::new(0, 70, 0), BlockPos::new(0, 70, 3)], ); - for _ in 0..40 { - simulation.tick(); - } - assert_eq!( - BlockPos::from(simulation.position()), - BlockPos::new(0, 71, 3) - ); + assert_simulation_reaches(&mut simulation, 40, BlockPos::new(0, 71, 3)); } #[test] @@ -1008,13 +1004,7 @@ mod tests { BlockPos::new(3, 66, 4), ], ); - for _ in 0..100 { - simulation.tick(); - } - assert_eq!( - BlockPos::from(simulation.position()), - BlockPos::new(3, 67, 4) - ); + assert_simulation_reaches(&mut simulation, 100, BlockPos::new(3, 67, 4)); } #[test] @@ -1031,13 +1021,7 @@ mod tests { BlockPos::new(0, 69, 5), ], ); - for _ in 0..40 { - simulation.tick(); - } - assert_eq!( - BlockPos::from(simulation.position()), - BlockPos::new(0, 70, 5) - ); + assert_simulation_reaches(&mut simulation, 40, BlockPos::new(0, 70, 5)); } #[test] @@ -1054,13 +1038,7 @@ mod tests { BlockPos::new(0, 67, 3), ], ); - for _ in 0..60 { - simulation.tick(); - } - assert_eq!( - BlockPos::from(simulation.position()), - BlockPos::new(0, 68, 3) - ); + assert_simulation_reaches(&mut simulation, 60, BlockPos::new(0, 68, 3)); } #[test] @@ -1077,13 +1055,7 @@ mod tests { BlockPos::new(3, 73, 0), ], ); - for _ in 0..60 { - simulation.tick(); - } - assert_eq!( - BlockPos::from(simulation.position()), - BlockPos::new(3, 74, 0) - ); + assert_simulation_reaches(&mut simulation, 60, BlockPos::new(3, 74, 0)); } #[test] @@ -1101,12 +1073,6 @@ mod tests { BlockPos::new(4, 70, 12), ], ); - for _ in 0..80 { - simulation.tick(); - } - assert_eq!( - BlockPos::from(simulation.position()), - BlockPos::new(4, 71, 12) - ); + assert_simulation_reaches(&mut simulation, 80, BlockPos::new(4, 71, 12)); } } |
