Add support for nxxm.

[nxxm](https://nxxm.github.io)
This commit is contained in:
ArthurSonzogni
2019-02-02 01:59:48 +01:00
parent 2eddd0fa17
commit ef0de8d873
72 changed files with 309 additions and 165 deletions

31
tests/gauge_test.cpp Normal file
View File

@@ -0,0 +1,31 @@
#include "ftxui/dom/elements.hpp"
#include "ftxui/screen/screen.hpp"
#include "gtest/gtest.h"
using namespace ftxui;
using namespace ftxui;
TEST(GaugeTest, zero) {
auto root = gauge(0);
Screen screen(11,1);
Render(screen, root.get());
EXPECT_EQ(" ", screen.ToString());
}
TEST(GaugeTest, half) {
auto root = gauge(0.5);
Screen screen(11,1);
Render(screen, root.get());
EXPECT_EQ("█████▍ ", screen.ToString());
//" ▏▎▍▌▊▉█";
}
TEST(GaugeTest, one) {
auto root = gauge(1.0);
Screen screen(11,1);
Render(screen, root.get());
EXPECT_EQ("███████████", screen.ToString());
}

120
tests/hbox_test.cpp Normal file
View File

@@ -0,0 +1,120 @@
#include "ftxui/dom/elements.hpp"
#include "ftxui/screen/screen.hpp"
#include "gtest/gtest.h"
using namespace ftxui;
using namespace ftxui;
TEST(HBoxTest, ScreenSmaller1) {
auto root = hbox(
text(L"text_1"),
text(L"text_2")
);
Screen screen(11,1);
Render(screen, root.get());
EXPECT_EQ("text_1text_", screen.ToString());
}
TEST(HBoxTest, ScreenSmaller2) {
auto root = hbox(
text(L"text_1"),
text(L"text_2")
);
Screen screen(10,1);
Render(screen, root.get());
EXPECT_EQ("text_1text", screen.ToString());
}
TEST(HBoxTest, ScreenFit) {
auto root = hbox(
text(L"text_1"),
text(L"text_2")
);
Screen screen(12,1);
Render(screen, root.get());
EXPECT_EQ("text_1text_2", screen.ToString());
}
TEST(HBoxTest, ScreenBigger1) {
auto root = hbox(
text(L"text_1"),
text(L"text_2")
);
Screen screen(13,1);
Render(screen, root.get());
EXPECT_EQ("text_1text_2 ", screen.ToString());
}
TEST(HBoxTest, ScreenBigger2) {
auto root = hbox(
text(L"text_1"),
text(L"text_2")
);
Screen screen(14,1);
Render(screen, root.get());
EXPECT_EQ("text_1text_2 ", screen.ToString());
}
TEST(HBoxTest, ScreenSmaller1Flex) {
auto root = hbox(
text(L"text_1"),
filler(),
text(L"text_2")
);
Screen screen(11,1);
Render(screen, root.get());
EXPECT_EQ("text_1text_", screen.ToString());
}
TEST(HBoxTest, ScreenSmaller2Flex) {
auto root = hbox(
text(L"text_1"),
filler(),
text(L"text_2")
);
Screen screen(10,1);
Render(screen, root.get());
EXPECT_EQ("text_1text", screen.ToString());
}
TEST(HBoxTest, ScreenFitFlex) {
auto root = hbox(
text(L"text_1"),
filler(),
text(L"text_2")
);
Screen screen(12,1);
Render(screen, root.get());
EXPECT_EQ("text_1text_2", screen.ToString());
}
TEST(HBoxTest, ScreenBigger1Flex) {
auto root = hbox(
text(L"text_1"),
filler(),
text(L"text_2")
);
Screen screen(13,1);
Render(screen, root.get());
EXPECT_EQ("text_1 text_2", screen.ToString());
}
TEST(HBoxTest, ScreenBigger2Flex) {
auto root = hbox(
text(L"text_1"),
filler(),
text(L"text_2")
);
Screen screen(14,1);
Render(screen, root.get());
EXPECT_EQ("text_1 text_2", screen.ToString());
}

46
tests/text_test.cpp Normal file
View File

@@ -0,0 +1,46 @@
#include "ftxui/dom/elements.hpp"
#include "ftxui/screen/screen.hpp"
#include "gtest/gtest.h"
using namespace ftxui;
using namespace ftxui;
TEST(TextTest, ScreenHeightSmaller) {
auto element = text(L"test");
Screen screen(2, 0);
Render(screen, element.get());
EXPECT_EQ("", screen.ToString());
}
TEST(TextTest, ScreenSmaller) {
auto element = text(L"test");
Screen screen(2, 1);
Render(screen, element.get());
EXPECT_EQ("te", screen.ToString());
}
TEST(TextTest, ScreenFit) {
auto element = text(L"test");
Screen screen(4, 1);
Render(screen, element.get());
EXPECT_EQ("test", screen.ToString());
}
TEST(TextTest, ScreenBigger) {
auto element = text(L"test");
Screen screen(6, 1);
Render(screen, element.get());
EXPECT_EQ("test ", screen.ToString());
}
TEST(TextTest, ScreenBigger2) {
auto element = text(L"test");
Screen screen(6, 2);
Render(screen, element.get());
EXPECT_EQ("test \n ", screen.ToString());
}

68
tests/vbox_test.cpp Normal file
View File

@@ -0,0 +1,68 @@
#include "ftxui/dom/elements.hpp"
#include "ftxui/screen/screen.hpp"
#include "gtest/gtest.h"
using namespace ftxui;
using namespace ftxui;
TEST(VBoxTest, ScreenSmaller1) {
auto root = vbox(text(L"text_1"), text(L"text_2"));
Screen screen(6, 1);
Render(screen, root.get());
EXPECT_EQ("text_2", screen.ToString());
}
TEST(VBoxTest, ScreenFit) {
auto root = vbox(text(L"text_1"), text(L"text_2"));
Screen screen(6, 2);
Render(screen, root.get());
EXPECT_EQ("text_1\ntext_2", screen.ToString());
}
TEST(VBoxTest, ScreenBigger1) {
auto root = vbox(text(L"text_1"), text(L"text_2"));
Screen screen(6, 3);
Render(screen, root.get());
EXPECT_EQ("text_1\ntext_2\n ", screen.ToString());
}
TEST(VBoxTest, ScreenBigger2) {
auto root = vbox(text(L"text_1"), text(L"text_2"));
Screen screen(6, 4);
Render(screen, root.get());
EXPECT_EQ("text_1\ntext_2\n \n ", screen.ToString());
}
TEST(VBoxTest, ScreenSmaller1Flex) {
auto root = vbox(text(L"text_1"), filler(), text(L"text_2"));
Screen screen(6, 1);
Render(screen, root.get());
EXPECT_EQ("text_1", screen.ToString());
}
TEST(VBoxTest, ScreenFitFlex) {
auto root = vbox(text(L"text_1"), filler(), text(L"text_2"));
Screen screen(15, 10);
Render(screen, root.get());
EXPECT_EQ("text_1\ntext_2", screen.ToString());
}
TEST(VBoxTest, ScreenBigger1Flex) {
auto root = vbox(text(L"text_1"), filler(), text(L"text_2"));
Screen screen(6, 3);
Render(screen, root.get());
EXPECT_EQ("text_1\n \ntext_2", screen.ToString());
}
TEST(VBoxTest, ScreenBigger2Flex) {
auto root = vbox(text(L"text_1"), filler(), text(L"text_2"));
Screen screen(6, 4);
Render(screen, root.get());
EXPECT_EQ("text_1\n \n \ntext_2", screen.ToString());
}