/** * Copyright (c) 2026 Dominic Masters * * This software is released under the MIT License. * https://opensource.org/licenses/MIT */ #include "dusktest.h" #include "display/color.h" static void test_color3f_create(void **state) { (void)state; color3f_t color = color3f(0.1f, 0.2f, 0.3f); assert_float_equal(color.r, 0.1f, 0.0001f); assert_float_equal(color.g, 0.2f, 0.0001f); assert_float_equal(color.b, 0.3f, 0.0001f); } static void test_color4f_create(void **state) { (void)state; color4f_t color = color4f(0.1f, 0.2f, 0.3f, 0.4f); assert_float_equal(color.r, 0.1f, 0.0001f); assert_float_equal(color.g, 0.2f, 0.0001f); assert_float_equal(color.b, 0.3f, 0.0001f); assert_float_equal(color.a, 0.4f, 0.0001f); } static void test_color3b_create(void **state) { (void)state; color3b_t color = color3b(10, 20, 30); assert_int_equal(color.r, 10); assert_int_equal(color.g, 20); assert_int_equal(color.b, 30); } static void test_color4b_create(void **state) { (void)state; color4b_t color = color4b(10, 20, 30, 40); assert_int_equal(color.r, 10); assert_int_equal(color.g, 20); assert_int_equal(color.b, 30); assert_int_equal(color.a, 40); } static void test_color_create(void **state) { (void)state; color_t color = color(10, 20, 30, 40); assert_int_equal(color.r, 10); assert_int_equal(color.g, 20); assert_int_equal(color.b, 30); assert_int_equal(color.a, 40); } static void test_colorHex_create(void **state) { (void)state; color_t color = colorHex(0x11223344); assert_int_equal(color.r, 0x11); assert_int_equal(color.g, 0x22); assert_int_equal(color.b, 0x33); assert_int_equal(color.a, 0x44); color = colorHex(0xFF00FF00); assert_int_equal(color.r, 0xFF); assert_int_equal(color.g, 0x00); assert_int_equal(color.b, 0xFF); assert_int_equal(color.a, 0x00); color_t comp = color(255, 0, 255, 0); assert_int_equal(color.r, comp.r); assert_int_equal(color.g, comp.g); assert_int_equal(color.b, comp.b); assert_int_equal(color.a, comp.a); color = colorHex(0xFFFFFFFF); assert_int_equal(color.r, COLOR_WHITE.r); assert_int_equal(color.g, COLOR_WHITE.g); assert_int_equal(color.b, COLOR_WHITE.b); assert_int_equal(color.a, COLOR_WHITE.a); } int main(int argc, char **argv) { const struct CMUnitTest tests[] = { cmocka_unit_test(test_color3f_create), cmocka_unit_test(test_color4f_create), cmocka_unit_test(test_color3b_create), cmocka_unit_test(test_color4b_create), cmocka_unit_test(test_color_create), cmocka_unit_test(test_colorHex_create), }; return cmocka_run_group_tests(tests, NULL, NULL); }