From 35f18e584fae890f686eafcdc12a2fde6281206d Mon Sep 17 00:00:00 2001 From: Sam Atman Date: Tue, 29 Apr 2025 15:32:58 -0400 Subject: Add general tests step After a considerable slog, all tests are reachable from the test step, and pass. Almost every failure was related to the change away from the inclusion of an allocator on this or that. --- src/WidthData.zig | 50 ++++++++++++++++++++++++++------------------------ 1 file changed, 26 insertions(+), 24 deletions(-) (limited to 'src/WidthData.zig') diff --git a/src/WidthData.zig b/src/WidthData.zig index 4a49c80..b07a679 100644 --- a/src/WidthData.zig +++ b/src/WidthData.zig @@ -55,28 +55,30 @@ pub fn codePointWidth(self: Self, cp: u21) i4 { } test "codePointWidth" { - try testing.expectEqual(@as(i4, 0), codePointWidth(0x0000)); // null - try testing.expectEqual(@as(i4, -1), codePointWidth(0x8)); // \b - try testing.expectEqual(@as(i4, -1), codePointWidth(0x7f)); // DEL - try testing.expectEqual(@as(i4, 0), codePointWidth(0x0005)); // Cf - try testing.expectEqual(@as(i4, 0), codePointWidth(0x0007)); // \a BEL - try testing.expectEqual(@as(i4, 0), codePointWidth(0x000A)); // \n LF - try testing.expectEqual(@as(i4, 0), codePointWidth(0x000B)); // \v VT - try testing.expectEqual(@as(i4, 0), codePointWidth(0x000C)); // \f FF - try testing.expectEqual(@as(i4, 0), codePointWidth(0x000D)); // \r CR - try testing.expectEqual(@as(i4, 0), codePointWidth(0x000E)); // SQ - try testing.expectEqual(@as(i4, 0), codePointWidth(0x000F)); // SI - - try testing.expectEqual(@as(i4, 0), codePointWidth(0x070F)); // Cf - try testing.expectEqual(@as(i4, 1), codePointWidth(0x0603)); // Cf Arabic - - try testing.expectEqual(@as(i4, 1), codePointWidth(0x00AD)); // soft-hyphen - try testing.expectEqual(@as(i4, 2), codePointWidth(0x2E3A)); // two-em dash - try testing.expectEqual(@as(i4, 3), codePointWidth(0x2E3B)); // three-em dash - - try testing.expectEqual(@as(i4, 1), codePointWidth(0x00BD)); // ambiguous halfwidth - - try testing.expectEqual(@as(i4, 1), codePointWidth('é')); - try testing.expectEqual(@as(i4, 2), codePointWidth('😊')); - try testing.expectEqual(@as(i4, 2), codePointWidth('统')); + const wd = try Self.init(std.testing.allocator); + defer wd.deinit(std.testing.allocator); + try testing.expectEqual(@as(i4, 0), wd.codePointWidth(0x0000)); // null + try testing.expectEqual(@as(i4, -1), wd.codePointWidth(0x8)); // \b + try testing.expectEqual(@as(i4, -1), wd.codePointWidth(0x7f)); // DEL + try testing.expectEqual(@as(i4, 0), wd.codePointWidth(0x0005)); // Cf + try testing.expectEqual(@as(i4, 0), wd.codePointWidth(0x0007)); // \a BEL + try testing.expectEqual(@as(i4, 0), wd.codePointWidth(0x000A)); // \n LF + try testing.expectEqual(@as(i4, 0), wd.codePointWidth(0x000B)); // \v VT + try testing.expectEqual(@as(i4, 0), wd.codePointWidth(0x000C)); // \f FF + try testing.expectEqual(@as(i4, 0), wd.codePointWidth(0x000D)); // \r CR + try testing.expectEqual(@as(i4, 0), wd.codePointWidth(0x000E)); // SQ + try testing.expectEqual(@as(i4, 0), wd.codePointWidth(0x000F)); // SI + + try testing.expectEqual(@as(i4, 0), wd.codePointWidth(0x070F)); // Cf + try testing.expectEqual(@as(i4, 1), wd.codePointWidth(0x0603)); // Cf Arabic + + try testing.expectEqual(@as(i4, 1), wd.codePointWidth(0x00AD)); // soft-hyphen + try testing.expectEqual(@as(i4, 2), wd.codePointWidth(0x2E3A)); // two-em dash + try testing.expectEqual(@as(i4, 3), wd.codePointWidth(0x2E3B)); // three-em dash + + try testing.expectEqual(@as(i4, 1), wd.codePointWidth(0x00BD)); // ambiguous halfwidth + + try testing.expectEqual(@as(i4, 1), wd.codePointWidth('é')); + try testing.expectEqual(@as(i4, 2), wd.codePointWidth('😊')); + try testing.expectEqual(@as(i4, 2), wd.codePointWidth('统')); } -- cgit v1.2.3