aboutsummaryrefslogtreecommitdiffhomepage
path: root/tests/PDFPrimitivesTest.cpp
diff options
context:
space:
mode:
authorGravatar halcanary <halcanary@google.com>2016-07-15 13:41:27 -0700
committerGravatar Commit bot <commit-bot@chromium.org>2016-07-15 13:41:28 -0700
commiteb92cb3e84f49b5eedb22b36acffd895d6a90e5a (patch)
tree0735e84978ab91cfbf507573ac0726d9ea4cc50e /tests/PDFPrimitivesTest.cpp
parentf0c30f55665eb3555ca438855d4995baed182e97 (diff)
SkPdf: smaller color serialization
SkPDFUtils now has a special function (SkPDFUtils::AppendColorComponent) just for writing out (color/255) as a decimal with three digits of precision. SkPDFUnion now has a type to represent a color component. It holds a utint_8, but calls into AppendColorComponent to serialize. Added a unit test that tests all possible input values. GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2151863003 Review-Url: https://codereview.chromium.org/2151863003
Diffstat (limited to 'tests/PDFPrimitivesTest.cpp')
-rw-r--r--tests/PDFPrimitivesTest.cpp13
1 files changed, 13 insertions, 0 deletions
diff --git a/tests/PDFPrimitivesTest.cpp b/tests/PDFPrimitivesTest.cpp
index 9e2a89e609..d816b60823 100644
--- a/tests/PDFPrimitivesTest.cpp
+++ b/tests/PDFPrimitivesTest.cpp
@@ -491,3 +491,16 @@ DEF_TEST(PDFPrimitives_Scalar, reporter) {
check_pdf_scalar_serialization(reporter, inputFloat);
}
}
+
+// Test SkPDFUtils:: for accuracy.
+DEF_TEST(PDFPrimitives_Color, reporter) {
+ char buffer[5];
+ for (int i = 0; i < 256; ++i) {
+ size_t len = SkPDFUtils::ColorToDecimal(i, buffer);
+ REPORTER_ASSERT(reporter, len == strlen(buffer));
+ float f;
+ REPORTER_ASSERT(reporter, 1 == sscanf(buffer, "%f", &f));
+ int roundTrip = (int)(0.5 + f * 255);
+ REPORTER_ASSERT(reporter, roundTrip == i);
+ }
+}