bar: Add geom_format_to_pixels tests

This commit is contained in:
patrick96 2018-05-06 17:52:06 +02:00 committed by Patrick Ziegler
parent 20f3d9a141
commit cc9423e682
2 changed files with 48 additions and 0 deletions

View File

@ -82,6 +82,7 @@ unit_test(components/command_line unit_tests
SOURCES SOURCES
components/command_line.cpp components/command_line.cpp
utils/string.cpp) utils/string.cpp)
unit_test(components/bar unit_tests)
# Compile all unit tests with 'make all_unit_tests' # Compile all unit tests with 'make all_unit_tests'
add_custom_target("all_unit_tests" DEPENDS ${unit_tests}) add_custom_target("all_unit_tests" DEPENDS ${unit_tests})

View File

@ -0,0 +1,47 @@
#include "common/test.hpp"
#include "components/bar.hpp"
using namespace polybar;
/**
* \brief Class for parameterized tests on geom_format_to_pixels
*
* The first element in the tuple is the expected return value, the second
* value is the format string. The max value is always 1000
*/
class GeomFormatToPixelsTest :
public ::testing::Test,
public ::testing::WithParamInterface<pair<double, string>> {};
vector<pair<double, string>> to_pixels_no_offset_list = {
{1000, "100%"},
{0, "0%"},
{1000, "150%"},
{100, "10%"},
{0, "0"},
{1234, "1234"},
{1.234, "1.234"},
};
vector<pair<double, string>> to_pixels_with_offset_list = {
{1000, "100%:-0"},
{1000, "100%:+0"},
{1010, "100%:+10"},
{990, "100%:-10"},
{10, "0%:+10"},
{1000, "99%:+10"},
};
INSTANTIATE_TEST_CASE_P(NoOffset, GeomFormatToPixelsTest,
::testing::ValuesIn(to_pixels_no_offset_list),);
INSTANTIATE_TEST_CASE_P(WithOffset, GeomFormatToPixelsTest,
::testing::ValuesIn(to_pixels_with_offset_list),);
TEST_P(GeomFormatToPixelsTest, correctness) {
double exp = GetParam().first;
std::string str = GetParam().second;
EXPECT_DOUBLE_EQ(exp, geom_format_to_pixels(str, 1000));
}