diff --git a/tests/unit_tests/utils/math.cpp b/tests/unit_tests/utils/math.cpp index faceb18c..8096df41 100644 --- a/tests/unit_tests/utils/math.cpp +++ b/tests/unit_tests/utils/math.cpp @@ -1,78 +1,76 @@ #include "common/test.hpp" #include "utils/math.hpp" -int main() { - using namespace polybar; +using namespace polybar; - "min"_test = [] { - expect(math_util::min(2, 5) == 2); - expect(math_util::min(-8, -50) == -50); - expect(math_util::min(0, -5) == 0); - }; - - "min"_test = [] { - expect(math_util::max(2, 5) == 5); - expect(math_util::max(-8, -50) == -8); - expect(math_util::max(0, (1 << 8) - 5)); - }; - - "cap"_test = [] { - expect(math_util::cap(8, 0, 10) == 8); - expect(math_util::cap(-8, 0, 10) == 0); - expect(math_util::cap(15, 0, 10) == 10); - expect(math_util::cap(20.5f, 0.0f, 30.0f) == 20.5f); - expect(math_util::cap(1.0f, 0.0f, 2.0f) == 1.0f); - expect(math_util::cap(-2.0f, -5.0f, 5.0f) == -2.0f); - expect(math_util::cap(1.0f, 0.0f, 0.0f) == 0); - }; - - "percentage"_test = [] { - expect(math_util::percentage(5.5f, 0.0f, 10.0f) == 55.0f); - expect(math_util::percentage(5.55f, 0.0f, 10.0f) == 56); - expect(math_util::percentage(5.25f, 0.0f, 12.0f) == 43.75f); - expect(math_util::percentage(5, 0, 12) == 41); - expect(math_util::percentage(20.5f, 0.0f, 100.0f) == 20.5f); - expect(math_util::percentage(4.5f, 1.0f, 6.0f) == 70.0f); - expect(math_util::percentage(20.5f, 0.0f, 100.0f) == 21); - expect(math_util::percentage(4, 2, 6) == 50); - expect(math_util::percentage(0, -10, 10) == 50); - expect(math_util::percentage(-10, -10, 10) == 0); - expect(math_util::percentage(10, -10, 10) == 100); - expect(math_util::percentage(10, 0, 100) == 10); - }; - - "percentage_to_value"_test = [] { - expect(math_util::percentage_to_value(50, 5) == 3); - expect(math_util::percentage_to_value(50, 5) == 2.5f); - expect(math_util::percentage_to_value(0, 5) == 0); - expect(math_util::percentage_to_value(10, 5) == 1); - expect(math_util::percentage_to_value(20, 5) == 1); - expect(math_util::percentage_to_value(30, 5) == 2); - expect(math_util::percentage_to_value(40, 5) == 2); - expect(math_util::percentage_to_value(50, 5) == 3); - expect(math_util::percentage_to_value(100, 5) == 5); - expect(math_util::percentage_to_value(200, 5) == 5); - expect(math_util::percentage_to_value(-30, 5) == 0); - }; - - "ranged_percentage_to_value"_test = [] { - expect(math_util::percentage_to_value(50, 200, 300) == 250); - expect(math_util::percentage_to_value(50, 1, 5) == 3); - }; - - "round_to_nearest_10"_test = [] { - expect(math_util::nearest_10(52) == 50); - expect(math_util::nearest_10(9.1) == 10); - expect(math_util::nearest_10(95.0) == 100); - expect(math_util::nearest_10(94.9) == 90); - }; - - "round_to_nearest_5"_test = [] { - expect(math_util::nearest_5(52) == 50); - expect(math_util::nearest_5(9.1) == 10); - expect(math_util::nearest_5(95.0) == 95); - expect(math_util::nearest_5(94.9) == 95); - expect(math_util::nearest_5(1) == 0); - expect(math_util::nearest_5(99.99) == 100); - }; +TEST(Math, min) { + EXPECT_EQ(2, math_util::min(2, 5)); + EXPECT_EQ(-50, math_util::min(-8, -50)); + EXPECT_EQ(0, math_util::min(0, -5)); +} + +TEST(Math, max) { + EXPECT_EQ(5, math_util::max(2, 5)); + EXPECT_EQ(-8, math_util::max(-8, -50)); + EXPECT_EQ(251, math_util::max(0, (1 << 8) - 5)); +} + +TEST(Math, cap) { + EXPECT_EQ(8, math_util::cap(8, 0, 10)); + EXPECT_EQ(0, math_util::cap(-8, 0, 10)); + EXPECT_EQ(10, math_util::cap(15, 0, 10)); + EXPECT_EQ(20.5f, math_util::cap(20.5f, 0.0f, 30.0f)); + EXPECT_EQ(1.0f, math_util::cap(1.0f, 0.0f, 2.0f)); + EXPECT_EQ(-2.0f, math_util::cap(-2.0f, -5.0f, 5.0f)); + EXPECT_EQ(0, math_util::cap(1.0f, 0.0f, 0.0f)); +} + +TEST(Math, percentage) { + EXPECT_EQ(55.0f, (math_util::percentage(5.5f, 0.0f, 10.0f))); + EXPECT_EQ(56, (math_util::percentage(5.55f, 0.0f, 10.0f))); + EXPECT_EQ(43.75f, (math_util::percentage(5.25f, 0.0f, 12.0f))); + EXPECT_EQ(41, (math_util::percentage(5, 0, 12))); + EXPECT_EQ(20.5f, (math_util::percentage(20.5f, 0.0f, 100.0f))); + EXPECT_EQ(70.0f, (math_util::percentage(4.5f, 1.0f, 6.0f))); + EXPECT_EQ(21, (math_util::percentage(20.5f, 0.0f, 100.0f))); + EXPECT_EQ(50, (math_util::percentage(4, 2, 6))); + EXPECT_EQ(50, (math_util::percentage(0, -10, 10))); + EXPECT_EQ(0, (math_util::percentage(-10, -10, 10))); + EXPECT_EQ(100, (math_util::percentage(10, -10, 10))); + EXPECT_EQ(10, (math_util::percentage(10, 0, 100))); +} + +TEST(Math, percentageToValue) { + EXPECT_EQ(3, math_util::percentage_to_value(50, 5)); + EXPECT_EQ(2.5f, (math_util::percentage_to_value(50, 5))); + EXPECT_EQ(0, math_util::percentage_to_value(0, 5)); + EXPECT_EQ(1, math_util::percentage_to_value(10, 5)); + EXPECT_EQ(1, math_util::percentage_to_value(20, 5)); + EXPECT_EQ(2, math_util::percentage_to_value(30, 5)); + EXPECT_EQ(2, math_util::percentage_to_value(40, 5)); + EXPECT_EQ(3, math_util::percentage_to_value(50, 5)); + EXPECT_EQ(5, math_util::percentage_to_value(100, 5)); + EXPECT_EQ(5, math_util::percentage_to_value(200, 5)); + EXPECT_EQ(0, math_util::percentage_to_value(-30, 5)); +} + +TEST(Math, rangedPercentageToValue) { + EXPECT_EQ(250, math_util::percentage_to_value(50, 200, 300)); + EXPECT_EQ(3, math_util::percentage_to_value(50, 1, 5)); +} + +TEST(Math, roundToNearest10) { + EXPECT_EQ(50, math_util::nearest_10(52)); + EXPECT_EQ(10, math_util::nearest_10(9.1)); + EXPECT_EQ(100, math_util::nearest_10(95.0)); + EXPECT_EQ(90, math_util::nearest_10(94.9)); +} + +TEST(Math, roundToNearest5) { + EXPECT_EQ(50, math_util::nearest_5(52)); + EXPECT_EQ(10, math_util::nearest_5(9.1)); + EXPECT_EQ(95, math_util::nearest_5(95.0)); + EXPECT_EQ(95, math_util::nearest_5(94.9)); + EXPECT_EQ(0, math_util::nearest_5(1)); + EXPECT_EQ(100, math_util::nearest_5(99.99)); }