From d32a31646c2e2357e94b22b3e6c1e2aab035d5c4 Mon Sep 17 00:00:00 2001 From: Arnaud Bailly Date: Sun, 13 Oct 2024 22:48:31 +0200 Subject: Limit grade to 255 --- rust/src/web.rs | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) (limited to 'rust/src/web.rs') diff --git a/rust/src/web.rs b/rust/src/web.rs index c63268a..5be1cfe 100644 --- a/rust/src/web.rs +++ b/rust/src/web.rs @@ -146,7 +146,9 @@ impl Client { .collect::>() .join("\n"); if actual == *expected { - self.grade += 1; + if self.grade < u8::MAX { + self.grade += 1; + } self.delay = Duration::from_secs_f64(self.delay.as_secs_f64() * 0.8); if self.delay.as_millis() < 500 { self.delay = Duration::from_millis(500); @@ -736,6 +738,19 @@ mod app_tests { assert_eq!(Duration::from_secs(30), client.time_to_next_test()); } + #[test] + async fn client_score_cannot_go_beyond_255() { + let mut client = client(); + let expected = "1".to_string(); + let response = Ok("1".to_string()); + + for _ in 0..256 { + client.check_result(&expected, &response); + } + + assert_eq!(255, client.grade); + } + #[test] async fn client_decreases_delay_to_next_upon_successful_test() { let mut client = client(); -- cgit v1.2.3