Skip to main content

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}