|
1 | 1 | // FIXME(f16_f128): only tested on platforms that have symbols and aren't buggy
|
2 | 2 | #![cfg(target_has_reliable_f128)]
|
3 | 3 |
|
4 |
| -use core::ops::{Add, Div, Mul, Sub}; |
5 | 4 | use std::f128::consts;
|
6 |
| -use std::num::FpCategory as Fp; |
7 | 5 |
|
8 | 6 | use super::{assert_approx_eq, assert_biteq};
|
9 | 7 |
|
@@ -38,160 +36,9 @@ const NAN_MASK1: u128 = 0x0000aaaaaaaaaaaaaaaaaaaaaaaaaaaa;
|
38 | 36 | /// Second pattern over the mantissa
|
39 | 37 | const NAN_MASK2: u128 = 0x00005555555555555555555555555555;
|
40 | 38 |
|
41 |
| -#[test] |
42 |
| -fn test_num_f128() { |
43 |
| - // FIXME(f16_f128): replace with a `test_num` call once the required `fmodl`/`fmodf128` |
44 |
| - // function is available on all platforms. |
45 |
| - let ten = 10f128; |
46 |
| - let two = 2f128; |
47 |
| - assert_biteq!(ten.add(two), ten + two); |
48 |
| - assert_biteq!(ten.sub(two), ten - two); |
49 |
| - assert_biteq!(ten.mul(two), ten * two); |
50 |
| - assert_biteq!(ten.div(two), ten / two); |
51 |
| - #[cfg(any(miri, target_has_reliable_f128_math))] |
52 |
| - assert_biteq!(core::ops::Rem::rem(ten, two), ten % two); |
53 |
| -} |
54 |
| - |
55 | 39 | // FIXME(f16_f128,miri): many of these have to be disabled since miri does not yet support
|
56 | 40 | // the intrinsics.
|
57 | 41 |
|
58 |
| -#[test] |
59 |
| -fn test_infinity() { |
60 |
| - let inf: f128 = f128::INFINITY; |
61 |
| - assert!(inf.is_infinite()); |
62 |
| - assert!(!inf.is_finite()); |
63 |
| - assert!(inf.is_sign_positive()); |
64 |
| - assert!(!inf.is_sign_negative()); |
65 |
| - assert!(!inf.is_nan()); |
66 |
| - assert!(!inf.is_normal()); |
67 |
| - assert_eq!(Fp::Infinite, inf.classify()); |
68 |
| -} |
69 |
| - |
70 |
| -#[test] |
71 |
| -fn test_neg_infinity() { |
72 |
| - let neg_inf: f128 = f128::NEG_INFINITY; |
73 |
| - assert!(neg_inf.is_infinite()); |
74 |
| - assert!(!neg_inf.is_finite()); |
75 |
| - assert!(!neg_inf.is_sign_positive()); |
76 |
| - assert!(neg_inf.is_sign_negative()); |
77 |
| - assert!(!neg_inf.is_nan()); |
78 |
| - assert!(!neg_inf.is_normal()); |
79 |
| - assert_eq!(Fp::Infinite, neg_inf.classify()); |
80 |
| -} |
81 |
| - |
82 |
| -#[test] |
83 |
| -fn test_zero() { |
84 |
| - let zero: f128 = 0.0f128; |
85 |
| - assert_biteq!(0.0, zero); |
86 |
| - assert!(!zero.is_infinite()); |
87 |
| - assert!(zero.is_finite()); |
88 |
| - assert!(zero.is_sign_positive()); |
89 |
| - assert!(!zero.is_sign_negative()); |
90 |
| - assert!(!zero.is_nan()); |
91 |
| - assert!(!zero.is_normal()); |
92 |
| - assert_eq!(Fp::Zero, zero.classify()); |
93 |
| -} |
94 |
| - |
95 |
| -#[test] |
96 |
| -fn test_neg_zero() { |
97 |
| - let neg_zero: f128 = -0.0; |
98 |
| - assert_eq!(0.0, neg_zero); |
99 |
| - assert_biteq!(-0.0, neg_zero); |
100 |
| - assert!(!neg_zero.is_infinite()); |
101 |
| - assert!(neg_zero.is_finite()); |
102 |
| - assert!(!neg_zero.is_sign_positive()); |
103 |
| - assert!(neg_zero.is_sign_negative()); |
104 |
| - assert!(!neg_zero.is_nan()); |
105 |
| - assert!(!neg_zero.is_normal()); |
106 |
| - assert_eq!(Fp::Zero, neg_zero.classify()); |
107 |
| -} |
108 |
| - |
109 |
| -#[test] |
110 |
| -fn test_one() { |
111 |
| - let one: f128 = 1.0f128; |
112 |
| - assert_biteq!(1.0, one); |
113 |
| - assert!(!one.is_infinite()); |
114 |
| - assert!(one.is_finite()); |
115 |
| - assert!(one.is_sign_positive()); |
116 |
| - assert!(!one.is_sign_negative()); |
117 |
| - assert!(!one.is_nan()); |
118 |
| - assert!(one.is_normal()); |
119 |
| - assert_eq!(Fp::Normal, one.classify()); |
120 |
| -} |
121 |
| - |
122 |
| -#[test] |
123 |
| -fn test_is_nan() { |
124 |
| - let nan: f128 = f128::NAN; |
125 |
| - let inf: f128 = f128::INFINITY; |
126 |
| - let neg_inf: f128 = f128::NEG_INFINITY; |
127 |
| - assert!(nan.is_nan()); |
128 |
| - assert!(!0.0f128.is_nan()); |
129 |
| - assert!(!5.3f128.is_nan()); |
130 |
| - assert!(!(-10.732f128).is_nan()); |
131 |
| - assert!(!inf.is_nan()); |
132 |
| - assert!(!neg_inf.is_nan()); |
133 |
| -} |
134 |
| - |
135 |
| -#[test] |
136 |
| -fn test_is_infinite() { |
137 |
| - let nan: f128 = f128::NAN; |
138 |
| - let inf: f128 = f128::INFINITY; |
139 |
| - let neg_inf: f128 = f128::NEG_INFINITY; |
140 |
| - assert!(!nan.is_infinite()); |
141 |
| - assert!(inf.is_infinite()); |
142 |
| - assert!(neg_inf.is_infinite()); |
143 |
| - assert!(!0.0f128.is_infinite()); |
144 |
| - assert!(!42.8f128.is_infinite()); |
145 |
| - assert!(!(-109.2f128).is_infinite()); |
146 |
| -} |
147 |
| - |
148 |
| -#[test] |
149 |
| -fn test_is_finite() { |
150 |
| - let nan: f128 = f128::NAN; |
151 |
| - let inf: f128 = f128::INFINITY; |
152 |
| - let neg_inf: f128 = f128::NEG_INFINITY; |
153 |
| - assert!(!nan.is_finite()); |
154 |
| - assert!(!inf.is_finite()); |
155 |
| - assert!(!neg_inf.is_finite()); |
156 |
| - assert!(0.0f128.is_finite()); |
157 |
| - assert!(42.8f128.is_finite()); |
158 |
| - assert!((-109.2f128).is_finite()); |
159 |
| -} |
160 |
| - |
161 |
| -#[test] |
162 |
| -fn test_is_normal() { |
163 |
| - let nan: f128 = f128::NAN; |
164 |
| - let inf: f128 = f128::INFINITY; |
165 |
| - let neg_inf: f128 = f128::NEG_INFINITY; |
166 |
| - let zero: f128 = 0.0f128; |
167 |
| - let neg_zero: f128 = -0.0; |
168 |
| - assert!(!nan.is_normal()); |
169 |
| - assert!(!inf.is_normal()); |
170 |
| - assert!(!neg_inf.is_normal()); |
171 |
| - assert!(!zero.is_normal()); |
172 |
| - assert!(!neg_zero.is_normal()); |
173 |
| - assert!(1f128.is_normal()); |
174 |
| - assert!(1e-4931f128.is_normal()); |
175 |
| - assert!(!1e-4932f128.is_normal()); |
176 |
| -} |
177 |
| - |
178 |
| -#[test] |
179 |
| -fn test_classify() { |
180 |
| - let nan: f128 = f128::NAN; |
181 |
| - let inf: f128 = f128::INFINITY; |
182 |
| - let neg_inf: f128 = f128::NEG_INFINITY; |
183 |
| - let zero: f128 = 0.0f128; |
184 |
| - let neg_zero: f128 = -0.0; |
185 |
| - assert_eq!(nan.classify(), Fp::Nan); |
186 |
| - assert_eq!(inf.classify(), Fp::Infinite); |
187 |
| - assert_eq!(neg_inf.classify(), Fp::Infinite); |
188 |
| - assert_eq!(zero.classify(), Fp::Zero); |
189 |
| - assert_eq!(neg_zero.classify(), Fp::Zero); |
190 |
| - assert_eq!(1f128.classify(), Fp::Normal); |
191 |
| - assert_eq!(1e-4931f128.classify(), Fp::Normal); |
192 |
| - assert_eq!(1e-4932f128.classify(), Fp::Subnormal); |
193 |
| -} |
194 |
| - |
195 | 42 | #[test]
|
196 | 43 | #[cfg(any(miri, target_has_reliable_f128_math))]
|
197 | 44 | fn test_abs() {
|
|
0 commit comments