-// Unit tests for ColorSpaceConversionEffect.
+// Unit tests for ColorspaceConversionEffect.
+
+#include <GL/glew.h>
-#include "test_util.h"
-#include "gtest/gtest.h"
#include "colorspace_conversion_effect.h"
+#include "gtest/gtest.h"
+#include "test_util.h"
-TEST(ColorSpaceConversionEffectTest, Reversible) {
+TEST(ColorspaceConversionEffectTest, Reversible) {
float data[] = {
0.0f, 0.0f, 0.0f, 1.0f,
1.0f, 1.0f, 1.0f, 1.0f,
float temp_data[4 * 6], out_data[4 * 6];
{
- EffectChainTester tester(data, 1, 6, FORMAT_RGBA, COLORSPACE_sRGB, GAMMA_LINEAR);
+ EffectChainTester tester(data, 1, 6, FORMAT_RGBA_POSTMULTIPLIED_ALPHA, COLORSPACE_sRGB, GAMMA_LINEAR);
tester.run(temp_data, GL_RGBA, COLORSPACE_REC_601_525, GAMMA_LINEAR);
}
{
- EffectChainTester tester(temp_data, 1, 6, FORMAT_RGBA, COLORSPACE_REC_601_525, GAMMA_LINEAR);
+ EffectChainTester tester(temp_data, 1, 6, FORMAT_RGBA_POSTMULTIPLIED_ALPHA, COLORSPACE_REC_601_525, GAMMA_LINEAR);
tester.run(out_data, GL_RGBA, COLORSPACE_sRGB, GAMMA_LINEAR);
}
expect_equal(data, out_data, 4, 6);
}
-TEST(ColorSpaceConversionEffectTest, sRGB_Primaries) {
+TEST(ColorspaceConversionEffectTest, sRGB_Primaries) {
float data[] = {
0.0f, 0.0f, 0.0f, 1.0f,
1.0f, 1.0f, 1.0f, 1.0f,
};
float out_data[4 * 5];
- EffectChainTester tester(data, 1, 5, FORMAT_RGBA, COLORSPACE_sRGB, GAMMA_LINEAR);
+ EffectChainTester tester(data, 1, 5, FORMAT_RGBA_POSTMULTIPLIED_ALPHA, COLORSPACE_sRGB, GAMMA_LINEAR);
tester.run(out_data, GL_RGBA, COLORSPACE_XYZ, GAMMA_LINEAR);
// Black should stay black.
EXPECT_FLOAT_EQ(1.0f, out_data[4 * 4 + 3]);
}
-TEST(ColorSpaceConversionEffectTest, Rec601_525_Primaries) {
+TEST(ColorspaceConversionEffectTest, Rec601_525_Primaries) {
float data[] = {
0.0f, 0.0f, 0.0f, 1.0f,
1.0f, 1.0f, 1.0f, 1.0f,
};
float out_data[4 * 5];
- EffectChainTester tester(data, 1, 5, FORMAT_RGBA, COLORSPACE_REC_601_525, GAMMA_LINEAR);
+ EffectChainTester tester(data, 1, 5, FORMAT_RGBA_POSTMULTIPLIED_ALPHA, COLORSPACE_REC_601_525, GAMMA_LINEAR);
tester.run(out_data, GL_RGBA, COLORSPACE_XYZ, GAMMA_LINEAR);
// Black should stay black.
EXPECT_FLOAT_EQ(1.0f, out_data[4 * 4 + 3]);
}
-TEST(ColorSpaceConversionEffectTest, Rec601_625_Primaries) {
+TEST(ColorspaceConversionEffectTest, Rec601_625_Primaries) {
float data[] = {
0.0f, 0.0f, 0.0f, 1.0f,
1.0f, 1.0f, 1.0f, 1.0f,
};
float out_data[4 * 5];
- EffectChainTester tester(data, 1, 5, FORMAT_RGBA, COLORSPACE_REC_601_625, GAMMA_LINEAR);
+ EffectChainTester tester(data, 1, 5, FORMAT_RGBA_POSTMULTIPLIED_ALPHA, COLORSPACE_REC_601_625, GAMMA_LINEAR);
tester.run(out_data, GL_RGBA, COLORSPACE_XYZ, GAMMA_LINEAR);
// Black should stay black.
EXPECT_FLOAT_EQ(1.0f, out_data[4 * 4 + 3]);
}
-TEST(ColorSpaceConversionEffectTest, sRGBToRec601_525) {
+TEST(ColorspaceConversionEffectTest, sRGBToRec601_525) {
float data[] = {
0.0f, 0.0f, 0.0f, 1.0f,
1.0f, 1.0f, 1.0f, 1.0f,
};
float out_data[4 * 6];
- EffectChainTester tester(data, 1, 6, FORMAT_RGBA, COLORSPACE_sRGB, GAMMA_LINEAR);
+ EffectChainTester tester(data, 1, 6, FORMAT_RGBA_POSTMULTIPLIED_ALPHA, COLORSPACE_sRGB, GAMMA_LINEAR);
tester.run(out_data, GL_RGBA, COLORSPACE_REC_601_525, GAMMA_LINEAR);
expect_equal(expected_data, out_data, 4, 6);