diff --git a/src/main.rs b/src/main.rs index e7a11a9..9642ac8 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,3 +1,40 @@ fn main() { - println!("Hello, world!"); + let src = 12; + let result = is_even(src); + println!("{src} is even? {result}"); +} + +fn is_even(n: u32) -> bool { + match n { + 0 => true, + 1 => false, + _ => is_odd(n - 1), + } +} + +fn is_odd(n: u32) -> bool { + match n { + 0 => false, + 1 => true, + _ => is_even(n - 1), + } +} + +#[cfg(test)] +mod tests { + use crate::{is_even, is_odd}; + + #[test] + fn it_works() { + let src = 12; + let result = is_even(src); + assert!(result); + } + + #[test] + fn it_works_again() { + let src = 5; + let result = is_odd(src); + assert!(result); + } }