zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

commit 5a8b6149fb0f09d4e221f482b1de225f76bd1840 (tree)
parent 41162ed6467f7e157cc0a45154647dd93bcd2e74
Author: Andreas Reischuck <andreas.reischuck@hicknhack-software.com>
Date:   Fri, 27 May 2022 04:05:53 +0200

add more corner case tests to float_parse (#11727)

also drop some unused constants

Co-authored-by: Andrew Kelley <andrew@ziglang.org>
Diffstat:
Mlib/std/fmt/parse_float.zig | 10++++++++++
Mlib/std/fmt/parse_float/parse_float.zig | 2--
2 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/lib/std/fmt/parse_float.zig b/lib/std/fmt/parse_float.zig @@ -57,6 +57,16 @@ test "fmt.parseFloat" { try expect(approxEqAbs(T, try parseFloat(T, "1e-2"), 0.01, epsilon)); try expect(approxEqAbs(T, try parseFloat(T, "1234e-2"), 12.34, epsilon)); + try expect(approxEqAbs(T, try parseFloat(T, "1."), 1, epsilon)); + try expect(approxEqAbs(T, try parseFloat(T, "0."), 0, epsilon)); + try expect(approxEqAbs(T, try parseFloat(T, ".1"), 0.1, epsilon)); + try expect(approxEqAbs(T, try parseFloat(T, ".0"), 0, epsilon)); + try expect(approxEqAbs(T, try parseFloat(T, ".1e-1"), 0.01, epsilon)); + + try expectError(error.InvalidCharacter, parseFloat(T, ".")); // At least one digit is required. + try expectError(error.InvalidCharacter, parseFloat(T, ".e1")); // At least one digit is required. + try expectError(error.InvalidCharacter, parseFloat(T, "0.e")); // At least one digit is required. + try expect(approxEqAbs(T, try parseFloat(T, "123142.1"), 123142.1, epsilon)); try expect(approxEqAbs(T, try parseFloat(T, "-123142.1124"), @as(T, -123142.1124), epsilon)); try expect(approxEqAbs(T, try parseFloat(T, "0.7062146892655368"), @as(T, 0.7062146892655368), epsilon)); diff --git a/lib/std/fmt/parse_float/parse_float.zig b/lib/std/fmt/parse_float/parse_float.zig @@ -1,7 +1,5 @@ const std = @import("std"); const parse = @import("parse.zig"); -const parseNumber = parse.parseNumber; -const parseInfOrNan = parse.parseInfOrNan; const convertFast = @import("convert_fast.zig").convertFast; const convertEiselLemire = @import("convert_eisel_lemire.zig").convertEiselLemire; const convertSlow = @import("convert_slow.zig").convertSlow;