@@ -97,80 +97,6 @@ namespace CppUtils::UnitTest::Terminal::Canvas
9797 suite.expectEqual(canvas.toString(), "😊🤖🐸🐊🏊-----\n-🤖------------\n------🐸-------\n------------🐊-\n-------------🏊\n"sv);
9898 });
9999
100- suite.addTest("Progress bar", [&] {
101- const auto terminalWidth = CppUtils::Terminal::getTerminalSize().width();
102- auto canvas = CppUtils::Terminal::Canvas{CppUtils::Container::Size2{terminalWidth, 1}};
103- auto& progressBar = canvas.addWidget(std::make_unique<CppUtils::Terminal::ProgressBar>("Progress bar"));
104-
105- auto scheduler = CppUtils::Thread::Scheduler{};
106- scheduler.schedule([&canvas]() mutable {
107- canvas.close();
108- }, 500ms);
109-
110- for (auto i = 0.f; i <= 100.f; i += 1.f)
111- {
112- progressBar.setPercent(i);
113- std::this_thread::sleep_for(5ms);
114- }
115-
116- canvas.wait();
117- });
118-
119- suite.addTest("Multiple Progress Bars", [&] {
120- const auto terminalWidth = CppUtils::Terminal::getTerminalSize().width();
121- auto canvas = CppUtils::Terminal::Canvas{CppUtils::Container::Size2{terminalWidth, 3}};
122- auto& layout = canvas.addWidget(std::make_unique<CppUtils::Terminal::Layout>());
123-
124- auto& bar1 = layout.addWidget(std::make_unique<CppUtils::Terminal::ProgressBar>("Bar 1"));
125- auto& bar2 = layout.addWidget(std::make_unique<CppUtils::Terminal::ProgressBar>("Bar 2"));
126- auto& bar3 = layout.addWidget(std::make_unique<CppUtils::Terminal::ProgressBar>("Bar 3"));
127-
128- auto scheduler = CppUtils::Thread::Scheduler{};
129- scheduler.schedule([&canvas]() mutable {
130- canvas.close();
131- }, 1'000ms);
132-
133- for (auto i = 0.f; i <= 100.f; i += 1.f)
134- {
135- bar1.setPercent(i);
136- bar2.setPercent(CppUtils::Math::Easing::inQuad(i / 100.f) * 100.f);
137- bar3.setPercent(CppUtils::Math::Easing::outCubic(i / 100.f) * 100.f);
138- std::this_thread::sleep_for(10ms);
139- }
140-
141- canvas.wait();
142- });
143-
144- suite.addTest("Progress Bar Styles", [&] {
145- auto canvas = CppUtils::Terminal::Canvas{CppUtils::Container::Size2{60, 10}};
146-
147- auto styles = std::vector<std::pair<std::string, CppUtils::Terminal::ProgressBarStyle>>{
148- {"Block", CppUtils::Terminal::ProgressBarStyles::Block},
149- {"Clean", CppUtils::Terminal::ProgressBarStyles::Clean},
150- {"Line", CppUtils::Terminal::ProgressBarStyles::Line},
151- {"Arrowhead", CppUtils::Terminal::ProgressBarStyles::Arrowhead},
152- {"Double", CppUtils::Terminal::ProgressBarStyles::Double},
153- {"Round", CppUtils::Terminal::ProgressBarStyles::Round},
154- {"Shaded", CppUtils::Terminal::ProgressBarStyles::Shaded},
155- {"Braille", CppUtils::Terminal::ProgressBarStyles::Braille},
156- {"Arrow", CppUtils::Terminal::ProgressBarStyles::Arrow},
157- {"Retro", CppUtils::Terminal::ProgressBarStyles::Retro}};
158-
159- for (auto i = 0.f; i <= 100.f; i += 1.f)
160- {
161- auto y = 0uz;
162- for (const auto& [name, style] : styles)
163- {
164- auto bar = CppUtils::Terminal::ProgressBar(name, style);
165- bar.setPercent(i);
166- auto view = canvas.getWritableView(CppUtils::Terminal::Viewport{CppUtils::Container::Size2{60, 1}, CppUtils::Container::Size2{0, y++}});
167- bar.draw(view);
168- }
169- canvas.print();
170- std::this_thread::sleep_for(20ms);
171- }
172- });
173-
174100 suite.addTest("Bouncing ball", [&] {
175101 const auto terminalSize = CppUtils::Terminal::getTerminalSize();
176102 auto canvasSize = terminalSize;
0 commit comments