static void TestPDFUnion(skiatest::Reporter* reporter) { SkPDFUnion boolTrue = SkPDFUnion::Bool(true); ASSERT_EMIT_EQ(reporter, boolTrue, "true"); SkPDFUnion boolFalse = SkPDFUnion::Bool(false); ASSERT_EMIT_EQ(reporter, boolFalse, "false"); SkPDFUnion int42 = SkPDFUnion::Int(42); ASSERT_EMIT_EQ(reporter, int42, "42"); SkPDFUnion realHalf = SkPDFUnion::Scalar(SK_ScalarHalf); ASSERT_EMIT_EQ(reporter, realHalf, "0.5"); SkPDFUnion bigScalar = SkPDFUnion::Scalar(110999.75f); #if !defined(SK_ALLOW_LARGE_PDF_SCALARS) ASSERT_EMIT_EQ(reporter, bigScalar, "111000"); #else ASSERT_EMIT_EQ(reporter, bigScalar, "110999.75"); SkPDFUnion biggerScalar = SkPDFUnion::Scalar(50000000.1); ASSERT_EMIT_EQ(reporter, biggerScalar, "50000000"); SkPDFUnion smallestScalar = SkPDFUnion::Scalar(1.0 / 65536); ASSERT_EMIT_EQ(reporter, smallestScalar, "0.00001526"); #endif SkPDFUnion stringSimple = SkPDFUnion::String("test ) string ( foo"); ASSERT_EMIT_EQ(reporter, stringSimple, "(test \\) string \\( foo)"); SkString stringComplexInput("\ttest ) string ( foo"); SkPDFUnion stringComplex = SkPDFUnion::String(stringComplexInput); ASSERT_EMIT_EQ(reporter, stringComplex, "<0974657374202920737472696E67202820666F6F>"); SkString nameInput("Test name\twith#tab"); SkPDFUnion name = SkPDFUnion::Name(nameInput); ASSERT_EMIT_EQ(reporter, name, "/Test#20name#09with#23tab"); SkString nameInput2("A#/%()<>[]{}B"); SkPDFUnion name2 = SkPDFUnion::Name(nameInput2); ASSERT_EMIT_EQ(reporter, name2, "/A#23#2F#25#28#29#3C#3E#5B#5D#7B#7DB"); SkPDFUnion name3 = SkPDFUnion::Name("SimpleNameWithOnlyPrintableASCII"); ASSERT_EMIT_EQ(reporter, name3, "/SimpleNameWithOnlyPrintableASCII"); // Test that we correctly handle characters with the high-bit set. SkString highBitString("\xDE\xAD" "be\xEF"); SkPDFUnion highBitName = SkPDFUnion::Name(highBitString); ASSERT_EMIT_EQ(reporter, highBitName, "/#DE#ADbe#EF"); }
static void TestPDFUnion(skiatest::Reporter* reporter) { SkPDFUnion boolTrue = SkPDFUnion::Bool(true); assert_emit_eq(reporter, boolTrue, "true"); SkPDFUnion boolFalse = SkPDFUnion::Bool(false); assert_emit_eq(reporter, boolFalse, "false"); SkPDFUnion int42 = SkPDFUnion::Int(42); assert_emit_eq(reporter, int42, "42"); assert_emit_eq_number(reporter, SK_ScalarHalf); assert_emit_eq_number(reporter, 110999.75f); // bigScalar assert_emit_eq_number(reporter, 50000000.1f); // biggerScalar assert_emit_eq_number(reporter, 1.0f / 65536); // smallScalar SkPDFUnion stringSimple = SkPDFUnion::String("test ) string ( foo"); assert_emit_eq(reporter, stringSimple, "(test \\) string \\( foo)"); SkString stringComplexInput("\ttest ) string ( foo"); SkPDFUnion stringComplex = SkPDFUnion::String(stringComplexInput); assert_emit_eq(reporter, stringComplex, "(\\011test \\) string \\( foo)"); SkString binaryStringInput("\1\2\3\4\5\6\7\10\11\12\13\14\15\16\17\20"); SkPDFUnion binaryString = SkPDFUnion::String(binaryStringInput); assert_emit_eq(reporter, binaryString, "<0102030405060708090A0B0C0D0E0F10>"); SkString nameInput("Test name\twith#tab"); SkPDFUnion name = SkPDFUnion::Name(nameInput); assert_emit_eq(reporter, name, "/Test#20name#09with#23tab"); SkString nameInput2("A#/%()<>[]{}B"); SkPDFUnion name2 = SkPDFUnion::Name(nameInput2); assert_emit_eq(reporter, name2, "/A#23#2F#25#28#29#3C#3E#5B#5D#7B#7DB"); SkPDFUnion name3 = SkPDFUnion::Name("SimpleNameWithOnlyPrintableASCII"); assert_emit_eq(reporter, name3, "/SimpleNameWithOnlyPrintableASCII"); // Test that we correctly handle characters with the high-bit set. SkString highBitString("\xDE\xAD" "be\xEF"); SkPDFUnion highBitName = SkPDFUnion::Name(highBitString); assert_emit_eq(reporter, highBitName, "/#DE#ADbe#EF"); }