3 macro_rules! assert_approx_eq {
4 ($a:expr, $b:expr) => ({
5 let (a, b) = (&$a, &$b);
6 assert!((*a - *b).abs() < 1.0e-6,
7 "{} is not approximately equal to {}", *a, *b);
11 static A: isize = -4 + 3;
12 static A2: usize = 3 + 3;
13 static B: f64 = 3.0 + 2.7;
15 static C: isize = 3 - 4;
16 static D: usize = 3 - 3;
17 static E: f64 = 3.0 - 2.7;
19 static E2: isize = -3 * 3;
20 static F: usize = 3 * 3;
21 static G: f64 = 3.3 * 3.3;
23 static H: isize = 3 / -1;
24 static I: usize = 3 / 3;
25 static J: f64 = 3.3 / 3.3;
27 static N: bool = true && false;
29 static O: bool = true || false;
31 static P: isize = 3 & 1;
32 static Q: usize = 1 & 3;
34 static R: isize = 3 | 1;
35 static S: usize = 1 | 3;
37 static T: isize = 3 ^ 1;
38 static U: usize = 1 ^ 3;
40 static V: isize = 1 << 3;
42 // NOTE: better shr coverage
43 static W: isize = 1024 >> 4;
44 static X: usize = 1024 >> 4;
46 static Y: bool = 1 == 1;
47 static Z: bool = 1.0f64 == 1.0;
49 static AA: bool = 1 <= 2;
50 static AB: bool = -1 <= 2;
51 static AC: bool = 1.0f64 <= 2.0;
53 static AD: bool = 1 < 2;
54 static AE: bool = -1 < 2;
55 static AF: bool = 1.0f64 < 2.0;
57 static AG: bool = 1 != 2;
58 static AH: bool = -1 != 2;
59 static AI: bool = 1.0f64 != 2.0;
61 static AJ: bool = 2 >= 1;
62 static AK: bool = 2 >= -2;
63 static AL: bool = 1.0f64 >= -2.0;
65 static AM: bool = 2 > 1;
66 static AN: bool = 2 > -2;
67 static AO: bool = 1.0f64 > -2.0;
72 assert_approx_eq!(B, 5.7);
76 assert_approx_eq!(E, 0.3);
80 assert_approx_eq!(G, 10.89);
84 assert_approx_eq!(J, 1.0);
107 assert_eq!(AA, true);
108 assert_eq!(AB, true);
109 assert_eq!(AC, true);
111 assert_eq!(AD, true);
112 assert_eq!(AE, true);
113 assert_eq!(AF, true);
115 assert_eq!(AG, true);
116 assert_eq!(AH, true);
117 assert_eq!(AI, true);
119 assert_eq!(AJ, true);
120 assert_eq!(AK, true);
121 assert_eq!(AL, true);
123 assert_eq!(AM, true);
124 assert_eq!(AN, true);
125 assert_eq!(AO, true);