calc_nearx_module8/lib.rs
1pub mod calc_with_1 {
2
3 /// # Essa função faz uma soma e adiciona 1
4 ///
5 /// # exemplo
6 /// ```rust
7 /// use calc_nearx_module8::calc_with_1::sum_plus_one;
8 ///
9 /// assert_eq!(4, sum_plus_one(1, 2));
10 /// assert_eq!(42, sum_plus_one(41, 0));
11 /// assert_eq!(1, sum_plus_one(0, 0));
12 /// ```
13 pub fn sum_plus_one(x: u8, y: u8) -> u8 {
14 x + y + 1
15 }
16
17 /// # Essa função faz uma subtração e subtrai 1
18 ///
19 /// - Se o primeiro parâmetro for menor ou igual ao segundo, vai retornar 0
20 ///
21 /// # exemplo
22 /// ```rust
23 /// use calc_nearx_module8::calc_with_1::sub_less_one;
24 ///
25 /// assert_eq!(40, sub_less_one(41, 0));
26 /// assert_eq!(0, sub_less_one(6, 6));
27 /// assert_eq!(0, sub_less_one(5, 50));
28 /// ```
29 pub fn sub_less_one(x: u8, y: u8) -> u8 {
30 if x <= y {
31 return 0;
32 }
33
34 x - y - 1
35 }
36}
37
38#[cfg(test)]
39mod test {
40 use super::calc_with_1;
41
42 #[test]
43 fn test_sum() {
44 let result: u8 = calc_with_1::sum_plus_one(5, 6);
45 let expected: u8 = 12;
46 assert_eq!(result, expected);
47 }
48
49 #[test]
50 fn test_sub() {
51 let result: u8 = calc_with_1::sub_less_one(6, 1);
52 let expected: u8 = 4;
53 assert_eq!(result, expected);
54 }
55
56 #[test]
57 fn test_sub_failed_1() {
58 let result: u8 = calc_with_1::sub_less_one(5, 6);
59 let expected: u8 = 0;
60 assert_eq!(result, expected);
61 }
62
63 #[test]
64 fn test_sub_failed_2() {
65 let result: u8 = calc_with_1::sub_less_one(6, 6);
66 let expected: u8 = 0;
67 assert_eq!(result, expected);
68 }
69}