X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=alpha_division_effect_test.cpp;fp=alpha_division_effect_test.cpp;h=8c297027f7fb2f49f3475e83f0ebc87322e329d4;hb=caa05550e868db406e4b54e69d60b5573f59cb60;hp=0000000000000000000000000000000000000000;hpb=96591ba1b5bffa57724fa90e13d1f2cdc810ccd5;p=movit diff --git a/alpha_division_effect_test.cpp b/alpha_division_effect_test.cpp new file mode 100644 index 0000000..8c29702 --- /dev/null +++ b/alpha_division_effect_test.cpp @@ -0,0 +1,35 @@ +// Unit tests for AlphaDivisionEffect. + +#include "test_util.h" +#include "gtest/gtest.h" + +TEST(AlphaDivisionEffectTest, SimpleTest) { + const int size = 2; + float data[4 * size] = { + 0.1f, 0.5f, 0.1f, 0.5f, + 0.2f, 0.2f, 1.0f, 1.0f, + }; + float expected_data[4 * size] = { + 0.2f, 1.0f, 0.2f, 0.5f, + 0.2f, 0.2f, 1.0f, 1.0f, + }; + float out_data[4 * size]; + EffectChainTester tester(data, 1, size, FORMAT_RGBA_PREMULTIPLIED_ALPHA, COLORSPACE_sRGB, GAMMA_LINEAR); + tester.run(out_data, GL_RGBA, COLORSPACE_sRGB, GAMMA_LINEAR); + + expect_equal(expected_data, out_data, 4, size); +} + +TEST(AlphaDivisionEffectTest, ZeroAlphaIsPreserved) { + const int size = 2; + float data[4 * size] = { + 0.1f, 0.5f, 0.1f, 0.0f, + 0.0f, 0.0f, 0.0f, 0.0f, + }; + float out_data[4 * size]; + EffectChainTester tester(data, 1, size, FORMAT_RGBA_PREMULTIPLIED_ALPHA, COLORSPACE_sRGB, GAMMA_LINEAR); + tester.run(out_data, GL_RGBA, COLORSPACE_sRGB, GAMMA_LINEAR); + + EXPECT_EQ(0.0f, out_data[3]); + EXPECT_EQ(0.0f, out_data[7]); +}