diff options
| -rw-r--r-- | rust/src/web.rs | 17 |
1 files changed, 16 insertions, 1 deletions
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::<Vec<_>>() .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); @@ -737,6 +739,19 @@ mod app_tests { } #[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(); let expected = "1".to_string(); |
