summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArnaud Bailly <arnaud.bailly@iohk.io>2024-10-13 22:48:31 +0200
committerArnaud Bailly <arnaud.bailly@iohk.io>2024-10-13 22:48:31 +0200
commitd32a31646c2e2357e94b22b3e6c1e2aab035d5c4 (patch)
tree595c47805573816f974a21cfba1008c7643a714d
parent0ab73e47af2bba3fb2ff6a4bf08ada4a3309bf3e (diff)
downloadlambda-nantes-d32a31646c2e2357e94b22b3e6c1e2aab035d5c4.tar.gz
Limit grade to 255
-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();