]> git.lizzy.rs Git - rust.git/blob - tests/ui/floating_point_abs.rs
iterate List by value
[rust.git] / tests / ui / floating_point_abs.rs
1 // run-rustfix
2 #![warn(clippy::suboptimal_flops)]
3
4 struct A {
5     a: f64,
6     b: f64,
7 }
8
9 fn fake_abs1(num: f64) -> f64 {
10     if num >= 0.0 {
11         num
12     } else {
13         -num
14     }
15 }
16
17 fn fake_abs2(num: f64) -> f64 {
18     if 0.0 < num {
19         num
20     } else {
21         -num
22     }
23 }
24
25 fn fake_abs3(a: A) -> f64 {
26     if a.a > 0.0 {
27         a.a
28     } else {
29         -a.a
30     }
31 }
32
33 fn fake_abs4(num: f64) -> f64 {
34     if 0.0 >= num {
35         -num
36     } else {
37         num
38     }
39 }
40
41 fn fake_abs5(a: A) -> f64 {
42     if a.a < 0.0 {
43         -a.a
44     } else {
45         a.a
46     }
47 }
48
49 fn fake_nabs1(num: f64) -> f64 {
50     if num < 0.0 {
51         num
52     } else {
53         -num
54     }
55 }
56
57 fn fake_nabs2(num: f64) -> f64 {
58     if 0.0 >= num {
59         num
60     } else {
61         -num
62     }
63 }
64
65 fn fake_nabs3(a: A) -> A {
66     A {
67         a: if a.a >= 0.0 { -a.a } else { a.a },
68         b: a.b,
69     }
70 }
71
72 fn not_fake_abs1(num: f64) -> f64 {
73     if num > 0.0 {
74         num
75     } else {
76         -num - 1f64
77     }
78 }
79
80 fn not_fake_abs2(num: f64) -> f64 {
81     if num > 0.0 {
82         num + 1.0
83     } else {
84         -(num + 1.0)
85     }
86 }
87
88 fn not_fake_abs3(num1: f64, num2: f64) -> f64 {
89     if num1 > 0.0 {
90         num2
91     } else {
92         -num2
93     }
94 }
95
96 fn not_fake_abs4(a: A) -> f64 {
97     if a.a > 0.0 {
98         a.b
99     } else {
100         -a.b
101     }
102 }
103
104 fn not_fake_abs5(a: A) -> f64 {
105     if a.a > 0.0 {
106         a.a
107     } else {
108         -a.b
109     }
110 }
111
112 fn main() {
113     fake_abs1(5.0);
114     fake_abs2(5.0);
115     fake_abs3(A { a: 5.0, b: 5.0 });
116     fake_abs4(5.0);
117     fake_abs5(A { a: 5.0, b: 5.0 });
118     fake_nabs1(5.0);
119     fake_nabs2(5.0);
120     fake_nabs3(A { a: 5.0, b: 5.0 });
121     not_fake_abs1(5.0);
122     not_fake_abs2(5.0);
123     not_fake_abs3(5.0, 5.0);
124     not_fake_abs4(A { a: 5.0, b: 5.0 });
125     not_fake_abs5(A { a: 5.0, b: 5.0 });
126 }