diff --git a/src/test/color.cpp b/src/test/color.cpp index d042231f2..144906523 100644 --- a/src/test/color.cpp +++ b/src/test/color.cpp @@ -23,3 +23,19 @@ TEST(Color, HRHConv) } } } + +// Any color_cast should keep the same alpha value +TEST(Color, ConvKeepsAlpha) +{ + const int Max = 10; + for(int i = 0; i <= Max; i++) + { + const float Alpha = i / (float)Max; + EXPECT_FLOAT_EQ(color_cast(ColorHSLA(0.1f, 0.2f, 0.3f, Alpha)).a, Alpha); + EXPECT_FLOAT_EQ(color_cast(ColorHSVA(0.1f, 0.2f, 0.3f, Alpha)).a, Alpha); + EXPECT_FLOAT_EQ(color_cast(ColorRGBA(0.1f, 0.2f, 0.3f, Alpha)).a, Alpha); + EXPECT_FLOAT_EQ(color_cast(ColorHSVA(0.1f, 0.2f, 0.3f, Alpha)).a, Alpha); + EXPECT_FLOAT_EQ(color_cast(ColorRGBA(0.1f, 0.2f, 0.3f, Alpha)).a, Alpha); + EXPECT_FLOAT_EQ(color_cast(ColorHSLA(0.1f, 0.2f, 0.3f, Alpha)).a, Alpha); + } +}