mirror of
https://github.com/ArthurSonzogni/FTXUI.git
synced 2024-11-26 04:31:34 +08:00
execute IWYU and add some coverage tests.
This commit is contained in:
parent
84d6e6b3dd
commit
d0890f94d1
@ -11,36 +11,21 @@ namespace ftxui {
|
|||||||
|
|
||||||
TEST(AnimationTest, StartAndEnd) {
|
TEST(AnimationTest, StartAndEnd) {
|
||||||
std::vector<animation::easing::Function> functions = {
|
std::vector<animation::easing::Function> functions = {
|
||||||
animation::easing::Linear,
|
animation::easing::Linear, animation::easing::QuadraticIn,
|
||||||
animation::easing::QuadraticIn,
|
animation::easing::QuadraticOut, animation::easing::QuadraticInOut,
|
||||||
animation::easing::QuadraticOut,
|
animation::easing::CubicIn, animation::easing::CubicOut,
|
||||||
animation::easing::QuadraticInOut,
|
animation::easing::CubicInOut, animation::easing::QuarticIn,
|
||||||
animation::easing::CubicIn,
|
animation::easing::QuarticOut, animation::easing::QuarticInOut,
|
||||||
animation::easing::CubicOut,
|
animation::easing::QuinticIn, animation::easing::QuinticOut,
|
||||||
animation::easing::CubicInOut,
|
animation::easing::QuinticInOut, animation::easing::SineIn,
|
||||||
animation::easing::QuarticIn,
|
animation::easing::SineOut, animation::easing::SineInOut,
|
||||||
animation::easing::QuarticOut,
|
animation::easing::CircularIn, animation::easing::CircularOut,
|
||||||
animation::easing::QuarticInOut,
|
animation::easing::CircularInOut, animation::easing::ExponentialIn,
|
||||||
animation::easing::QuinticIn,
|
animation::easing::ExponentialOut, animation::easing::ExponentialInOut,
|
||||||
animation::easing::QuinticOut,
|
animation::easing::ElasticIn, animation::easing::ElasticOut,
|
||||||
animation::easing::QuinticInOut,
|
animation::easing::ElasticInOut, animation::easing::BackIn,
|
||||||
animation::easing::SineIn,
|
animation::easing::BackOut, animation::easing::BackInOut,
|
||||||
animation::easing::SineOut,
|
animation::easing::BounceIn, animation::easing::BounceOut,
|
||||||
animation::easing::SineInOut,
|
|
||||||
animation::easing::CircularIn,
|
|
||||||
animation::easing::CircularOut,
|
|
||||||
animation::easing::CircularInOut,
|
|
||||||
animation::easing::ExponentialIn,
|
|
||||||
animation::easing::ExponentialOut,
|
|
||||||
animation::easing::ExponentialInOut,
|
|
||||||
animation::easing::ElasticIn,
|
|
||||||
animation::easing::ElasticOut,
|
|
||||||
animation::easing::ElasticInOut,
|
|
||||||
animation::easing::BackIn,
|
|
||||||
animation::easing::BackOut,
|
|
||||||
animation::easing::BackInOut,
|
|
||||||
animation::easing::BounceIn,
|
|
||||||
animation::easing::BounceOut,
|
|
||||||
animation::easing::BounceInOut,
|
animation::easing::BounceInOut,
|
||||||
};
|
};
|
||||||
for (auto& it : functions) {
|
for (auto& it : functions) {
|
||||||
|
@ -115,9 +115,8 @@ class MenuBase : public ComponentBase {
|
|||||||
bool is_focused = (focused_entry() == i) && is_menu_focused;
|
bool is_focused = (focused_entry() == i) && is_menu_focused;
|
||||||
bool is_selected = (*selected_ == i);
|
bool is_selected = (*selected_ == i);
|
||||||
|
|
||||||
auto focus_management = !is_selected ? nothing
|
auto focus_management =
|
||||||
: is_menu_focused ? focus
|
!is_selected ? nothing : is_menu_focused ? focus : nothing;
|
||||||
: nothing;
|
|
||||||
EntryState state = {
|
EntryState state = {
|
||||||
entries_[i],
|
entries_[i],
|
||||||
false,
|
false,
|
||||||
|
@ -43,6 +43,53 @@ TEST(MenuTest, RemoveEntries) {
|
|||||||
EXPECT_EQ(focused_entry, 1);
|
EXPECT_EQ(focused_entry, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TEST(MenuTest, Directions) {
|
||||||
|
int selected = 0;
|
||||||
|
std::vector<std::string> entries = {"1", "2", "3"};
|
||||||
|
MenuOption option;
|
||||||
|
auto menu = Menu(&entries, &selected, &option);
|
||||||
|
|
||||||
|
{
|
||||||
|
option.direction = MenuOption::Down;
|
||||||
|
Screen screen(4, 3);
|
||||||
|
Render(screen, menu->Render());
|
||||||
|
EXPECT_EQ(screen.ToString(),
|
||||||
|
"\x1B[1m\x1B[7m> 1 \x1B[22m\x1B[27m\r\n"
|
||||||
|
" 2 \r\n"
|
||||||
|
" 3 ");
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
option.direction = MenuOption::Up;
|
||||||
|
Screen screen(4, 3);
|
||||||
|
Render(screen, menu->Render());
|
||||||
|
EXPECT_EQ(screen.ToString(),
|
||||||
|
" 3 \r\n"
|
||||||
|
" 2 \r\n"
|
||||||
|
"\x1B[1m\x1B[7m> 1 \x1B[22m\x1B[27m");
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
option.direction = MenuOption::Right;
|
||||||
|
Screen screen(10, 1);
|
||||||
|
Render(screen, menu->Render());
|
||||||
|
EXPECT_EQ(screen.ToString(),
|
||||||
|
"\x1B[1m\x1B[7m> 1\x1B[22m\x1B[27m"
|
||||||
|
" 2"
|
||||||
|
" 3 ");
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
option.direction = MenuOption::Left;
|
||||||
|
Screen screen(10, 1);
|
||||||
|
Render(screen, menu->Render());
|
||||||
|
EXPECT_EQ(screen.ToString(),
|
||||||
|
" 3"
|
||||||
|
" 2"
|
||||||
|
"\x1B[1m\x1B[7m> 1\x1B[22m\x1B[27m ");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
} // namespace ftxui
|
} // namespace ftxui
|
||||||
|
|
||||||
// Copyright 2022 Arthur Sonzogni. All rights reserved.
|
// Copyright 2022 Arthur Sonzogni. All rights reserved.
|
||||||
|
@ -39,9 +39,8 @@ class RadioboxBase : public ComponentBase {
|
|||||||
for (int i = 0; i < size(); ++i) {
|
for (int i = 0; i < size(); ++i) {
|
||||||
bool is_focused = (focused_entry() == i) && is_menu_focused;
|
bool is_focused = (focused_entry() == i) && is_menu_focused;
|
||||||
bool is_selected = (hovered_ == i);
|
bool is_selected = (hovered_ == i);
|
||||||
auto focus_management = !is_selected ? nothing
|
auto focus_management =
|
||||||
: is_menu_focused ? focus
|
!is_selected ? nothing : is_menu_focused ? focus : select;
|
||||||
: select;
|
|
||||||
auto state = EntryState{
|
auto state = EntryState{
|
||||||
entries_[i],
|
entries_[i],
|
||||||
*selected_ == i,
|
*selected_ == i,
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
#include <gtest/gtest-message.h> // for Message
|
#include <gtest/gtest-message.h> // for Message
|
||||||
#include <gtest/gtest-test-part.h> // for SuiteApiResolver, TestFactoryImpl, TestPartResult
|
#include <gtest/gtest-test-part.h> // for SuiteApiResolver, TestFactoryImpl, TestPartResult
|
||||||
#include "gtest/gtest_pred_impl.h" // for Test, EXPECT_EQ, TEST
|
|
||||||
#include <string> // for allocator
|
#include <string> // for allocator
|
||||||
#include "ftxui/dom/elements.hpp" // for text, flexbox
|
#include "ftxui/dom/elements.hpp" // for text, flexbox
|
||||||
#include "ftxui/screen/screen.hpp" // for Screen
|
#include "ftxui/screen/screen.hpp" // for Screen
|
||||||
|
#include "gtest/gtest_pred_impl.h" // for Test, EXPECT_EQ, TEST
|
||||||
|
|
||||||
namespace ftxui {
|
namespace ftxui {
|
||||||
|
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
#include <gtest/gtest-message.h> // for Message
|
#include <gtest/gtest-message.h> // for Message
|
||||||
#include <gtest/gtest-test-part.h> // for SuiteApiResolver, TestFactoryImpl, TestPartResult
|
#include <gtest/gtest-test-part.h> // for SuiteApiResolver, TestFactoryImpl, TestPartResult
|
||||||
#include "gtest/gtest_pred_impl.h" // for Test, EXPECT_EQ, TEST
|
|
||||||
#include <string> // for allocator
|
#include <string> // for allocator
|
||||||
#include "ftxui/dom/elements.hpp" // for text, flexbox
|
#include "ftxui/dom/elements.hpp" // for text, flexbox
|
||||||
#include "ftxui/screen/screen.hpp" // for Screen
|
#include "ftxui/screen/screen.hpp" // for Screen
|
||||||
|
#include "gtest/gtest_pred_impl.h" // for Test, EXPECT_EQ, TEST
|
||||||
|
|
||||||
namespace ftxui {
|
namespace ftxui {
|
||||||
|
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
#include <gtest/gtest-message.h> // for Message
|
#include <gtest/gtest-message.h> // for Message
|
||||||
#include <gtest/gtest-test-part.h> // for SuiteApiResolver, TestFactoryImpl, TestPartResult
|
#include <gtest/gtest-test-part.h> // for SuiteApiResolver, TestFactoryImpl, TestPartResult
|
||||||
#include "gtest/gtest_pred_impl.h" // for Test, EXPECT_EQ, TEST
|
|
||||||
#include <string> // for allocator
|
#include <string> // for allocator
|
||||||
#include "ftxui/dom/elements.hpp" // for text, flexbox
|
#include "ftxui/dom/elements.hpp" // for text, flexbox
|
||||||
#include "ftxui/screen/screen.hpp" // for Screen
|
#include "ftxui/screen/screen.hpp" // for Screen
|
||||||
|
#include "gtest/gtest_pred_impl.h" // for Test, EXPECT_EQ, TEST
|
||||||
|
|
||||||
namespace ftxui {
|
namespace ftxui {
|
||||||
|
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
#include <gtest/gtest-message.h> // for Message
|
#include <gtest/gtest-message.h> // for Message
|
||||||
#include <gtest/gtest-test-part.h> // for SuiteApiResolver, TestFactoryImpl, TestPartResult
|
#include <gtest/gtest-test-part.h> // for SuiteApiResolver, TestFactoryImpl, TestPartResult
|
||||||
#include "gtest/gtest_pred_impl.h" // for Test, EXPECT_EQ, TEST
|
|
||||||
#include <string> // for allocator
|
#include <string> // for allocator
|
||||||
#include "ftxui/dom/elements.hpp" // for text, flexbox
|
#include "ftxui/dom/elements.hpp" // for text, flexbox
|
||||||
#include "ftxui/screen/screen.hpp" // for Screen
|
#include "ftxui/screen/screen.hpp" // for Screen
|
||||||
|
#include "gtest/gtest_pred_impl.h" // for Test, EXPECT_EQ, TEST
|
||||||
|
|
||||||
namespace ftxui {
|
namespace ftxui {
|
||||||
|
|
||||||
@ -16,7 +16,7 @@ uint32_t Hash(const std::string s) {
|
|||||||
}
|
}
|
||||||
return hash;
|
return hash;
|
||||||
}
|
}
|
||||||
}
|
} // namespace
|
||||||
|
|
||||||
TEST(CanvasTest, GoldPoint) {
|
TEST(CanvasTest, GoldPoint) {
|
||||||
Terminal::SetColorSupport(Terminal::Color::TrueColor);
|
Terminal::SetColorSupport(Terminal::Color::TrueColor);
|
||||||
@ -84,7 +84,6 @@ TEST(CanvasTest, GoldBlockColor) {
|
|||||||
EXPECT_EQ(Hash(screen.ToString()), 2869205941);
|
EXPECT_EQ(Hash(screen.ToString()), 2869205941);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
TEST(CanvasTest, GoldText) {
|
TEST(CanvasTest, GoldText) {
|
||||||
Terminal::SetColorSupport(Terminal::Color::TrueColor);
|
Terminal::SetColorSupport(Terminal::Color::TrueColor);
|
||||||
Canvas c(10, 10);
|
Canvas c(10, 10);
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
#include <gtest/gtest-message.h> // for Message
|
#include <gtest/gtest-message.h> // for Message
|
||||||
#include <gtest/gtest-test-part.h> // for SuiteApiResolver, TestFactoryImpl, TestPartResult
|
#include <gtest/gtest-test-part.h> // for SuiteApiResolver, TestFactoryImpl, TestPartResult
|
||||||
#include "gtest/gtest_pred_impl.h" // for Test, EXPECT_EQ, TEST
|
|
||||||
#include <string> // for allocator
|
#include <string> // for allocator
|
||||||
#include "ftxui/dom/elements.hpp" // for text, flexbox
|
#include "ftxui/dom/elements.hpp" // for text, flexbox
|
||||||
#include "ftxui/screen/screen.hpp" // for Screen
|
#include "ftxui/screen/screen.hpp" // for Screen
|
||||||
|
#include "gtest/gtest_pred_impl.h" // for Test, EXPECT_EQ, TEST
|
||||||
|
|
||||||
namespace ftxui {
|
namespace ftxui {
|
||||||
|
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
#include <gtest/gtest-message.h> // for Message
|
#include <gtest/gtest-message.h> // for Message
|
||||||
#include <gtest/gtest-test-part.h> // for SuiteApiResolver, TestFactoryImpl, TestPartResult
|
#include <gtest/gtest-test-part.h> // for SuiteApiResolver, TestFactoryImpl, TestPartResult
|
||||||
#include "gtest/gtest_pred_impl.h" // for Test, EXPECT_EQ, TEST
|
|
||||||
#include <string> // for allocator
|
#include <string> // for allocator
|
||||||
#include "ftxui/dom/elements.hpp" // for text, flexbox
|
#include "ftxui/dom/elements.hpp" // for text, flexbox
|
||||||
#include "ftxui/screen/screen.hpp" // for Screen
|
#include "ftxui/screen/screen.hpp" // for Screen
|
||||||
|
#include "gtest/gtest_pred_impl.h" // for Test, EXPECT_EQ, TEST
|
||||||
|
|
||||||
namespace ftxui {
|
namespace ftxui {
|
||||||
|
|
||||||
|
@ -358,7 +358,6 @@ void Compute(Global& global) {
|
|||||||
Compute1(global);
|
Compute1(global);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
} // namespace ftxui::flexbox_helper
|
} // namespace ftxui::flexbox_helper
|
||||||
|
|
||||||
// Copyright 2021 Arthur Sonzogni. All rights reserved.
|
// Copyright 2021 Arthur Sonzogni. All rights reserved.
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
#include <gtest/gtest-message.h> // for Message
|
#include <gtest/gtest-message.h> // for Message
|
||||||
#include <gtest/gtest-test-part.h> // for SuiteApiResolver, TestFactoryImpl, TestPartResult
|
#include <gtest/gtest-test-part.h> // for SuiteApiResolver, TestFactoryImpl, TestPartResult
|
||||||
#include "gtest/gtest_pred_impl.h" // for Test, EXPECT_EQ, TEST
|
|
||||||
#include <string> // for allocator
|
#include <string> // for allocator
|
||||||
#include "ftxui/dom/elements.hpp" // for text, flexbox
|
#include "ftxui/dom/elements.hpp" // for text, flexbox
|
||||||
#include "ftxui/screen/screen.hpp" // for Screen
|
#include "ftxui/screen/screen.hpp" // for Screen
|
||||||
|
#include "gtest/gtest_pred_impl.h" // for Test, EXPECT_EQ, TEST
|
||||||
|
|
||||||
namespace ftxui {
|
namespace ftxui {
|
||||||
|
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
#include <gtest/gtest-message.h> // for Message
|
#include <gtest/gtest-message.h> // for Message
|
||||||
#include <gtest/gtest-test-part.h> // for SuiteApiResolver, TestFactoryImpl, TestPartResult
|
#include <gtest/gtest-test-part.h> // for SuiteApiResolver, TestFactoryImpl, TestPartResult
|
||||||
#include "gtest/gtest_pred_impl.h" // for Test, EXPECT_EQ, TEST
|
|
||||||
#include <string> // for allocator
|
#include <string> // for allocator
|
||||||
#include "ftxui/dom/elements.hpp" // for text, flexbox
|
#include "ftxui/dom/elements.hpp" // for text, flexbox
|
||||||
#include "ftxui/screen/screen.hpp" // for Screen
|
#include "ftxui/screen/screen.hpp" // for Screen
|
||||||
|
#include "gtest/gtest_pred_impl.h" // for Test, EXPECT_EQ, TEST
|
||||||
|
|
||||||
namespace ftxui {
|
namespace ftxui {
|
||||||
|
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
#include <gtest/gtest-message.h> // for Message
|
#include <gtest/gtest-message.h> // for Message
|
||||||
#include <gtest/gtest-test-part.h> // for SuiteApiResolver, TestFactoryImpl, TestPartResult
|
#include <gtest/gtest-test-part.h> // for SuiteApiResolver, TestFactoryImpl, TestPartResult
|
||||||
#include "gtest/gtest_pred_impl.h" // for Test, EXPECT_EQ, TEST
|
|
||||||
#include <string> // for allocator
|
#include <string> // for allocator
|
||||||
#include "ftxui/dom/elements.hpp" // for text, flexbox
|
#include "ftxui/dom/elements.hpp" // for text, flexbox
|
||||||
#include "ftxui/screen/screen.hpp" // for Screen
|
#include "ftxui/screen/screen.hpp" // for Screen
|
||||||
|
#include "gtest/gtest_pred_impl.h" // for Test, EXPECT_EQ, TEST
|
||||||
|
|
||||||
namespace ftxui {
|
namespace ftxui {
|
||||||
|
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
#include <gtest/gtest-message.h> // for Message
|
#include <gtest/gtest-message.h> // for Message
|
||||||
#include <gtest/gtest-test-part.h> // for SuiteApiResolver, TestFactoryImpl, TestPartResult
|
#include <gtest/gtest-test-part.h> // for SuiteApiResolver, TestFactoryImpl, TestPartResult
|
||||||
#include "gtest/gtest_pred_impl.h" // for Test, EXPECT_EQ, TEST
|
|
||||||
#include <string> // for allocator
|
#include <string> // for allocator
|
||||||
#include "ftxui/dom/elements.hpp" // for text, flexbox
|
#include "ftxui/dom/elements.hpp" // for text, flexbox
|
||||||
#include "ftxui/screen/screen.hpp" // for Screen
|
#include "ftxui/screen/screen.hpp" // for Screen
|
||||||
|
#include "gtest/gtest_pred_impl.h" // for Test, EXPECT_EQ, TEST
|
||||||
|
|
||||||
namespace ftxui {
|
namespace ftxui {
|
||||||
|
|
||||||
|
@ -120,7 +120,7 @@ TEST(StringTest, CellToGlyphIndex) {
|
|||||||
EXPECT_EQ(combining[2], 2);
|
EXPECT_EQ(combining[2], 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
} // namespace ftxui
|
||||||
// Copyright 2020 Arthur Sonzogni. All rights reserved.
|
// Copyright 2020 Arthur Sonzogni. All rights reserved.
|
||||||
// Use of this source code is governed by the MIT license that can be found in
|
// Use of this source code is governed by the MIT license that can be found in
|
||||||
// the LICENSE file.
|
// the LICENSE file.
|
||||||
|
Loading…
Reference in New Issue
Block a user