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)
