mirror of
				https://github.com/ArthurSonzogni/FTXUI.git
				synced 2025-11-04 05:28:15 +08:00 
			
		
		
		
	Move tests next to their implementations.
This commit is contained in:
		
				
					committed by
					
						
						Arthur Sonzogni
					
				
			
			
				
	
			
			
			
						parent
						
							20d4ee458a
						
					
				
				
					commit
					f48bfcff10
				
			
							
								
								
									
										31
									
								
								src/ftxui/dom/gauge_test.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										31
									
								
								src/ftxui/dom/gauge_test.cpp
									
									
									
									
									
										Normal 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
									
								
								src/ftxui/dom/hbox_test.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										120
									
								
								src/ftxui/dom/hbox_test.cpp
									
									
									
									
									
										Normal 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());
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										82
									
								
								src/ftxui/dom/text_test.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										82
									
								
								src/ftxui/dom/text_test.cpp
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,82 @@
 | 
			
		||||
#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());
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 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());
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										74
									
								
								src/ftxui/dom/vbox_test.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										74
									
								
								src/ftxui/dom/vbox_test.cpp
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,74 @@
 | 
			
		||||
#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_1", 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(7, 5);
 | 
			
		||||
  Render(screen, root.get());
 | 
			
		||||
 | 
			
		||||
  EXPECT_EQ(
 | 
			
		||||
    "text_1 \n"
 | 
			
		||||
    "       \n"
 | 
			
		||||
    "       \n"
 | 
			
		||||
    "       \n"
 | 
			
		||||
    "text_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());
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user