diff options
Diffstat (limited to 'challenge-340/benjamin-andre/rust/ch-2.rs')
| -rwxr-xr-x | challenge-340/benjamin-andre/rust/ch-2.rs | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/challenge-340/benjamin-andre/rust/ch-2.rs b/challenge-340/benjamin-andre/rust/ch-2.rs new file mode 100755 index 0000000000..597b2d7fe5 --- /dev/null +++ b/challenge-340/benjamin-andre/rust/ch-2.rs @@ -0,0 +1,28 @@ +#!/bin/sh +//usr/bin/env rustc --test $0 -o kachow && ./kachow --nocapture; rm -f kachow ; exit + +fn ascending_numbers(s: &str) -> bool { + let numbers: Vec<u32> = s + .split_whitespace() + .filter_map(|token| token.parse().ok()) + .collect(); + numbers.windows(2).all(|w| w[0] < w[1]) +} + +#[test] +fn example() { + assert_eq!( + ascending_numbers("The cat has 3 kittens 7 toys 10 beds"), + true + ); + assert_eq!( + ascending_numbers("Alice bought 5 apples 2 oranges 9 bananas"), + false + ); + assert_eq!( + ascending_numbers("I ran 1 mile 2 days 3 weeks 4 months"), + true + ); + assert_eq!(ascending_numbers("Bob has 10 cars 10 bikes"), false); + assert_eq!(ascending_numbers("Zero is 0 one is 1 two is 2"), true); +} |
