authorgravatar for jdknezek@gmail.comJonathan Knezek <jdknezek@gmail.com> 2021-03-27 22:16:03-05:00
committergravatar for mail@isaacfreund.comIsaac Freund <mail@isaacfreund.com> 2021-03-28 15:44:15+02:00
logbbe6a0dddde0e19b595dddf7e029b3e950ac14a0
treed50e656d20c61e367792d306b69d769f67aca0c4
parentab9324e604068d4afb4e65a8e587bea95ab1051a

Add a test & fix for std.fmt.fmtDuration


1 files changed, 7 insertions(+), 2 deletions(-)

lib/std/fmt.zig+7-2
...@@ -1250,9 +1250,9 @@ fn formatDuration(ns: u64, comptime fmt: []const u8, options: std.fmt.FormatOpti...@@ -1250,9 +1250,9 @@ fn formatDuration(ns: u64, comptime fmt: []const u8, options: std.fmt.FormatOpti
1250 const kunits = ns_remaining * 1000 / unit.ns;1250 const kunits = ns_remaining * 1000 / unit.ns;
1251 if (kunits >= 1000) {1251 if (kunits >= 1000) {
1252 try formatInt(kunits / 1000, 10, false, .{}, writer);1252 try formatInt(kunits / 1000, 10, false, .{}, writer);
1253 if (kunits > 1000) {1253 const frac = kunits % 1000;
1254 if (frac > 0) {
1254 // Write up to 3 decimal places1255 // Write up to 3 decimal places
1255 const frac = kunits % 1000;
1256 var buf = [_]u8{ '.', 0, 0, 0 };1256 var buf = [_]u8{ '.', 0, 0, 0 };
1257 _ = formatIntBuf(buf[1..], frac, 10, false, .{ .fill = '0', .width = 3 });1257 _ = formatIntBuf(buf[1..], frac, 10, false, .{ .fill = '0', .width = 3 });
1258 var end: usize = 4;1258 var end: usize = 4;
...@@ -1286,9 +1286,14 @@ test "fmtDuration" {...@@ -1286,9 +1286,14 @@ test "fmtDuration" {
1286 .{ .s = "1us", .d = std.time.ns_per_us },1286 .{ .s = "1us", .d = std.time.ns_per_us },
1287 .{ .s = "1.45us", .d = 1450 },1287 .{ .s = "1.45us", .d = 1450 },
1288 .{ .s = "1.5us", .d = 3 * std.time.ns_per_us / 2 },1288 .{ .s = "1.5us", .d = 3 * std.time.ns_per_us / 2 },
1289 .{ .s = "14.5us", .d = 14500 },
1290 .{ .s = "145us", .d = 145000 },
1289 .{ .s = "999.999us", .d = std.time.ns_per_ms - 1 },1291 .{ .s = "999.999us", .d = std.time.ns_per_ms - 1 },
1290 .{ .s = "1ms", .d = std.time.ns_per_ms + 1 },1292 .{ .s = "1ms", .d = std.time.ns_per_ms + 1 },
1291 .{ .s = "1.5ms", .d = 3 * std.time.ns_per_ms / 2 },1293 .{ .s = "1.5ms", .d = 3 * std.time.ns_per_ms / 2 },
1294 .{ .s = "1.11ms", .d = 1110000 },
1295 .{ .s = "1.111ms", .d = 1111000 },
1296 .{ .s = "1.111ms", .d = 1111100 },
1292 .{ .s = "999.999ms", .d = std.time.ns_per_s - 1 },1297 .{ .s = "999.999ms", .d = std.time.ns_per_s - 1 },
1293 .{ .s = "1s", .d = std.time.ns_per_s },1298 .{ .s = "1s", .d = std.time.ns_per_s },
1294 .{ .s = "59.999s", .d = std.time.ns_per_min - 1 },1299 .{ .s = "59.999s", .d = std.time.ns_per_min - 1 },