fn check(comptime T: type, value: T, comptime expected: []const u8) !void T: typevalue: Texpected: []const u81518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536fn check(comptime T: type, value: T, comptime expected: []const u8) !void {
const I = @Int(.unsigned, @bitSizeOf(T));
var buf: [6000]u8 = undefined;
const value_bits: I = @bitCast(value);
const s = try render(&buf, value, .{});
try std.testing.expectEqualStrings(expected, s);
if (T == f80 and builtin.target.os.tag == .windows and builtin.target.cpu.arch == .x86_64) return;
const o = try std.fmt.parseFloat(T, s);
const o_bits: I = @bitCast(o);
if (std.math.isNan(value)) {
try std.testing.expect(std.math.isNan(o));
} else {
try std.testing.expectEqual(value_bits, o_bits);
}
}