aboutsummaryrefslogtreecommitdiffhomepage
path: root/tests/ColorTest.cpp
diff options
context:
space:
mode:
authorGravatar reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>2011-04-22 19:18:20 +0000
committerGravatar reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>2011-04-22 19:18:20 +0000
commit83acbe0a789fe045f6a8053f0c533e6de8df9e58 (patch)
treeda7e0f92f8cf622a7e67848eee036da53748b597 /tests/ColorTest.cpp
parentf21833999d90ad9c8c584cff3238797b39cfc00b (diff)
add test for premultiplycolor
git-svn-id: http://skia.googlecode.com/svn/trunk@1167 2bbb7eff-a529-9590-31e7-b0007b416f81
Diffstat (limited to 'tests/ColorTest.cpp')
-rw-r--r--tests/ColorTest.cpp27
1 files changed, 27 insertions, 0 deletions
diff --git a/tests/ColorTest.cpp b/tests/ColorTest.cpp
new file mode 100644
index 0000000000..c10897f173
--- /dev/null
+++ b/tests/ColorTest.cpp
@@ -0,0 +1,27 @@
+#include "Test.h"
+#include "SkColor.h"
+#include "SkUnPreMultiply.h"
+
+static void test_premul(skiatest::Reporter* reporter) {
+ for (int a = 0; a <= 255; a++) {
+ for (int x = 0; x <= 255; x++) {
+ SkColor c0 = SkColorSetARGB(a, x, x, x);
+ SkPMColor p0 = SkPreMultiplyColor(c0);
+
+ SkColor c1 = SkUnPreMultiply::PMColorToColor(p0);
+ SkPMColor p1 = SkPreMultiplyColor(c1);
+
+ // we can't promise that c0 == c1, since c0 -> p0 is a many to one
+ // function, however, we can promise that p0 -> c1 -> p1 : p0 == p1
+ REPORTER_ASSERT(reporter, p0 == p1);
+ }
+ }
+}
+
+
+static void TestColor(skiatest::Reporter* reporter) {
+ test_premul(reporter);
+}
+
+#include "TestClassDef.h"
+DEFINE_TESTCLASS("Color", ColorTestClass, TestColor)