summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--rust/src/web.rs17
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();