diff options
| author | mo8it <mo8it@proton.me> | 2024-07-08 14:40:35 +0200 |
|---|---|---|
| committer | mo8it <mo8it@proton.me> | 2024-07-08 14:40:35 +0200 |
| commit | a4091ade5cde7602acef0601cb7f69984fcad009 (patch) | |
| tree | 3c9f3a89d4a88acf26c3f7ae56ab35b1d322e6bb /exercises/18_iterators/iterators3.rs | |
| parent | a7a881809f462688b26ba7b81de85753c3507c22 (diff) | |
iterators3: Add `IntegerOverflow` error variant
Diffstat (limited to 'exercises/18_iterators/iterators3.rs')
| -rw-r--r-- | exercises/18_iterators/iterators3.rs | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/exercises/18_iterators/iterators3.rs b/exercises/18_iterators/iterators3.rs index 65a0573..6b1eca1 100644 --- a/exercises/18_iterators/iterators3.rs +++ b/exercises/18_iterators/iterators3.rs @@ -1,12 +1,16 @@ #[derive(Debug, PartialEq, Eq)] enum DivisionError { + // Example: 42 / 0 DivideByZero, + // Only case for `i64`: `i64::MIN / -1` because the result is `i64::MAX + 1` + IntegerOverflow, + // Example: 5 / 2 = 2.5 NotDivisible, } // TODO: Calculate `a` divided by `b` if `a` is evenly divisible by `b`. // Otherwise, return a suitable error. -fn divide(a: i32, b: i32) -> Result<i32, DivisionError> { +fn divide(a: i64, b: i64) -> Result<i64, DivisionError> { todo!(); } @@ -43,6 +47,11 @@ mod tests { } #[test] + fn test_integer_overflow() { + assert_eq!(divide(i64::MIN, -1), Err(DivisionError::IntegerOverflow)); + } + + #[test] fn test_not_divisible() { assert_eq!(divide(81, 6), Err(DivisionError::NotDivisible)); } |
