summaryrefslogtreecommitdiff
path: root/2018-tower-defence/tests/monte_carlo_test.rs
diff options
context:
space:
mode:
Diffstat (limited to '2018-tower-defence/tests/monte_carlo_test.rs')
-rw-r--r--2018-tower-defence/tests/monte_carlo_test.rs34
1 files changed, 34 insertions, 0 deletions
diff --git a/2018-tower-defence/tests/monte_carlo_test.rs b/2018-tower-defence/tests/monte_carlo_test.rs
new file mode 100644
index 0000000..cec3256
--- /dev/null
+++ b/2018-tower-defence/tests/monte_carlo_test.rs
@@ -0,0 +1,34 @@
+extern crate zombot;
+extern crate time;
+use time::{PreciseTime, Duration};
+
+use zombot::*;
+
+const STATE_PATH: &str = "tests/state0.json";
+
+// there are assertions in the game engine, run when it's in debug mode
+#[test]
+fn it_does_a_normal_turn_successfully() {
+ let start_time = PreciseTime::now();
+ let state = match input::json::read_bitwise_state_from_file(STATE_PATH) {
+ Ok(ok) => ok,
+ Err(error) => panic!("Error while parsing JSON file: {}", error)
+ };
+ let max_time = Duration::milliseconds(200);
+ strategy::monte_carlo::choose_move(&state, start_time, max_time);
+
+ assert!(start_time.to(PreciseTime::now()) < max_time + Duration::milliseconds(50))
+}
+
+#[test]
+fn it_does_a_normal_tree_serach_turn_successfully() {
+ let start_time = PreciseTime::now();
+ let state = match input::json::read_bitwise_state_from_file(STATE_PATH) {
+ Ok(ok) => ok,
+ Err(error) => panic!("Error while parsing JSON file: {}", error)
+ };
+ let max_time = Duration::milliseconds(200);
+ strategy::monte_carlo_tree::choose_move(&state, start_time, max_time);
+
+ assert!(start_time.to(PreciseTime::now()) < max_time + Duration::milliseconds(50))
+}