authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2017-10-24 21:45:00-04:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2017-10-24 21:57:58-04:00
log73fe5f63c6acc1b2e6fec51da545178ffd12180e
treefcb9d80ac056a2e81efb6e31915ee94866dea1b1
parent1e784839f1b6ac116f7cae35fa4a8069902283b6

add some sanity tests for float printing


1 files changed, 32 insertions(+), 0 deletions(-)

std/fmt/index.zig+32
......@@ -531,6 +531,38 @@ test "fmt.format" {
531531 const result = bufPrint(buf1[0..], "u3: {}\n", value);
532532 assert(mem.eql(u8, result, "u3: 5\n"));
533533 }
534
535 // TODO get these tests passing in release modes
536 // https://github.com/zig-lang/zig/issues/564
537 if (builtin.mode == builtin.Mode.Debug) {
538 {
539 var buf1: [32]u8 = undefined;
540 const value: f32 = 12.34;
541 const result = bufPrint(buf1[0..], "f32: {}\n", value);
542 assert(mem.eql(u8, result, "f32: 1.23400001e1\n"));
543 }
544 {
545 var buf1: [32]u8 = undefined;
546 const value: f64 = -12.34e10;
547 const result = bufPrint(buf1[0..], "f64: {}\n", value);
548 assert(mem.eql(u8, result, "f64: -1.234e11\n"));
549 }
550 {
551 var buf1: [32]u8 = undefined;
552 const result = bufPrint(buf1[0..], "f64: {}\n", math.nan_f64);
553 assert(mem.eql(u8, result, "f64: NaN\n"));
554 }
555 {
556 var buf1: [32]u8 = undefined;
557 const result = bufPrint(buf1[0..], "f64: {}\n", math.inf_f64);
558 assert(mem.eql(u8, result, "f64: Infinity\n"));
559 }
560 {
561 var buf1: [32]u8 = undefined;
562 const result = bufPrint(buf1[0..], "f64: {}\n", -math.inf_f64);
563 assert(mem.eql(u8, result, "f64: -Infinity\n"));
564 }
565 }
534566}
535567
536568pub fn trim(buf: []const u8) -> []const u8 {