mirror of
https://github.com/ArthurSonzogni/FTXUI.git
synced 2024-11-25 12:11:33 +08:00
Add style targetted benchmark.
This commit is contained in:
parent
e5eb822d44
commit
5094b5f3fb
@ -1,3 +1,4 @@
|
||||
#include <iostream>
|
||||
#include <benchmark/benchmark.h>
|
||||
|
||||
#include "ftxui/dom/elements.hpp" // for gauge, separator, operator|, text, Element, hbox, vbox, blink, border, inverted
|
||||
@ -43,9 +44,38 @@ static void BencharkText(benchmark::State& state) {
|
||||
}
|
||||
BENCHMARK(BencharkText)->DenseRange(0, 10, 1);
|
||||
|
||||
static void BenchmarkStyle(benchmark::State& state) {
|
||||
while (state.KeepRunning()) {
|
||||
Elements elements;
|
||||
for (int i = 0; i < state.range(0); ++i) {
|
||||
elements.push_back(vbox({
|
||||
text("Test") | bold,
|
||||
text("Test") | dim,
|
||||
text("Test") | inverted,
|
||||
text("Test") | underlined,
|
||||
text("Test") | underlinedDouble,
|
||||
text("Test") | strikethrough,
|
||||
text("Test") | color(Color::Red),
|
||||
text("Test") | bgcolor(Color::Red),
|
||||
text("Test") | blink,
|
||||
text("Test") | automerge,
|
||||
}));
|
||||
elements.push_back(separator());
|
||||
}
|
||||
auto document = hbox(std::move(elements));
|
||||
Screen screen(state.range(1), state.range(1));
|
||||
Render(screen, document);
|
||||
}
|
||||
}
|
||||
BENCHMARK(BenchmarkStyle)
|
||||
->ArgsProduct({
|
||||
benchmark::CreateDenseRange(1, 10, 3), // Number of elements.
|
||||
benchmark::CreateDenseRange(10, 200, 20), // Screen width.
|
||||
});
|
||||
|
||||
} // namespace ftxui
|
||||
// NOLINTEND
|
||||
|
||||
// Copyright 2021 Arthur Sonzogni. All rights reserved.
|
||||
// Use of this source code is governed by the MIT license that can be found in
|
||||
// the LICENSE file.l
|
||||
// the LICENSE file.
|
||||
|
Loading…
Reference in New Issue
Block a user