1pub mod fix32;
2
3#[cfg(test)]
10mod tests {
11 #[test]
12 fn creation() {
13 let n1 = super::fix32::Fix32::new();
14 assert_eq!(n1.n, 0);
15 let n1 = super::fix32::Fix32::from_i32(21_i32);
16 assert_eq!(n1.n, 21000_i32);
17 let n1 = super::fix32::Fix32::from_i64(-4_i64);
18 assert_eq!(n1.n, -4000_i32);
19 let n1 = super::fix32::Fix32::from_f32(3.1416);
20 assert_eq!(n1.n, 3141_i32);
21 let n1 = super::fix32::Fix32::from_f64(-1.23456789_f64);
22 assert_eq!(n1.n, -1234_i32);
23 let n1 = super::fix32::Fix32::with_n(456789_i32);
24 assert_eq!(n1.n, 456789_i32);
25 }
26
27 #[test]
28 fn get_values_from() {
29 let mut n1 = super::fix32::Fix32::from_f32(1.23456_f32);
30 assert_eq!((n1.get_f32() - 1.234_f32).abs() < 0.001_f32, true);
31 assert_eq!((n1.get_f64() - 1.234_f64).abs() < 0.001_f64, true);
32 assert_eq!(n1.get_str(), String::from("1.234"));
33 assert_eq!(n1.get_i32(), 1_i32);
34 assert_eq!(n1.get_rem(), 234_i32);
35 n1.trunc();
36 assert_eq!(n1.n, 1000_i32);
37 }
38
39 #[test]
40 fn trait_add() {
41 let n1 = super::fix32::Fix32::from_f32(1.23456_f32);
42 let n2 = super::fix32::Fix32::from_f32(6.5_f32);
43 let res = n1 + n2;
44 assert_eq!(res.n, 7734_i32);
45 }
46
47 #[test]
48 fn trait_sub() {
49 let n1 = super::fix32::Fix32::from_f32(1.23456_f32);
50 let n2 = super::fix32::Fix32::from_f32(6.5_f32);
51 let res = n1 - n2;
52 assert_eq!(res.n, -5266_i32);
53 }
54
55 #[test]
56 fn trait_mul() {
57 let n1 = super::fix32::Fix32::from_f32(1.5_f32);
58 let n2 = super::fix32::Fix32::from_f32(-6.5_f32);
59 let res = n1 * n2;
60 assert_eq!(res.n, -9750_i32);
61 }
62
63 #[test]
64 fn trait_div() {
65 let n1 = super::fix32::Fix32::from_f32(1.5_f32);
66 let n2 = super::fix32::Fix32::from_f32(-6.5_f32);
67 let res = n1 / n2;
68 assert_eq!(res.n, -230_i32);
69 }
70
71 #[test]
72 fn trait_rem() {
73 let n1 = super::fix32::Fix32::from_f32(100_f32);
74 let n2 = super::fix32::Fix32::from_f32(10_f32);
75 let res = n1 % n2;
76 assert_eq!(res.n, 0_i32);
77 }
78
79 #[test]
80 fn trait_comparing() {
81 let n1 = super::fix32::Fix32::from_f32(100_f32);
82 let n2 = super::fix32::Fix32::from_f32(10_f32);
83 assert_eq!(n1 > n2, true);
84 assert_eq!(n1 >= n2, true);
85 assert_eq!(n1 < n2, false);
86 assert_eq!(n1 <= n2, false);
87 assert_eq!(n1 == n2, false);
88 assert_eq!(n1 != n2, true);
89 }
90
91 #[test]
92 fn get_abs() {
93 let n = super::fix32::Fix32::from_f32(-5.124_f32);
94 assert_eq!(n.abs().n, 5124_i32);
95 }
96
97 #[test]
98 fn get_pow2() {
99 let n = super::fix32::Fix32::from_f32(-5.124_f32);
100 assert_eq!(n.pow2().n, 26255_i32);
101 }
102
103 #[test]
104 fn get_pow3() {
105 let n = super::fix32::Fix32::from_f32(-5.124_f32);
106 assert_eq!(n.pow3().n, -134530_i32);
107 }
108
109 #[test]
110 fn get_pow() {
111 let n = super::fix32::Fix32::from_f32(-2.2_f32);
112 assert_eq!(n.pow(5).n, -51535_i32);
113 }
114}