| ... | ... | @@ -1354,6 +1354,12 @@ test "comptime sin and ln" { |
| 1354 | 1354 | } |
| 1355 | 1355 | |
| 1356 | 1356 | test "fabs" { |
| 1357 | if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO |
| 1358 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO |
| 1359 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO |
| 1360 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO |
| 1361 | if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO |
| 1362 | |
| 1357 | 1363 | inline for ([_]type{ f16, f32, f64, f80, f128, c_longdouble }) |T| { |
| 1358 | 1364 | // normals |
| 1359 | 1365 | try expect(@fabs(@as(T, 1.0)) == 1.0); |
| ... | ... | @@ -1377,10 +1383,19 @@ test "fabs" { |
| 1377 | 1383 | } |
| 1378 | 1384 | |
| 1379 | 1385 | test "absFloat" { |
| 1386 | if (builtin.zig_backend == .stage2_wasm) return error.SkipZigTest; // TODO |
| 1387 | if (builtin.zig_backend == .stage2_arm) return error.SkipZigTest; // TODO |
| 1388 | if (builtin.zig_backend == .stage2_aarch64) return error.SkipZigTest; // TODO |
| 1389 | if (builtin.zig_backend == .stage2_x86_64) return error.SkipZigTest; // TODO |
| 1390 | if (builtin.zig_backend == .stage2_c) return error.SkipZigTest; // TODO |
| 1391 | |
| 1380 | 1392 | try testAbsFloat(); |
| 1381 | 1393 | comptime try testAbsFloat(); |
| 1382 | 1394 | } |
| 1383 | 1395 | fn testAbsFloat() !void { |
| 1384 | | try expect(@fabs(@as(f32, -10.05)) == @as(f32, 10.05)); |
| 1385 | | try expect(@fabs(@as(f32, 10.05)) == @as(f32, 10.05)); |
| 1396 | try testAbsFloatOne(-10.05, 10.05); |
| 1397 | try testAbsFloatOne(10.05, 10.05); |
| 1398 | } |
| 1399 | fn testAbsFloatOne(in: f32, out: f32) !void { |
| 1400 | try expect(@fabs(@as(f32, in)) == @as(f32, out)); |
| 1386 | 1401 | } |