1pub mod calc1;
2pub mod calc2;
3pub mod calc3;
4#[cfg(test)]
5mod tests {
6 use super::calc1::{add, sub};
7 use super::calc2::{multiply, rate};
8 use super::calc3::{pot, log};
9
10 #[test]
11 fn teste_add() {
12 assert_eq!(add(10, 20), 30);
13 }
14
15 #[test]
16 fn teste_add_zero() {
17 assert_eq!(add(0, 20), 20);
18 assert_eq!(add(20, 0), 20);
19 }
20
21 #[test]
22 fn teste_add_grandes() {
23 assert_eq!(add(1_000_000_000, 1_000_000_000), 2_000_000_000);
24 }
25
26 #[test]
27 fn teste_sub() {
28 assert_eq!(sub(20, 10), 10);
29 }
30
31 #[test]
32 fn teste_sub_zero() {
33 assert_eq!(sub(20, 0), 20);
34 assert_eq!(sub(0, 20), 0);
35 }
36
37 #[test]
38 fn teste_multiply() {
39 assert_eq!(multiply(2, 3), 6);
40 }
41
42 #[test]
43 fn teste_multiply_zero() {
44 assert_eq!(multiply(0, 5), 0);
45 assert_eq!(multiply(5, 0), 0);
46 }
47
48 #[test]
49 fn teste_multiply_grandes() {
50 assert_eq!(multiply(1_000_000, 1_000), 1_000_000_000);
51 }
52
53 #[test]
54 fn teste_rate() {
55 assert_eq!(rate(100, 5), 20);
56 }
57
58 #[test]
59 fn teste_rate_zero() {
60 assert_eq!(rate(100, 0), 0);
61 assert_eq!(rate(0, 5), 0);
62 }
63
64 #[test]
65 fn teste_rate_fracionario() {
66 assert_eq!(rate(105, 2), 52);
67 }
68
69 #[test]
70 fn teste_pot() {
71 assert_eq!(pot(2.0, 3), 8.0);
72 assert_eq!(pot(3.0, 2), 9.0);
73 }
74
75 #[test]
76 fn teste_log() {
77 let tolerance = 1e-9;
78 assert!((log(3.0, 8.0) - 1.892789260714372).abs() < tolerance);
79 assert_eq!(log(3.0, 9.0), 2.0);
80 }
81}