Make improvements

This commit is contained in:
Justine Tunney 2020-12-01 03:43:40 -08:00
parent 3e4fd4b0ad
commit e44a0cf6f8
256 changed files with 23100 additions and 2294 deletions

View file

@ -18,19 +18,64 @@
02110-1301 USA
*/
#include "libc/bits/bits.h"
#include "libc/mem/mem.h"
#include "libc/str/str.h"
#include "libc/testlib/ezbench.h"
#include "libc/testlib/hyperion.h"
#include "libc/testlib/testlib.h"
TEST(tprecode8to16, test) {
size_t size = 8;
char16_t *buf = tmalloc(size * sizeof(char16_t));
EXPECT_EQ(7, tprecode8to16(buf, size, "hello☻♥"));
EXPECT_EQ(7, tprecode8to16(buf, size, "hello☻♥").ax);
EXPECT_STREQ(u"hello☻♥", buf);
tfree(buf);
}
TEST(tprecode8to16, testEmptyOut_doesNothingButStillCountsSrcLength) {
axdx_t r;
r = tprecode8to16(NULL, 0, "hi");
EXPECT_EQ(0, r.ax);
EXPECT_EQ(3, r.dx);
}
TEST(tprecode8to16, testOnlyRoomForNul_writesIt) {
axdx_t r;
char16_t b[1] = {1};
r = tprecode8to16(b, 1, "hi");
EXPECT_EQ(0, r.ax);
EXPECT_EQ(3, r.dx);
EXPECT_EQ(0, b[0]);
}
TEST(tprecode8to16, testTooLittle_stillNulTerminates) {
axdx_t r;
char16_t b[2] = {1, 2};
r = tprecode8to16(b, 2, "hi");
EXPECT_EQ(1, r.ax);
EXPECT_EQ(3, r.dx);
EXPECT_EQ('h', b[0]);
EXPECT_EQ(0, b[1]);
}
TEST(tprecode8to16, test2) {
char16_t b[128];
EXPECT_EQ(34, tprecode8to16(b, 128, "(╯°□°)╯︵L┻━┻ 𐌰𐌱𐌲𐌳𐌴𐌵𐌶𐌷𐌸𐌹"));
EXPECT_EQ(34, tprecode8to16(b, 128, "(╯°□°)╯︵L┻━┻ 𐌰𐌱𐌲𐌳𐌴𐌵𐌶𐌷𐌸𐌹").ax);
EXPECT_STREQ(u"(╯°□°)╯︵L┻━┻ 𐌰𐌱𐌲𐌳𐌴𐌵𐌶𐌷𐌸𐌹", b);
}
TEST(tprecode8to16, testAscii_vectorSpeedupWorks) {
size_t size = 32;
char16_t *buf = tmalloc(size * sizeof(char16_t));
EXPECT_EQ(31,
tprecode8to16(buf, size, "babaaaaaaaaaaaaaaaaaaaaaaaaaaaaa").ax);
EXPECT_STREQ(u"babaaaaaaaaaaaaaaaaaaaaaaaaaaaa", buf);
tfree(buf);
}
BENCH(tprecode8to16, bench) {
char16_t *buf = malloc((kHyperionSize + 1) * 2);
EZBENCH2("tprecode8to16", donothing,
tprecode8to16(buf, kHyperionSize, kHyperion));
free(buf);
}