未验证 提交 728e473f 编写于 作者: G Gary Qian 提交者: GitHub

Pass LinearTextFlat to SkFont - iOS13 letter spacing (#13321)

上级 6f265978
......@@ -317,10 +317,8 @@ int Layout::findFace(const FakedFont& face, LayoutContext* ctx) {
// corresponding hb_font object.
if (ctx != NULL) {
hb_font_t* font = getHbFontLocked(face.font);
// Temporarily removed to fix advance integer rounding.
// This is likely due to very old versions of harfbuzz and ICU.
// hb_font_set_funcs(font, getHbFontFuncs(isColorBitmapFont(font)),
// &ctx->paint, 0);
hb_font_set_funcs(font, getHbFontFuncs(isColorBitmapFont(font)),
&ctx->paint, 0);
ctx->hbFonts.push_back(font);
}
return ix;
......
......@@ -52,6 +52,7 @@ static void FontSkia_SetSkiaFont(sk_sp<SkTypeface> typeface,
SkFont* skFont,
const minikin::MinikinPaint& paint) {
skFont->setTypeface(std::move(typeface));
skFont->setLinearMetrics((paint.paintFlags & minikin::LinearTextFlag) != 0);
// TODO: set more paint parameters from Minikin
skFont->setSize(paint.size);
}
......
......@@ -129,6 +129,7 @@ class ParagraphTxt : public Paragraph {
private:
friend class ParagraphBuilderTxt;
FRIEND_TEST(ParagraphTest, SimpleParagraph);
FRIEND_TEST(ParagraphTest, SimpleParagraphSmall);
FRIEND_TEST(ParagraphTest, SimpleRedParagraph);
FRIEND_TEST(ParagraphTest, RainbowParagraph);
FRIEND_TEST(ParagraphTest, DefaultStyleParagraph);
......
......@@ -62,6 +62,7 @@ class StyledRuns {
private:
FRIEND_TEST(ParagraphTest, SimpleParagraph);
FRIEND_TEST(ParagraphTest, SimpleParagraphSmall);
FRIEND_TEST(ParagraphTest, SimpleRedParagraph);
FRIEND_TEST(ParagraphTest, RainbowParagraph);
FRIEND_TEST(ParagraphTest, DefaultStyleParagraph);
......
......@@ -72,6 +72,47 @@ TEST_F(ParagraphTest, SimpleParagraph) {
ASSERT_TRUE(Snapshot());
}
TEST_F(ParagraphTest, SimpleParagraphSmall) {
const char* text =
"Hello World Text Dialog. This is a very small text in order to check "
"for constant advance additions that are only visible when the advance "
"of the glyphs are small.";
auto icu_text = icu::UnicodeString::fromUTF8(text);
std::u16string u16_text(icu_text.getBuffer(),
icu_text.getBuffer() + icu_text.length());
txt::ParagraphStyle paragraph_style;
txt::ParagraphBuilderTxt builder(paragraph_style, GetTestFontCollection());
txt::TextStyle text_style;
text_style.font_size = 6;
// We must supply a font here, as the default is Arial, and we do not
// include Arial in our test fonts as it is proprietary. We want it to
// be Arial default though as it is one of the most common fonts on host
// platforms. On real devices/apps, Arial should be able to be resolved.
text_style.font_families = std::vector<std::string>(1, "Roboto");
text_style.color = SK_ColorBLACK;
builder.PushStyle(text_style);
builder.AddText(u16_text);
builder.Pop();
auto paragraph = BuildParagraph(builder);
paragraph->Layout(GetTestCanvasWidth());
paragraph->Paint(GetCanvas(), 10.0, 15.0);
ASSERT_EQ(paragraph->text_.size(), std::string{text}.length());
for (size_t i = 0; i < u16_text.length(); i++) {
ASSERT_EQ(paragraph->text_[i], u16_text[i]);
}
ASSERT_EQ(paragraph->runs_.runs_.size(), 1ull);
ASSERT_EQ(paragraph->runs_.styles_.size(), 2ull);
ASSERT_TRUE(paragraph->runs_.styles_[1].equals(text_style));
ASSERT_EQ(paragraph->records_[0].style().color, text_style.color);
ASSERT_TRUE(Snapshot());
}
// It is possible for the line_metrics_ vector in paragraph to have an empty
// line at the end as a result of the line breaking algorithm. This causes
// the final_line_count_ to be one less than line metrics. This tests that we
......@@ -170,7 +211,7 @@ TEST_F(ParagraphTest, LineMetricsParagraph1) {
ASSERT_EQ(paragraph->GetLineMetrics()[0].hard_break, true);
ASSERT_FLOAT_EQ(paragraph->GetLineMetrics()[0].ascent, 12.988281);
ASSERT_FLOAT_EQ(paragraph->GetLineMetrics()[0].descent, 3.4179688);
ASSERT_FLOAT_EQ(paragraph->GetLineMetrics()[0].width, 149.67578);
ASSERT_FLOAT_EQ(paragraph->GetLineMetrics()[0].width, 149.72266);
ASSERT_FLOAT_EQ(paragraph->GetLineMetrics()[0].left, 0.0);
ASSERT_FLOAT_EQ(paragraph->GetLineMetrics()[0].baseline, 12.582031);
ASSERT_EQ(paragraph->GetLineMetrics()[0].line_number, 0ull);
......@@ -223,7 +264,7 @@ TEST_F(ParagraphTest, LineMetricsParagraph1) {
ASSERT_EQ(paragraph->GetLineMetrics()[1].hard_break, true);
ASSERT_FLOAT_EQ(paragraph->GetLineMetrics()[1].ascent, 12.988281);
ASSERT_FLOAT_EQ(paragraph->GetLineMetrics()[1].descent, 3.4179688);
ASSERT_FLOAT_EQ(paragraph->GetLineMetrics()[1].width, 72.039062);
ASSERT_FLOAT_EQ(paragraph->GetLineMetrics()[1].width, 72.0625);
ASSERT_FLOAT_EQ(paragraph->GetLineMetrics()[1].left, 0.0);
ASSERT_FLOAT_EQ(paragraph->GetLineMetrics()[1].baseline, 28.582031);
ASSERT_EQ(paragraph->GetLineMetrics()[1].line_number, 1ull);
......@@ -313,7 +354,7 @@ TEST_F(ParagraphTest, DISABLE_ON_MAC(LineMetricsParagraph2)) {
ASSERT_EQ(paragraph->GetLineMetrics()[0].hard_break, false);
ASSERT_FLOAT_EQ(paragraph->GetLineMetrics()[0].ascent, 27.84);
ASSERT_FLOAT_EQ(paragraph->GetLineMetrics()[0].descent, 7.6799998);
ASSERT_FLOAT_EQ(paragraph->GetLineMetrics()[0].width, 349.21875);
ASSERT_FLOAT_EQ(paragraph->GetLineMetrics()[0].width, 349.26953);
ASSERT_FLOAT_EQ(paragraph->GetLineMetrics()[0].left, 0.0);
ASSERT_FLOAT_EQ(paragraph->GetLineMetrics()[0].baseline, 28.32);
ASSERT_EQ(paragraph->GetLineMetrics()[0].line_number, 0ull);
......@@ -539,24 +580,24 @@ TEST_F(ParagraphTest, DISABLE_ON_WINDOWS(InlinePlaceholderParagraph)) {
GetCanvas()->drawRect(boxes[i].rect, paint);
}
EXPECT_EQ(boxes.size(), 7ull);
EXPECT_FLOAT_EQ(boxes[1].rect.left(), 90.921875);
EXPECT_FLOAT_EQ(boxes[1].rect.left(), 90.945312);
EXPECT_FLOAT_EQ(boxes[1].rect.top(), 50);
EXPECT_FLOAT_EQ(boxes[1].rect.right(), 140.92188);
EXPECT_FLOAT_EQ(boxes[1].rect.right(), 140.94531);
EXPECT_FLOAT_EQ(boxes[1].rect.bottom(), 100);
EXPECT_FLOAT_EQ(boxes[3].rect.left(), 231.34375);
EXPECT_FLOAT_EQ(boxes[3].rect.left(), 231.39062);
EXPECT_FLOAT_EQ(boxes[3].rect.top(), 50);
EXPECT_FLOAT_EQ(boxes[3].rect.right(), 231.34375 + 50);
EXPECT_FLOAT_EQ(boxes[3].rect.right(), 231.39062 + 50);
EXPECT_FLOAT_EQ(boxes[3].rect.bottom(), 100);
EXPECT_FLOAT_EQ(boxes[4].rect.left(), 281.34375);
EXPECT_FLOAT_EQ(boxes[4].rect.left(), 281.39062);
EXPECT_FLOAT_EQ(boxes[4].rect.top(), 0);
EXPECT_FLOAT_EQ(boxes[4].rect.right(), 281.34375 + 5);
EXPECT_FLOAT_EQ(boxes[4].rect.right(), 281.39062 + 5);
EXPECT_FLOAT_EQ(boxes[4].rect.bottom(), 50);
EXPECT_FLOAT_EQ(boxes[6].rect.left(), 336.34375);
EXPECT_FLOAT_EQ(boxes[6].rect.left(), 336.39062);
EXPECT_FLOAT_EQ(boxes[6].rect.top(), 0);
EXPECT_FLOAT_EQ(boxes[6].rect.right(), 336.34375 + 5);
EXPECT_FLOAT_EQ(boxes[6].rect.right(), 336.39062 + 5);
EXPECT_FLOAT_EQ(boxes[6].rect.bottom(), 50);
ASSERT_TRUE(Snapshot());
......@@ -615,9 +656,9 @@ TEST_F(ParagraphTest, DISABLE_ON_WINDOWS(InlinePlaceholderBaselineParagraph)) {
}
EXPECT_EQ(boxes.size(), 1ull);
// Verify the box is in the right place
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 90.921875);
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 90.945312);
EXPECT_FLOAT_EQ(boxes[0].rect.top(), 0);
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 145.92188);
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 145.94531);
EXPECT_FLOAT_EQ(boxes[0].rect.bottom(), 50);
paint.setColor(SK_ColorBLUE);
......@@ -628,9 +669,9 @@ TEST_F(ParagraphTest, DISABLE_ON_WINDOWS(InlinePlaceholderBaselineParagraph)) {
}
EXPECT_EQ(boxes.size(), 1ull);
// Verify the other text didn't just shift to accomodate it.
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 75.324219);
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 75.34375);
EXPECT_FLOAT_EQ(boxes[0].rect.top(), 14.226246);
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 90.921875);
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 90.945312);
EXPECT_FLOAT_EQ(boxes[0].rect.bottom(), 44.694996);
ASSERT_TRUE(Snapshot());
......@@ -691,9 +732,9 @@ TEST_F(ParagraphTest,
}
EXPECT_EQ(boxes.size(), 1ull);
// Verify the box is in the right place
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 90.921875);
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 90.945312);
EXPECT_FLOAT_EQ(boxes[0].rect.top(), -0.34765625);
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 145.92188);
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 145.94531);
EXPECT_FLOAT_EQ(boxes[0].rect.bottom(), 49.652344);
paint.setColor(SK_ColorBLUE);
......@@ -704,9 +745,9 @@ TEST_F(ParagraphTest,
}
EXPECT_EQ(boxes.size(), 1ull);
// Verify the other text didn't just shift to accomodate it.
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 75.324219);
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 75.34375);
EXPECT_FLOAT_EQ(boxes[0].rect.top(), 25.53125);
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 90.921875);
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 90.945312);
EXPECT_FLOAT_EQ(boxes[0].rect.bottom(), 56);
ASSERT_TRUE(Snapshot());
......@@ -767,9 +808,9 @@ TEST_F(ParagraphTest,
}
EXPECT_EQ(boxes.size(), 1ull);
// Verify the box is in the right place
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 90.921875);
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 90.945312);
EXPECT_FLOAT_EQ(boxes[0].rect.top(), 24);
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 145.92188);
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 145.94531);
EXPECT_FLOAT_EQ(boxes[0].rect.bottom(), 74);
paint.setColor(SK_ColorBLUE);
......@@ -780,9 +821,9 @@ TEST_F(ParagraphTest,
}
EXPECT_EQ(boxes.size(), 1ull);
// Verify the other text didn't just shift to accomodate it.
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 75.324219);
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 75.34375);
EXPECT_FLOAT_EQ(boxes[0].rect.top(), -0.12109375);
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 90.921875);
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 90.945312);
EXPECT_FLOAT_EQ(boxes[0].rect.bottom(), 30.347656);
ASSERT_TRUE(Snapshot());
......@@ -841,9 +882,9 @@ TEST_F(ParagraphTest, DISABLE_ON_WINDOWS(InlinePlaceholderBottomParagraph)) {
}
EXPECT_EQ(boxes.size(), 1ull);
// Verify the box is in the right place
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 90.921875);
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 90.945312);
EXPECT_FLOAT_EQ(boxes[0].rect.top(), 0);
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 145.92188);
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 145.94531);
EXPECT_FLOAT_EQ(boxes[0].rect.bottom(), 50);
paint.setColor(SK_ColorBLUE);
......@@ -856,7 +897,7 @@ TEST_F(ParagraphTest, DISABLE_ON_WINDOWS(InlinePlaceholderBottomParagraph)) {
// Verify the other text didn't just shift to accomodate it.
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 0.5);
EXPECT_FLOAT_EQ(boxes[0].rect.top(), 19.53125);
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 16.097656);
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 16.101562);
EXPECT_FLOAT_EQ(boxes[0].rect.bottom(), 50);
ASSERT_TRUE(Snapshot());
......@@ -915,9 +956,9 @@ TEST_F(ParagraphTest, DISABLE_ON_WINDOWS(InlinePlaceholderTopParagraph)) {
}
EXPECT_EQ(boxes.size(), 1ull);
// Verify the box is in the right place
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 90.921875);
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 90.945312);
EXPECT_FLOAT_EQ(boxes[0].rect.top(), 0);
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 145.92188);
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 145.94531);
EXPECT_FLOAT_EQ(boxes[0].rect.bottom(), 50);
paint.setColor(SK_ColorBLUE);
......@@ -930,7 +971,7 @@ TEST_F(ParagraphTest, DISABLE_ON_WINDOWS(InlinePlaceholderTopParagraph)) {
// Verify the other text didn't just shift to accomodate it.
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 0.5);
EXPECT_FLOAT_EQ(boxes[0].rect.top(), 0);
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 16.097656);
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 16.101562);
EXPECT_FLOAT_EQ(boxes[0].rect.bottom(), 30.46875);
ASSERT_TRUE(Snapshot());
......@@ -989,9 +1030,9 @@ TEST_F(ParagraphTest, DISABLE_ON_WINDOWS(InlinePlaceholderMiddleParagraph)) {
}
EXPECT_EQ(boxes.size(), 1ull);
// Verify the box is in the right place
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 90.921875);
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 90.945312);
EXPECT_FLOAT_EQ(boxes[0].rect.top(), 0);
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 145.92188);
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 145.94531);
EXPECT_FLOAT_EQ(boxes[0].rect.bottom(), 50);
paint.setColor(SK_ColorBLUE);
......@@ -1002,9 +1043,9 @@ TEST_F(ParagraphTest, DISABLE_ON_WINDOWS(InlinePlaceholderMiddleParagraph)) {
}
EXPECT_EQ(boxes.size(), 1ull);
// Verify the other text didn't just shift to accomodate it.
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 75.324219);
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 75.34375);
EXPECT_FLOAT_EQ(boxes[0].rect.top(), 9.765625);
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 90.921875);
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 90.945312);
EXPECT_FLOAT_EQ(boxes[0].rect.bottom(), 40.234375);
ASSERT_TRUE(Snapshot());
......@@ -1205,9 +1246,9 @@ TEST_F(ParagraphTest, DISABLE_ON_WINDOWS(InlinePlaceholderBreakParagraph)) {
GetCanvas()->drawRect(boxes[i].rect, paint);
}
EXPECT_EQ(boxes.size(), 1ull);
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 31.695312);
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 31.703125);
EXPECT_FLOAT_EQ(boxes[0].rect.top(), 218.53125);
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 47.292969);
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 47.304688);
EXPECT_FLOAT_EQ(boxes[0].rect.bottom(), 249);
paint.setColor(SK_ColorRED);
......@@ -1223,14 +1264,14 @@ TEST_F(ParagraphTest, DISABLE_ON_WINDOWS(InlinePlaceholderBreakParagraph)) {
GetCanvas()->drawRect(boxes[i].rect, paint);
}
EXPECT_EQ(boxes.size(), 30ull);
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 59.726562);
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 59.742188);
EXPECT_FLOAT_EQ(boxes[0].rect.top(), 26.378906);
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 90.921875);
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 90.945312);
EXPECT_FLOAT_EQ(boxes[0].rect.bottom(), 56.847656);
EXPECT_FLOAT_EQ(boxes[11].rect.left(), 606.34375);
EXPECT_FLOAT_EQ(boxes[11].rect.left(), 606.39062);
EXPECT_FLOAT_EQ(boxes[11].rect.top(), 38);
EXPECT_FLOAT_EQ(boxes[11].rect.right(), 631.34375);
EXPECT_FLOAT_EQ(boxes[11].rect.right(), 631.39062);
EXPECT_FLOAT_EQ(boxes[11].rect.bottom(), 63);
EXPECT_FLOAT_EQ(boxes[17].rect.left(), 0.5);
......@@ -1337,19 +1378,19 @@ TEST_F(ParagraphTest, DISABLE_ON_WINDOWS(InlinePlaceholderGetRectsParagraph)) {
GetCanvas()->drawRect(boxes[i].rect, paint);
}
EXPECT_EQ(boxes.size(), 34ull);
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 90.921875);
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 90.945312);
EXPECT_FLOAT_EQ(boxes[0].rect.top(), 0);
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 140.92188);
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 140.94531);
EXPECT_FLOAT_EQ(boxes[0].rect.bottom(), 50);
EXPECT_FLOAT_EQ(boxes[16].rect.left(), 800.92188);
EXPECT_FLOAT_EQ(boxes[16].rect.left(), 800.94531);
EXPECT_FLOAT_EQ(boxes[16].rect.top(), 0);
EXPECT_FLOAT_EQ(boxes[16].rect.right(), 850.92188);
EXPECT_FLOAT_EQ(boxes[16].rect.right(), 850.94531);
EXPECT_FLOAT_EQ(boxes[16].rect.bottom(), 50);
EXPECT_FLOAT_EQ(boxes[33].rect.left(), 503.38281);
EXPECT_FLOAT_EQ(boxes[33].rect.left(), 503.48438);
EXPECT_FLOAT_EQ(boxes[33].rect.top(), 160);
EXPECT_FLOAT_EQ(boxes[33].rect.right(), 508.38281);
EXPECT_FLOAT_EQ(boxes[33].rect.right(), 508.48438);
EXPECT_FLOAT_EQ(boxes[33].rect.bottom(), 180);
Paragraph::RectHeightStyle rect_height_style =
......@@ -1363,20 +1404,20 @@ TEST_F(ParagraphTest, DISABLE_ON_WINDOWS(InlinePlaceholderGetRectsParagraph)) {
GetCanvas()->drawRect(boxes[i].rect, paint);
}
EXPECT_EQ(boxes.size(), 8ull);
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 216.09766);
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 216.10156);
// Top should be taller than "tight"
EXPECT_FLOAT_EQ(boxes[0].rect.top(), 60);
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 290.92188);
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 290.94531);
EXPECT_FLOAT_EQ(boxes[0].rect.bottom(), 120);
EXPECT_FLOAT_EQ(boxes[1].rect.left(), 290.92188);
EXPECT_FLOAT_EQ(boxes[1].rect.left(), 290.94531);
EXPECT_FLOAT_EQ(boxes[1].rect.top(), 60);
EXPECT_FLOAT_EQ(boxes[1].rect.right(), 340.92188);
EXPECT_FLOAT_EQ(boxes[1].rect.right(), 340.94531);
EXPECT_FLOAT_EQ(boxes[1].rect.bottom(), 120);
EXPECT_FLOAT_EQ(boxes[2].rect.left(), 340.92188);
EXPECT_FLOAT_EQ(boxes[2].rect.left(), 340.94531);
EXPECT_FLOAT_EQ(boxes[2].rect.top(), 60);
EXPECT_FLOAT_EQ(boxes[2].rect.right(), 345.92188);
EXPECT_FLOAT_EQ(boxes[2].rect.right(), 345.94531);
EXPECT_FLOAT_EQ(boxes[2].rect.bottom(), 120);
ASSERT_TRUE(Snapshot());
......@@ -1745,7 +1786,7 @@ TEST_F(ParagraphTest, DISABLE_ON_WINDOWS(HeightOverrideParagraph)) {
EXPECT_EQ(boxes.size(), 3ull);
EXPECT_FLOAT_EQ(boxes[1].rect.left(), 0);
EXPECT_NEAR(boxes[1].rect.top(), 92.805778503417969, 0.0001);
EXPECT_FLOAT_EQ(boxes[1].rect.right(), 43.84375);
EXPECT_FLOAT_EQ(boxes[1].rect.right(), 43.851562);
EXPECT_NEAR(boxes[1].rect.bottom(), 165.49578857421875, 0.0001);
ASSERT_TRUE(Snapshot());
......@@ -1924,7 +1965,7 @@ TEST_F(ParagraphTest, DISABLE_ON_WINDOWS(RightAlignParagraph)) {
// less than width_.
ASSERT_DOUBLE_EQ(paragraph->width_, available_width);
ASSERT_TRUE(paragraph->longest_line_ < available_width);
ASSERT_DOUBLE_EQ(paragraph->longest_line_, 880.765625);
ASSERT_DOUBLE_EQ(paragraph->longest_line_, 880.87109375);
ASSERT_TRUE(paragraph->records_[2].style().equals(text_style));
ASSERT_DOUBLE_EQ(paragraph->records_[2].offset().y(), expected_y);
......@@ -2797,14 +2838,14 @@ TEST_F(ParagraphTest, DISABLE_ON_WINDOWS(ArabicRectsParagraph)) {
}
EXPECT_EQ(boxes.size(), 2ull);
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 556.54688);
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 556.48438);
EXPECT_FLOAT_EQ(boxes[0].rect.top(), -0.26855469);
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 900);
EXPECT_FLOAT_EQ(boxes[0].rect.bottom(), 44);
EXPECT_FLOAT_EQ(boxes[1].rect.left(), 510.09375);
EXPECT_FLOAT_EQ(boxes[1].rect.left(), 510.03125);
EXPECT_FLOAT_EQ(boxes[1].rect.top(), -0.26855469);
EXPECT_FLOAT_EQ(boxes[1].rect.right(), 557.04688);
EXPECT_FLOAT_EQ(boxes[1].rect.right(), 556.98438);
EXPECT_FLOAT_EQ(boxes[1].rect.bottom(), 44);
ASSERT_EQ(paragraph_style.text_align,
......@@ -2865,9 +2906,9 @@ TEST_F(ParagraphTest, DISABLE_ON_WINDOWS(ArabicRectsLTRLeftAlignParagraph)) {
}
EXPECT_EQ(boxes.size(), 1ull);
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 89.40625);
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 89.425781);
EXPECT_FLOAT_EQ(boxes[0].rect.top(), -0.26855469);
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 121.87891);
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 121.90625);
EXPECT_FLOAT_EQ(boxes[0].rect.bottom(), 44);
ASSERT_EQ(paragraph_style.text_align,
......@@ -2928,14 +2969,14 @@ TEST_F(ParagraphTest, DISABLE_ON_WINDOWS(ArabicRectsLTRRightAlignParagraph)) {
}
EXPECT_EQ(boxes.size(), 2ull);
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 556.54688);
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 556.48438);
EXPECT_FLOAT_EQ(boxes[0].rect.top(), -0.26855469);
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 577.78125);
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 577.72656);
EXPECT_FLOAT_EQ(boxes[0].rect.bottom(), 44);
EXPECT_FLOAT_EQ(boxes[1].rect.left(), 545.30859);
EXPECT_FLOAT_EQ(boxes[1].rect.left(), 545.24609);
EXPECT_FLOAT_EQ(boxes[1].rect.top(), -0.26855469);
EXPECT_FLOAT_EQ(boxes[1].rect.right(), 557.04688);
EXPECT_FLOAT_EQ(boxes[1].rect.right(), 556.98438);
EXPECT_FLOAT_EQ(boxes[1].rect.bottom(), 44);
ASSERT_EQ(paragraph_style.text_align,
......@@ -3084,7 +3125,7 @@ TEST_F(ParagraphTest, DISABLE_ON_WINDOWS(GetRectsForRangeParagraph)) {
EXPECT_EQ(boxes.size(), 1ull);
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 56.835938);
EXPECT_FLOAT_EQ(boxes[0].rect.top(), 0.40625);
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 177.97266);
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 177.98438);
EXPECT_FLOAT_EQ(boxes[0].rect.bottom(), 59);
paint.setColor(SK_ColorGREEN);
......@@ -3094,9 +3135,9 @@ TEST_F(ParagraphTest, DISABLE_ON_WINDOWS(GetRectsForRangeParagraph)) {
GetCanvas()->drawRect(boxes[i].rect, paint);
}
EXPECT_EQ(boxes.size(), 1ull);
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 177.97266);
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 177.98438);
EXPECT_FLOAT_EQ(boxes[0].rect.top(), 0.40625);
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 507.02344);
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 507.03906);
EXPECT_FLOAT_EQ(boxes[0].rect.bottom(), 59);
paint.setColor(SK_ColorRED);
......@@ -3106,9 +3147,9 @@ TEST_F(ParagraphTest, DISABLE_ON_WINDOWS(GetRectsForRangeParagraph)) {
GetCanvas()->drawRect(boxes[i].rect, paint);
}
EXPECT_EQ(boxes.size(), 4ull);
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 211.375);
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 211.37891);
EXPECT_FLOAT_EQ(boxes[0].rect.top(), 59.40625);
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 463.61719);
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 463.62891);
EXPECT_FLOAT_EQ(boxes[0].rect.bottom(), 118);
// TODO(garyq): The following set of vals are definitely wrong and
......@@ -3125,9 +3166,9 @@ TEST_F(ParagraphTest, DISABLE_ON_WINDOWS(GetRectsForRangeParagraph)) {
GetCanvas()->drawRect(boxes[i].rect, paint);
}
EXPECT_EQ(boxes.size(), 1ull);
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 450.1875);
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 450.20312);
EXPECT_FLOAT_EQ(boxes[0].rect.top(), 0.40625);
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 519.47266);
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 519.49219);
EXPECT_FLOAT_EQ(boxes[0].rect.bottom(), 59);
paint.setColor(SK_ColorRED);
......@@ -3213,7 +3254,7 @@ TEST_F(ParagraphTest, LINUX_ONLY(GetRectsForRangeTight)) {
}
EXPECT_EQ(boxes.size(), 1ull);
EXPECT_FLOAT_EQ(boxes[0].rect.top(), 0);
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 264.09375);
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 264.09766);
EXPECT_FLOAT_EQ(boxes[0].rect.bottom(), 74);
paint.setColor(SK_ColorGREEN);
......@@ -3223,9 +3264,9 @@ TEST_F(ParagraphTest, LINUX_ONLY(GetRectsForRangeTight)) {
GetCanvas()->drawRect(boxes[i].rect, paint);
}
EXPECT_EQ(boxes.size(), 2ull);
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 264.09375);
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 264.09766);
EXPECT_FLOAT_EQ(boxes[0].rect.top(), 0);
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 595.08594);
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 595.09375);
EXPECT_FLOAT_EQ(boxes[0].rect.bottom(), 74);
ASSERT_TRUE(Snapshot());
......@@ -3293,7 +3334,7 @@ TEST_F(ParagraphTest,
EXPECT_EQ(boxes.size(), 1ull);
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 0);
EXPECT_FLOAT_EQ(boxes[0].rect.top(), 16.946615);
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 17.429688);
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 17.433594);
EXPECT_FLOAT_EQ(boxes[0].rect.bottom(), 88.473305);
paint.setColor(SK_ColorBLUE);
......@@ -3303,9 +3344,9 @@ TEST_F(ParagraphTest,
GetCanvas()->drawRect(boxes[i].rect, paint);
}
EXPECT_EQ(boxes.size(), 1ull);
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 67.429688);
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 67.433594);
EXPECT_FLOAT_EQ(boxes[0].rect.top(), 16.946615);
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 190.00781);
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 190.01953);
EXPECT_FLOAT_EQ(boxes[0].rect.bottom(), 88.473305);
paint.setColor(SK_ColorGREEN);
......@@ -3315,9 +3356,9 @@ TEST_F(ParagraphTest,
GetCanvas()->drawRect(boxes[i].rect, paint);
}
EXPECT_EQ(boxes.size(), 1ull);
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 190.00781);
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 190.01953);
EXPECT_FLOAT_EQ(boxes[0].rect.top(), 16.946615);
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 508.0625);
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 508.09375);
EXPECT_FLOAT_EQ(boxes[0].rect.bottom(), 88.473312);
paint.setColor(SK_ColorRED);
......@@ -3327,34 +3368,34 @@ TEST_F(ParagraphTest,
GetCanvas()->drawRect(boxes[i].rect, paint);
}
EXPECT_EQ(boxes.size(), 8ull);
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 190.00781);
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 190.01953);
EXPECT_FLOAT_EQ(boxes[0].rect.top(), 88.473312);
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 525.6875);
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 525.72266);
EXPECT_FLOAT_EQ(boxes[0].rect.bottom(), 168.47331);
EXPECT_FLOAT_EQ(boxes[1].rect.left(), 525.6875);
EXPECT_FLOAT_EQ(boxes[1].rect.left(), 525.72266);
EXPECT_FLOAT_EQ(boxes[1].rect.top(), 88.473312);
EXPECT_FLOAT_EQ(boxes[1].rect.right(), 570.02344);
EXPECT_FLOAT_EQ(boxes[1].rect.right(), 570.05859);
EXPECT_FLOAT_EQ(boxes[1].rect.bottom(), 168.4733);
EXPECT_FLOAT_EQ(boxes[2].rect.left(), 0);
EXPECT_FLOAT_EQ(boxes[2].rect.top(), 168.4733);
EXPECT_FLOAT_EQ(boxes[2].rect.right(), 531.57422);
EXPECT_FLOAT_EQ(boxes[2].rect.right(), 531.60547);
EXPECT_FLOAT_EQ(boxes[2].rect.bottom(), 248.47331);
EXPECT_FLOAT_EQ(boxes[3].rect.left(), 531.57422);
EXPECT_FLOAT_EQ(boxes[3].rect.left(), 531.60547);
EXPECT_FLOAT_EQ(boxes[3].rect.top(), 168.4733);
EXPECT_FLOAT_EQ(boxes[3].rect.right(), 570.02344);
EXPECT_FLOAT_EQ(boxes[3].rect.right(), 570.05859);
EXPECT_FLOAT_EQ(boxes[3].rect.bottom(), 248.47331);
EXPECT_FLOAT_EQ(boxes[4].rect.left(), 0);
EXPECT_FLOAT_EQ(boxes[4].rect.top(), 248.47331);
EXPECT_FLOAT_EQ(boxes[4].rect.right(), 570.02344);
EXPECT_FLOAT_EQ(boxes[4].rect.right(), 570.05859);
EXPECT_FLOAT_EQ(boxes[4].rect.bottom(), 328.4733);
EXPECT_FLOAT_EQ(boxes[5].rect.left(), 0);
EXPECT_FLOAT_EQ(boxes[5].rect.top(), 328.47333);
EXPECT_FLOAT_EQ(boxes[5].rect.right(), 570.02344);
EXPECT_FLOAT_EQ(boxes[5].rect.right(), 570.05859);
EXPECT_FLOAT_EQ(boxes[5].rect.bottom(), 408.4733);
paint.setColor(SK_ColorBLUE);
......@@ -3364,9 +3405,9 @@ TEST_F(ParagraphTest,
GetCanvas()->drawRect(boxes[i].rect, paint);
}
EXPECT_EQ(boxes.size(), 1ull);
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 463.72656);
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 463.75781);
EXPECT_FLOAT_EQ(boxes[0].rect.top(), 16.946615);
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 530.23047);
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 530.26172);
EXPECT_FLOAT_EQ(boxes[0].rect.bottom(), 88.473305);
paint.setColor(SK_ColorRED);
......@@ -3442,7 +3483,7 @@ TEST_F(ParagraphTest,
EXPECT_EQ(boxes.size(), 1ull);
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 0);
EXPECT_FLOAT_EQ(boxes[0].rect.top(), 16.946615);
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 17.429688);
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 17.433594);
EXPECT_FLOAT_EQ(boxes[0].rect.bottom(), 80);
paint.setColor(SK_ColorBLUE);
......@@ -3452,9 +3493,9 @@ TEST_F(ParagraphTest,
GetCanvas()->drawRect(boxes[i].rect, paint);
}
EXPECT_EQ(boxes.size(), 1ull);
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 67.429688);
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 67.433594);
EXPECT_FLOAT_EQ(boxes[0].rect.top(), 16.946615);
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 190.00781);
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 190.01953);
EXPECT_FLOAT_EQ(boxes[0].rect.bottom(), 80);
paint.setColor(SK_ColorGREEN);
......@@ -3464,9 +3505,9 @@ TEST_F(ParagraphTest,
GetCanvas()->drawRect(boxes[i].rect, paint);
}
EXPECT_EQ(boxes.size(), 1ull);
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 190.00781);
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 190.01953);
EXPECT_FLOAT_EQ(boxes[0].rect.top(), 16.946615);
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 508.0625);
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 508.09375);
EXPECT_FLOAT_EQ(boxes[0].rect.bottom(), 80);
paint.setColor(SK_ColorRED);
......@@ -3476,34 +3517,34 @@ TEST_F(ParagraphTest,
GetCanvas()->drawRect(boxes[i].rect, paint);
}
EXPECT_EQ(boxes.size(), 8ull);
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 190.00781);
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 190.01953);
EXPECT_FLOAT_EQ(boxes[0].rect.top(), 80);
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 525.6875);
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 525.72266);
EXPECT_FLOAT_EQ(boxes[0].rect.bottom(), 160);
EXPECT_FLOAT_EQ(boxes[1].rect.left(), 525.6875);
EXPECT_FLOAT_EQ(boxes[1].rect.left(), 525.72266);
EXPECT_FLOAT_EQ(boxes[1].rect.top(), 80);
EXPECT_FLOAT_EQ(boxes[1].rect.right(), 570.02344);
EXPECT_FLOAT_EQ(boxes[1].rect.right(), 570.05859);
EXPECT_FLOAT_EQ(boxes[1].rect.bottom(), 160);
EXPECT_FLOAT_EQ(boxes[2].rect.left(), 0);
EXPECT_FLOAT_EQ(boxes[2].rect.top(), 160);
EXPECT_FLOAT_EQ(boxes[2].rect.right(), 531.57422);
EXPECT_FLOAT_EQ(boxes[2].rect.right(), 531.60547);
EXPECT_FLOAT_EQ(boxes[2].rect.bottom(), 240);
EXPECT_FLOAT_EQ(boxes[3].rect.left(), 531.57422);
EXPECT_FLOAT_EQ(boxes[3].rect.left(), 531.60547);
EXPECT_FLOAT_EQ(boxes[3].rect.top(), 160);
EXPECT_FLOAT_EQ(boxes[3].rect.right(), 570.02344);
EXPECT_FLOAT_EQ(boxes[3].rect.right(), 570.05859);
EXPECT_FLOAT_EQ(boxes[3].rect.bottom(), 240);
EXPECT_FLOAT_EQ(boxes[4].rect.left(), 0);
EXPECT_FLOAT_EQ(boxes[4].rect.top(), 240);
EXPECT_FLOAT_EQ(boxes[4].rect.right(), 570.02344);
EXPECT_FLOAT_EQ(boxes[4].rect.right(), 570.05859);
EXPECT_FLOAT_EQ(boxes[4].rect.bottom(), 320);
EXPECT_FLOAT_EQ(boxes[5].rect.left(), 0);
EXPECT_FLOAT_EQ(boxes[5].rect.top(), 320);
EXPECT_FLOAT_EQ(boxes[5].rect.right(), 570.02344);
EXPECT_FLOAT_EQ(boxes[5].rect.right(), 570.05859);
EXPECT_FLOAT_EQ(boxes[5].rect.bottom(), 400);
paint.setColor(SK_ColorBLUE);
......@@ -3513,9 +3554,9 @@ TEST_F(ParagraphTest,
GetCanvas()->drawRect(boxes[i].rect, paint);
}
EXPECT_EQ(boxes.size(), 1ull);
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 463.72656);
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 463.75781);
EXPECT_FLOAT_EQ(boxes[0].rect.top(), 16.946615);
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 530.23047);
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 530.26172);
EXPECT_FLOAT_EQ(boxes[0].rect.bottom(), 80);
paint.setColor(SK_ColorRED);
......@@ -3591,7 +3632,7 @@ TEST_F(ParagraphTest,
EXPECT_EQ(boxes.size(), 1ull);
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 0);
EXPECT_FLOAT_EQ(boxes[0].rect.top(), 16.946615);
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 17.429688);
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 17.433594);
EXPECT_FLOAT_EQ(boxes[0].rect.bottom(), 96.946609);
paint.setColor(SK_ColorBLUE);
......@@ -3601,9 +3642,9 @@ TEST_F(ParagraphTest,
GetCanvas()->drawRect(boxes[i].rect, paint);
}
EXPECT_EQ(boxes.size(), 1ull);
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 67.429688);
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 67.433594);
EXPECT_FLOAT_EQ(boxes[0].rect.top(), 16.946615);
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 190.00781);
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 190.01953);
EXPECT_FLOAT_EQ(boxes[0].rect.bottom(), 96.946609);
paint.setColor(SK_ColorGREEN);
......@@ -3613,9 +3654,9 @@ TEST_F(ParagraphTest,
GetCanvas()->drawRect(boxes[i].rect, paint);
}
EXPECT_EQ(boxes.size(), 1ull);
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 190.00781);
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 190.01953);
EXPECT_FLOAT_EQ(boxes[0].rect.top(), 16.946615);
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 508.0625);
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 508.09375);
EXPECT_FLOAT_EQ(boxes[0].rect.bottom(), 96.946609);
paint.setColor(SK_ColorRED);
......@@ -3625,34 +3666,34 @@ TEST_F(ParagraphTest,
GetCanvas()->drawRect(boxes[i].rect, paint);
}
EXPECT_EQ(boxes.size(), 8ull);
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 190.00781);
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 190.01953);
EXPECT_FLOAT_EQ(boxes[0].rect.top(), 96.946617);
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 525.6875);
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 525.72266);
EXPECT_FLOAT_EQ(boxes[0].rect.bottom(), 176.94661);
EXPECT_FLOAT_EQ(boxes[1].rect.left(), 525.6875);
EXPECT_FLOAT_EQ(boxes[1].rect.left(), 525.72266);
EXPECT_FLOAT_EQ(boxes[1].rect.top(), 96.946617);
EXPECT_FLOAT_EQ(boxes[1].rect.right(), 570.02344);
EXPECT_FLOAT_EQ(boxes[1].rect.right(), 570.05859);
EXPECT_FLOAT_EQ(boxes[1].rect.bottom(), 176.94661);
EXPECT_FLOAT_EQ(boxes[2].rect.left(), 0);
EXPECT_FLOAT_EQ(boxes[2].rect.top(), 176.94661);
EXPECT_FLOAT_EQ(boxes[2].rect.right(), 531.57422);
EXPECT_FLOAT_EQ(boxes[2].rect.right(), 531.60547);
EXPECT_FLOAT_EQ(boxes[2].rect.bottom(), 256.94662);
EXPECT_FLOAT_EQ(boxes[3].rect.left(), 531.57422);
EXPECT_FLOAT_EQ(boxes[3].rect.left(), 531.60547);
EXPECT_FLOAT_EQ(boxes[3].rect.top(), 176.94661);
EXPECT_FLOAT_EQ(boxes[3].rect.right(), 570.02344);
EXPECT_FLOAT_EQ(boxes[3].rect.right(), 570.05859);
EXPECT_FLOAT_EQ(boxes[3].rect.bottom(), 256.94662);
EXPECT_FLOAT_EQ(boxes[4].rect.left(), 0);
EXPECT_FLOAT_EQ(boxes[4].rect.top(), 256.94662);
EXPECT_FLOAT_EQ(boxes[4].rect.right(), 570.02344);
EXPECT_FLOAT_EQ(boxes[4].rect.right(), 570.05859);
EXPECT_FLOAT_EQ(boxes[4].rect.bottom(), 336.94662);
EXPECT_FLOAT_EQ(boxes[5].rect.left(), 0);
EXPECT_FLOAT_EQ(boxes[5].rect.top(), 336.94662);
EXPECT_FLOAT_EQ(boxes[5].rect.right(), 570.02344);
EXPECT_FLOAT_EQ(boxes[5].rect.right(), 570.05859);
EXPECT_FLOAT_EQ(boxes[5].rect.bottom(), 416.94662);
paint.setColor(SK_ColorBLUE);
......@@ -3662,9 +3703,9 @@ TEST_F(ParagraphTest,
GetCanvas()->drawRect(boxes[i].rect, paint);
}
EXPECT_EQ(boxes.size(), 1ull);
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 463.72656);
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 463.75781);
EXPECT_FLOAT_EQ(boxes[0].rect.top(), 16.946615);
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 530.23047);
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 530.26172);
EXPECT_FLOAT_EQ(boxes[0].rect.bottom(), 96.946609);
paint.setColor(SK_ColorRED);
......@@ -3857,7 +3898,7 @@ TEST_F(ParagraphTest, DISABLE_ON_WINDOWS(GetRectsForRangeCenterParagraph)) {
EXPECT_EQ(boxes.size(), 1ull);
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 346.04492);
EXPECT_FLOAT_EQ(boxes[0].rect.top(), 0.40625);
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 358.49414);
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 358.49805);
EXPECT_FLOAT_EQ(boxes[0].rect.bottom(), 59);
paint.setColor(SK_ColorRED);
......@@ -4042,7 +4083,7 @@ TEST_F(ParagraphTest,
EXPECT_EQ(boxes.size(), 1ull);
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 346.04492);
EXPECT_FLOAT_EQ(boxes[0].rect.top(), 0.40625);
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 358.49414);
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 358.49805);
EXPECT_FLOAT_EQ(boxes[0].rect.bottom(), 59);
paint.setColor(SK_ColorBLACK);
......@@ -4066,7 +4107,7 @@ TEST_F(ParagraphTest,
EXPECT_EQ(boxes.size(), 1ull);
EXPECT_FLOAT_EQ(boxes[0].rect.left(), 331.83594);
EXPECT_FLOAT_EQ(boxes[0].rect.top(), 59.40625);
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 419.18359);
EXPECT_FLOAT_EQ(boxes[0].rect.right(), 419.19531);
EXPECT_FLOAT_EQ(boxes[0].rect.bottom(), 118);
paint.setColor(SK_ColorRED);
......@@ -4131,7 +4172,7 @@ TEST_F(ParagraphTest, LINUX_ONLY(GetRectsForRangeStrut)) {
EXPECT_FLOAT_EQ(strut_rect.left(), 0);
EXPECT_FLOAT_EQ(strut_rect.top(), 10.611719);
EXPECT_FLOAT_EQ(strut_rect.right(), 118.60547);
EXPECT_FLOAT_EQ(strut_rect.right(), 118.61719);
EXPECT_FLOAT_EQ(strut_rect.bottom(), 27.017969);
ASSERT_TRUE(tight_rect.contains(strut_rect));
......@@ -4457,9 +4498,9 @@ TEST_F(ParagraphTest, KernScaleParagraph) {
EXPECT_DOUBLE_EQ(paragraph->records_[0].offset().x(), 0);
EXPECT_DOUBLE_EQ(paragraph->records_[1].offset().x(), 0);
EXPECT_DOUBLE_EQ(paragraph->records_[2].offset().x(), 207.36328125f);
EXPECT_DOUBLE_EQ(paragraph->records_[3].offset().x(), 230.86328125f);
EXPECT_DOUBLE_EQ(paragraph->records_[4].offset().x(), 253.35546875f);
EXPECT_DOUBLE_EQ(paragraph->records_[2].offset().x(), 207.359375f);
EXPECT_DOUBLE_EQ(paragraph->records_[3].offset().x(), 230.859375f);
EXPECT_DOUBLE_EQ(paragraph->records_[4].offset().x(), 253.34765625f);
}
TEST_F(ParagraphTest, DISABLE_ON_WINDOWS(NewlineParagraph)) {
......@@ -5112,10 +5153,10 @@ TEST_F(ParagraphTest, FontFallbackParagraph) {
ASSERT_TRUE(Snapshot());
ASSERT_EQ(paragraph->records_.size(), 5ull);
ASSERT_DOUBLE_EQ(paragraph->records_[0].GetRunWidth(), 64.19921875);
ASSERT_DOUBLE_EQ(paragraph->records_[1].GetRunWidth(), 139.1171875);
ASSERT_DOUBLE_EQ(paragraph->records_[0].GetRunWidth(), 64.2109375);
ASSERT_DOUBLE_EQ(paragraph->records_[1].GetRunWidth(), 139.1328125);
ASSERT_DOUBLE_EQ(paragraph->records_[2].GetRunWidth(), 28);
ASSERT_DOUBLE_EQ(paragraph->records_[3].GetRunWidth(), 62.24609375);
ASSERT_DOUBLE_EQ(paragraph->records_[3].GetRunWidth(), 62.25);
ASSERT_DOUBLE_EQ(paragraph->records_[4].GetRunWidth(), 28);
// When a different font is resolved, then the metrics are different.
ASSERT_TRUE(paragraph->records_[2].metrics().fTop -
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册