Support full-width characters (CJK)

+ 3 tests.

The goal is to fix:
https://github.com/ArthurSonzogni/FTXUI/issues/2#issuecomment-504871456
This commit is contained in:
ArthurSonzogni
2019-06-24 23:39:37 +02:00
parent 9c1913de51
commit eb6baaceea
8 changed files with 358 additions and 16 deletions

View File

@@ -44,3 +44,39 @@ TEST(TextTest, ScreenBigger2) {
EXPECT_EQ("test \n ", screen.ToString());
}
// See https://github.com/ArthurSonzogni/FTXUI/issues/2#issuecomment-504871456
TEST(TextTest, CJK) {
auto element = text(L"测试") | border;
Screen screen(6, 3);
Render(screen, element.get());
EXPECT_EQ(
"┌────┐\n"
"│测试│\n"
"└────┘",
screen.ToString());
}
// See https://github.com/ArthurSonzogni/FTXUI/issues/2#issuecomment-504871456
TEST(TextTest, CJK_2) {
auto element = text(L"测试") | border;
Screen screen(5, 3);
Render(screen, element.get());
EXPECT_EQ(
"┌───┐\n"
"│测试\n"
"└───┘",
screen.ToString());
}
// See https://github.com/ArthurSonzogni/FTXUI/issues/2#issuecomment-504871456
TEST(TextTest, CJK_3) {
auto element = text(L"测试") | border;
Screen screen(4, 3);
Render(screen, element.get());
EXPECT_EQ(
"┌──┐\n"
"│测│\n"
"└──┘",
screen.ToString());
}

View File

@@ -10,7 +10,7 @@ TEST(VBoxTest, ScreenSmaller1) {
Screen screen(6, 1);
Render(screen, root.get());
EXPECT_EQ("text_2", screen.ToString());
EXPECT_EQ("text_1", screen.ToString());
}
TEST(VBoxTest, ScreenFit) {