Skip to content

Commit 03dfd2e

Browse files
LewisGaulandrewrk
authored andcommitted
Make sure to test the sign of the zero results
1 parent 7abb170 commit 03dfd2e

File tree

7 files changed

+18
-18
lines changed

7 files changed

+18
-18
lines changed

lib/compiler_rt/exp.zig

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -218,7 +218,7 @@ test "expf() special" {
218218
try expectEqual(expf(1.0), math.e);
219219
try expectEqual(expf(math.ln2), 2.0);
220220
try expectEqual(expf(math.inf(f32)), math.inf(f32));
221-
try expectEqual(expf(-math.inf(f32)), 0.0);
221+
try expect(math.isPositiveZero(expf(-math.inf(f32))));
222222
try expect(math.isNan(expf(math.nan(f32))));
223223
try expect(math.isNan(expf(math.snan(f32))));
224224
}
@@ -268,7 +268,7 @@ test "exp() special" {
268268
// try expectEqual(exp(1.0), math.e);
269269
try expectEqual(exp(math.ln2), 2.0);
270270
try expectEqual(exp(math.inf(f64)), math.inf(f64));
271-
try expectEqual(exp(-math.inf(f64)), 0.0);
271+
try expect(math.isPositiveZero(exp(-math.inf(f64))));
272272
try expect(math.isNan(exp(math.nan(f64))));
273273
try expect(math.isNan(exp(math.snan(f64))));
274274
}

lib/compiler_rt/exp2.zig

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -464,7 +464,7 @@ test "exp2f() special" {
464464
try expectEqual(exp2f(1.0), 2.0);
465465
try expectEqual(exp2f(-1.0), 0.5);
466466
try expectEqual(exp2f(math.inf(f32)), math.inf(f32));
467-
try expectEqual(exp2f(-math.inf(f32)), 0.0);
467+
try expect(math.isPositiveZero(exp2f(-math.inf(f32))));
468468
try expect(math.isNan(exp2f(math.nan(f32))));
469469
try expect(math.isNan(exp2f(math.snan(f32))));
470470
}
@@ -502,7 +502,7 @@ test "exp2() special" {
502502
try expectEqual(exp2(1.0), 2.0);
503503
try expectEqual(exp2(-1.0), 0.5);
504504
try expectEqual(exp2(math.inf(f64)), math.inf(f64));
505-
try expectEqual(exp2(-math.inf(f64)), 0.0);
505+
try expect(math.isPositiveZero(exp2(-math.inf(f64))));
506506
try expect(math.isNan(exp2(math.nan(f64))));
507507
try expect(math.isNan(exp2(math.snan(f64))));
508508
}

