execute IWYU and add some coverage tests.

This commit is contained in:
ArthurSonzogni 2022-04-27 18:57:48 +02:00
parent 84d6e6b3dd
commit d0890f94d1
20 changed files with 124 additions and 96 deletions

View File

@ -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) {

View File

@ -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,

View File

@ -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.

View File

@ -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,

View File

@ -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 {

View File

@ -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 {

View File

@ -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 {

View File

@ -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);

View File

@ -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 {

View File

@ -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 {

View File

@ -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.

View File

@ -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 {

View File

@ -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 {

View File

@ -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 {

View File

@ -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 {

View File

@ -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.