|
1 | 1 | pub mod simple_challenges;
|
| 2 | +pub mod recursion; |
2 | 3 |
|
3 | 4 | #[cfg(test)]
|
4 | 5 | mod tests {
|
@@ -47,11 +48,60 @@ mod tests {
|
47 | 48 |
|
48 | 49 | #[test]
|
49 | 50 | fn test_max_n_width_sub_array() {
|
50 | | - assert_eq!(max_n_width_sub_array_sum(&[1, 2, 5, 2, 8, 1, 5], 2), Some(10)); |
51 | | - assert_eq!(max_n_width_sub_array_sum(&[1, 2, 5, 2, 8, 1, 5], 4), Some(17)); |
| 51 | + assert_eq!( |
| 52 | + max_n_width_sub_array_sum(&[1, 2, 5, 2, 8, 1, 5], 2), |
| 53 | + Some(10) |
| 54 | + ); |
| 55 | + assert_eq!( |
| 56 | + max_n_width_sub_array_sum(&[1, 2, 5, 2, 8, 1, 5], 4), |
| 57 | + Some(17) |
| 58 | + ); |
52 | 59 | assert_eq!(max_n_width_sub_array_sum(&[4, 2, 1, 6], 1), Some(6));
|
53 | 60 | assert_eq!(max_n_width_sub_array_sum(&[4, 2, 1, 6, 2], 4), Some(13));
|
54 | 61 | assert_eq!(max_n_width_sub_array_sum(&[], 4), None);
|
55 | 62 | }
|
56 | 63 | }
|
| 64 | + |
| 65 | + mod recursion { |
| 66 | + use crate::recursion::*; |
| 67 | + #[test] |
| 68 | + fn test_power() { |
| 69 | + assert_eq!(power(2, 2), 2_usize.pow(2)); |
| 70 | + assert_eq!(power(6, 1), 6_usize.pow(1)); |
| 71 | + assert_eq!(power(2, 8), 2_usize.pow(8)); |
| 72 | + assert_eq!(power(0, 2), 0_usize.pow(2)); |
| 73 | + assert_eq!(power(2, 0), 2_usize.pow(0)); |
| 74 | + } |
| 75 | + |
| 76 | + #[test] |
| 77 | + fn test_factorial() { |
| 78 | + assert_eq!(factorial(3), 3 * 2 * 1); |
| 79 | + assert_eq!(factorial(5), 5 * 4 * 3 * 2 * 1); |
| 80 | + assert_eq!(factorial(1), 1); |
| 81 | + assert_eq!(factorial(0), 1); |
| 82 | + } |
| 83 | + |
| 84 | + #[test] |
| 85 | + fn test_product_of_nums() { |
| 86 | + assert_eq!(product_of_nums(&[1, 2, 3]), Some(1 * 2 * 3)); |
| 87 | + assert_eq!(product_of_nums(&[1, -2, 3]), Some(1 * -2 * 3)); |
| 88 | + assert_eq!(product_of_nums(&[1, -2, 0]), Some(1 * -2 * 0)); |
| 89 | + assert_eq!(product_of_nums(&[]), None); |
| 90 | + } |
| 91 | + |
| 92 | + #[test] |
| 93 | + fn test_sum_up_to() { |
| 94 | + assert_eq!(sum_up_to(5), 0 + 1 + 2 + 3 + 4 + 5); |
| 95 | + assert_eq!(sum_up_to(1), 0 + 1); |
| 96 | + assert_eq!(sum_up_to(0), 0); |
| 97 | + } |
| 98 | + |
| 99 | + #[test] |
| 100 | + fn test_fibonacci() { |
| 101 | + assert_eq!(fibonacci(4), 3); |
| 102 | + assert_eq!(fibonacci(10), 55); |
| 103 | + assert_eq!(fibonacci(28), 317811); |
| 104 | + assert_eq!(fibonacci(35), 9227465); |
| 105 | + } |
| 106 | + } |
57 | 107 | }
|
0 commit comments