// Append to BLI_math_color_test.cc
// Easy to compile and run: ninja blenlib_test && ./bin/tests/blenlib_test --gtest_filter="math_color*"
TEST(math_color, linearrgb_to_srgb_v3_v3)
{
{
const float linear_color[3] = {0.0023f, 0.0024f, 0.0025f};
float srgb_color[3];
linearrgb_to_srgb_v3_v3(srgb_color, linear_color);
EXPECT_NEAR(0.029716000f, srgb_color[0], 1e-8f);
EXPECT_NEAR(0.031008001f, srgb_color[1], 1e-8f);
EXPECT_NEAR(0.032299999f, srgb_color[2], 1e-8f);
}
{
const float linear_color[3] = {0.71f, 0.75f, 0.78f};
float srgb_color[3];
linearrgb_to_srgb_v3_v3(srgb_color, linear_color);
EXPECT_NEAR(0.859484434f, srgb_color[0], 1e-8f);
EXPECT_NEAR(0.881012440f, srgb_color[1], 1e-8f);
EXPECT_NEAR(0.896070659f, srgb_color[2], 1e-8f);
}
}
TEST(math_color, srgb_to_linearrgb_v3_v3)
{
{
const float srgb_color[3] = {0.0023f, 0.0024f, 0.0025f};
float linear_color[3];
srgb_to_linearrgb_v3_v3(linear_color, srgb_color);
EXPECT_NEAR(0.002300000f, srgb_color[0], 1e-8f);
EXPECT_NEAR(0.002400000f, srgb_color[1], 1e-8f);
EXPECT_NEAR(0.002500000f, srgb_color[2], 1e-8f);
}
{
const float srgb_color[3] = {0.71f, 0.72f, 0.73f};
float linear_color[3];
srgb_to_linearrgb_v3_v3(linear_color, srgb_color);
EXPECT_NEAR(0.709999979f, srgb_color[0], 1e-8f);
EXPECT_NEAR(0.720000029f, srgb_color[1], 1e-8f);
EXPECT_NEAR(0.730000019f, srgb_color[2], 1e-8f);
}
}