lib/compiler_rt/log.zig

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,7 @@ pub fn logl(x: c_longdouble) callconv(.c) c_longdouble {
163163
test "logf() special" {
164164
try expectEqual(logf(0.0), -math.inf(f32));
165165
try expectEqual(logf(-0.0), -math.inf(f32));
166-
try expectEqual(logf(1.0), 0.0);
166+
try expect(math.isPositiveZero(logf(1.0)));
167167
try expectEqual(logf(math.e), 1.0);
168168
try expectEqual(logf(math.inf(f32)), math.inf(f32));
169169
try expect(math.isNan(logf(-1.0)));
@@ -198,7 +198,7 @@ test "logf() boundary" {
198198
test "log() special" {
199199
try expectEqual(log(0.0), -math.inf(f64));
200200
try expectEqual(log(-0.0), -math.inf(f64));
201-
try expectEqual(log(1.0), 0.0);
201+
try expect(math.isPositiveZero(log(1.0)));
202202
try expectEqual(log(math.e), 1.0);
203203
try expectEqual(log(math.inf(f64)), math.inf(f64));
204204
try expect(math.isNan(log(-1.0)));

lib/compiler_rt/log10.zig

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -191,7 +191,7 @@ pub fn log10l(x: c_longdouble) callconv(.c) c_longdouble {
191191
test "log10f() special" {
192192
try expectEqual(log10f(0.0), -math.inf(f32));
193193
try expectEqual(log10f(-0.0), -math.inf(f32));
194-
try expectEqual(log10f(1.0), 0.0);
194+
try expect(math.isPositiveZero(log10f(1.0)));
195195
try expectEqual(log10f(10.0), 1.0);
196196
try expectEqual(log10f(0.1), -1.0);
197197
try expectEqual(log10f(math.inf(f32)), math.inf(f32));
@@ -227,7 +227,7 @@ test "log10f() boundary" {
227227
test "log10() special" {
228228
try expectEqual(log10(0.0), -math.inf(f64));
229229
try expectEqual(log10(-0.0), -math.inf(f64));
230-
try expectEqual(log10(1.0), 0.0);
230+
try expect(math.isPositiveZero(log10(1.0)));
231231
try expectEqual(log10(10.0), 1.0);
232232
try expectEqual(log10(0.1), -1.0);
233233
try expectEqual(log10(math.inf(f64)), math.inf(f64));

lib/compiler_rt/log2.zig

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -183,7 +183,7 @@ pub fn log2l(x: c_longdouble) callconv(.c) c_longdouble {
183183
test "log2f() special" {
184184
try expectEqual(log2f(0.0), -math.inf(f32));
185185
try expectEqual(log2f(-0.0), -math.inf(f32));
186-
try expectEqual(log2f(1.0), 0.0);
186+
try expect(math.isPositiveZero(log2f(1.0)));
187187
try expectEqual(log2f(2.0), 1.0);
188188
try expectEqual(log2f(math.inf(f32)), math.inf(f32));
189189
try expect(math.isNan(log2f(-1.0)));
@@ -219,7 +219,7 @@ test "log2f() boundary" {
219219
test "log2() special" {
220220
try expectEqual(log2(0.0), -math.inf(f64));
221221
try expectEqual(log2(-0.0), -math.inf(f64));
222-
try expectEqual(log2(1.0), 0.0);
222+
try expect(math.isPositiveZero(log2(1.0)));
223223
try expectEqual(log2(2.0), 1.0);
224224
try expectEqual(log2(math.inf(f64)), math.inf(f64));
225225
try expect(math.isNan(log2(-1.0)));

lib/std/math/expm1.zig

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -288,8 +288,8 @@ fn expm1_64(x_: f64) f64 {
288288
}
289289

290290
test "expm1_32() special" {
291-
try expectEqual(expm1_32(0.0), 0.0);
292-
try expectEqual(expm1_32(-0.0), 0.0);
291+
try expect(math.isPositiveZero(expm1_32(0.0)));
292+
try expect(math.isNegativeZero(expm1_32(-0.0)));
293293
try expectEqual(expm1_32(math.ln2), 1.0);
294294
try expectEqual(expm1_32(math.inf(f32)), math.inf(f32));
295295
try expectEqual(expm1_32(-math.inf(f32)), -1.0);
@@ -326,8 +326,8 @@ test "expm1_32() boundary" {
326326
}
327327

328328
test "expm1_64() special" {
329-
try expectEqual(expm1_64(0.0), 0.0);
330-
try expectEqual(expm1_64(-0.0), 0.0);
329+
try expect(math.isPositiveZero(expm1_64(0.0)));
330+
try expect(math.isNegativeZero(expm1_64(-0.0)));
331331
try expectEqual(expm1_64(math.ln2), 1.0);
332332
try expectEqual(expm1_64(math.inf(f64)), math.inf(f64));
333333
try expectEqual(expm1_64(-math.inf(f64)), -1.0);

lib/std/math/log1p.zig

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -184,8 +184,8 @@ fn log1p_64(x: f64) f64 {
184184
}
185185

186186
test "log1p_32() special" {
187-
try expectEqual(log1p_32(0.0), 0.0);
188-
try expectEqual(log1p_32(-0.0), 0.0);
187+
try expect(math.isPositiveZero(log1p_32(0.0)));
188+
try expect(math.isNegativeZero(log1p_32(-0.0)));
189189
try expectEqual(log1p_32(-1.0), -math.inf(f32));
190190
try expectEqual(log1p_32(1.0), math.ln2);
191191
try expectEqual(log1p_32(math.inf(f32)), math.inf(f32));
@@ -219,8 +219,8 @@ test "log1p_32() boundary" {
219219
}
220220

221221
test "log1p_64() special" {
222-
try expectEqual(log1p_64(0.0), 0.0);
223-
try expectEqual(log1p_64(-0.0), 0.0);
222+
try expect(math.isPositiveZero(log1p_64(0.0)));
223+
try expect(math.isNegativeZero(log1p_64(-0.0)));
224224
try expectEqual(log1p_64(-1.0), -math.inf(f64));
225225
try expectEqual(log1p_64(1.0), math.ln2);
226226
try expectEqual(log1p_64(math.inf(f64)), math.inf(f64));

0 commit comments

Comments
 (0)