From 83acbe0a789fe045f6a8053f0c533e6de8df9e58 Mon Sep 17 00:00:00 2001 From: "reed@google.com" Date: Fri, 22 Apr 2011 19:18:20 +0000 Subject: [PATCH] add test for premultiplycolor git-svn-id: http://skia.googlecode.com/svn/trunk@1167 2bbb7eff-a529-9590-31e7-b0007b416f81 --- tests/ColorTest.cpp | 27 +++++++++++++++++++++++++++ tests/tests_files.mk | 1 + 2 files changed, 28 insertions(+) create mode 100644 tests/ColorTest.cpp diff --git a/tests/ColorTest.cpp b/tests/ColorTest.cpp new file mode 100644 index 0000000..c10897f --- /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) diff --git a/tests/tests_files.mk b/tests/tests_files.mk index f78481a..28d5fe7 100644 --- a/tests/tests_files.mk +++ b/tests/tests_files.mk @@ -7,6 +7,7 @@ SOURCE := \ ClipStackTest.cpp \ ClipperTest.cpp \ ColorFilterTest.cpp \ + ColorTest.cpp \ DequeTest.cpp \ DrawBitmapRectTest.cpp \ FillPathTest.cpp \ -- 2.7.4