authorgravatar for andreas.reischuck@hicknhack-software.comAndreas Reischuck <andreas.reischuck@hicknhack-software.com> 2022-05-27 04:05:53+02:00
committergravatar for noreply@github.comGitHub <noreply@github.com> 2022-05-26 22:05:53-04:00
log5a8b6149fb0f09d4e221f482b1de225f76bd1840
tree6875a8a4a34d6ac64c8e384810633e03d4bbe2b5
parent41162ed6467f7e157cc0a45154647dd93bcd2e74
signaturebadge-question-mark Signed by PGP key 4AEE18F83AFDEB23

add more corner case tests to float_parse (#11727)

also drop some unused constants Co-authored-by: Andrew Kelley <andrew@ziglang.org>

2 files changed, 10 insertions(+), 2 deletions(-)

lib/std/fmt/parse_float.zig+10
...@@ -57,6 +57,16 @@ test "fmt.parseFloat" {...@@ -57,6 +57,16 @@ test "fmt.parseFloat" {
57 try expect(approxEqAbs(T, try parseFloat(T, "1e-2"), 0.01, epsilon));57 try expect(approxEqAbs(T, try parseFloat(T, "1e-2"), 0.01, epsilon));
58 try expect(approxEqAbs(T, try parseFloat(T, "1234e-2"), 12.34, epsilon));58 try expect(approxEqAbs(T, try parseFloat(T, "1234e-2"), 12.34, epsilon));
5959
60 try expect(approxEqAbs(T, try parseFloat(T, "1."), 1, epsilon));
61 try expect(approxEqAbs(T, try parseFloat(T, "0."), 0, epsilon));
62 try expect(approxEqAbs(T, try parseFloat(T, ".1"), 0.1, epsilon));
63 try expect(approxEqAbs(T, try parseFloat(T, ".0"), 0, epsilon));
64 try expect(approxEqAbs(T, try parseFloat(T, ".1e-1"), 0.01, epsilon));
65
66 try expectError(error.InvalidCharacter, parseFloat(T, ".")); // At least one digit is required.
67 try expectError(error.InvalidCharacter, parseFloat(T, ".e1")); // At least one digit is required.
68 try expectError(error.InvalidCharacter, parseFloat(T, "0.e")); // At least one digit is required.
69
60 try expect(approxEqAbs(T, try parseFloat(T, "123142.1"), 123142.1, epsilon));70 try expect(approxEqAbs(T, try parseFloat(T, "123142.1"), 123142.1, epsilon));
61 try expect(approxEqAbs(T, try parseFloat(T, "-123142.1124"), @as(T, -123142.1124), epsilon));71 try expect(approxEqAbs(T, try parseFloat(T, "-123142.1124"), @as(T, -123142.1124), epsilon));
62 try expect(approxEqAbs(T, try parseFloat(T, "0.7062146892655368"), @as(T, 0.7062146892655368), epsilon));72 try expect(approxEqAbs(T, try parseFloat(T, "0.7062146892655368"), @as(T, 0.7062146892655368), epsilon));
lib/std/fmt/parse_float/parse_float.zig-2
...@@ -1,7 +1,5 @@...@@ -1,7 +1,5 @@
1const std = @import("std");1const std = @import("std");
2const parse = @import("parse.zig");2const parse = @import("parse.zig");
3const parseNumber = parse.parseNumber;
4const parseInfOrNan = parse.parseInfOrNan;
5const convertFast = @import("convert_fast.zig").convertFast;3const convertFast = @import("convert_fast.zig").convertFast;
6const convertEiselLemire = @import("convert_eisel_lemire.zig").convertEiselLemire;4const convertEiselLemire = @import("convert_eisel_lemire.zig").convertEiselLemire;
7const convertSlow = @import("convert_slow.zig").convertSlow;5const convertSlow = @import("convert_slow.zig").convertSlow;