diff --git a/src/hackerrank/warmup/mini_max_sum.rs b/src/hackerrank/warmup/mini_max_sum.rs index 95cdbbb..2f971df 100644 --- a/src/hackerrank/warmup/mini_max_sum.rs +++ b/src/hackerrank/warmup/mini_max_sum.rs @@ -5,19 +5,21 @@ pub fn mini_max_sum(arr: &[i32]) -> String { panic!("Empty input"); } - let mut tsum = 0; - let mut tmin: i32 = arr[0]; - let mut tmax: i32 = arr[1]; + let mut tsum: i64 = 0; + let mut tmin: i64 = arr[0].into(); + let mut tmax: i64 = arr[1].into(); + let mut tvalue: i64; for value in arr.iter() { - tsum += *value; + tvalue = *value as i64; + tsum += tvalue; - if *value < tmin { - tmin = *value; + if tvalue < tmin { + tmin = tvalue; } - if *value > tmax { - tmax = *value; + if tvalue > tmax { + tmax = tvalue; } } diff --git a/tests/data/hackerrank/warmup/mini_max_sum.testcases.json b/tests/data/hackerrank/warmup/mini_max_sum.testcases.json index b2d8c06..f3eebb8 100644 --- a/tests/data/hackerrank/warmup/mini_max_sum.testcases.json +++ b/tests/data/hackerrank/warmup/mini_max_sum.testcases.json @@ -1,4 +1,17 @@ [ - {"input": [1, 2, 3, 4, 5], "expected": "10 14"}, - {"input": [5, 4, 3, 2, 1], "expected": "10 14"} + { + "title": "Sample", + "input": [1, 2, 3, 4, 5], + "expected": "10 14" + }, + { + "title": "Reversed Sample", + "input": [5, 4, 3, 2, 1], + "expected": "10 14" + }, + { + "title": "Test case 0", + "input": [256741038, 623958417, 467905213, 714532089, 938071625], + "expected": "2063136757 2744467344" + } ] diff --git a/tests/hackerrank/warmup/mini_max_sum.rs b/tests/hackerrank/warmup/mini_max_sum.rs index 6bf2f82..fd97fc8 100644 --- a/tests/hackerrank/warmup/mini_max_sum.rs +++ b/tests/hackerrank/warmup/mini_max_sum.rs @@ -12,7 +12,8 @@ mod tests { #[derive(Debug, Deserialize)] struct MiniMaxSumTest { input: Vec, - expected: String + expected: String, + title: String } static TEST_DATA: Lazy> = diff --git a/tests/hackerrank/warmup/staircase.rs b/tests/hackerrank/warmup/staircase.rs index 0e6206d..9b35d3d 100644 --- a/tests/hackerrank/warmup/staircase.rs +++ b/tests/hackerrank/warmup/staircase.rs @@ -10,12 +10,12 @@ mod tests { use super::*; #[derive(Debug, Deserialize)] - struct AveryBigSumTestCase { + struct StaircaseTestCase { input: i32, expected: String } - static TEST_DATA: Lazy> = + static TEST_DATA: Lazy> = Lazy::new(|| load_json("tests/data/hackerrank/warmup/staircase.testcases.json")); #[test]