Cope with unstable font mertrics in font test

This commit is contained in:
Dmitry Marakasov 2020-06-17 19:13:57 +03:00
parent 0f368b10c8
commit f43e4203eb

View File

@ -70,7 +70,7 @@ BEGIN_TEST(int, char*[])
{ {
// Metrics // Metrics
EXPECT_EQUAL(font.GetHeight(), 36); EXPECT_TRUE(font.GetHeight() == 35 || font.GetHeight() == 36);
EXPECT_EQUAL(font.GetAscent(), 28); EXPECT_EQUAL(font.GetAscent(), 28);
EXPECT_EQUAL(font.GetDescent(), -7); EXPECT_EQUAL(font.GetDescent(), -7);
EXPECT_EQUAL(font.GetLineSkip(), 35); EXPECT_EQUAL(font.GetLineSkip(), 35);
@ -105,6 +105,10 @@ BEGIN_TEST(int, char*[])
#endif #endif
} }
auto isAllowedAADims = [](const Point& p) {
return p == Point(43, 35) || p == Point(43, 36);
};
{ {
// Glyph metrics // Glyph metrics
int minx, maxx, miny, maxy, advance; int minx, maxx, miny, maxy, advance;
@ -124,24 +128,24 @@ BEGIN_TEST(int, char*[])
EXPECT_EQUAL(font.GetGlyphAdvance(u'A'), 21); EXPECT_EQUAL(font.GetGlyphAdvance(u'A'), 21);
// Text size // Text size
EXPECT_EQUAL(font.GetSizeText("AA"), Point(43, 36)); EXPECT_TRUE(isAllowedAADims(font.GetSizeText("AA")));
EXPECT_EQUAL(font.GetSizeUTF8(u8"AA"), Point(43, 36)); EXPECT_TRUE(isAllowedAADims(font.GetSizeUTF8(u8"AA")));
EXPECT_EQUAL(font.GetSizeUNICODE(u"AA"), Point(43, 36)); EXPECT_TRUE(isAllowedAADims(font.GetSizeUNICODE(u"AA")));
} }
{ {
// Rendering // Rendering
// XXX: add real pixel color tests // XXX: add real pixel color tests
EXPECT_EQUAL(font.RenderText_Solid("AA", SDL_Color{255, 255, 255, 255}).GetSize(), Point(43, 36)); EXPECT_TRUE(isAllowedAADims(font.RenderText_Solid("AA", SDL_Color{255, 255, 255, 255}).GetSize()));
EXPECT_EQUAL(font.RenderUTF8_Solid(u8"AA", SDL_Color{255, 255, 255, 255}).GetSize(), Point(43, 36)); EXPECT_TRUE(isAllowedAADims(font.RenderUTF8_Solid(u8"AA", SDL_Color{255, 255, 255, 255}).GetSize()));
EXPECT_EQUAL(font.RenderUNICODE_Solid(u"AA", SDL_Color{255, 255, 255, 255}).GetSize(), Point(43, 36)); EXPECT_TRUE(isAllowedAADims(font.RenderUNICODE_Solid(u"AA", SDL_Color{255, 255, 255, 255}).GetSize()));
EXPECT_EQUAL(font.RenderText_Shaded("AA", SDL_Color{255, 255, 255, 255}, SDL_Color{0, 0, 0, 255}).GetSize(), Point(43, 36)); EXPECT_TRUE(isAllowedAADims(font.RenderText_Shaded("AA", SDL_Color{255, 255, 255, 255}, SDL_Color{0, 0, 0, 255}).GetSize()));
EXPECT_EQUAL(font.RenderUTF8_Shaded(u8"AA", SDL_Color{255, 255, 255, 255}, SDL_Color{0, 0, 0, 255}).GetSize(), Point(43, 36)); EXPECT_TRUE(isAllowedAADims(font.RenderUTF8_Shaded(u8"AA", SDL_Color{255, 255, 255, 255}, SDL_Color{0, 0, 0, 255}).GetSize()));
EXPECT_EQUAL(font.RenderUNICODE_Shaded(u"AA", SDL_Color{255, 255, 255, 255}, SDL_Color{0, 0, 0, 255}).GetSize(), Point(43, 36)); EXPECT_TRUE(isAllowedAADims(font.RenderUNICODE_Shaded(u"AA", SDL_Color{255, 255, 255, 255}, SDL_Color{0, 0, 0, 255}).GetSize()));
EXPECT_EQUAL(font.RenderText_Blended("AA", SDL_Color{255, 255, 255, 255}).GetSize(), Point(43, 36)); EXPECT_TRUE(isAllowedAADims(font.RenderText_Blended("AA", SDL_Color{255, 255, 255, 255}).GetSize()));
EXPECT_EQUAL(font.RenderUTF8_Blended(u8"AA", SDL_Color{255, 255, 255, 255}).GetSize(), Point(43, 36)); EXPECT_TRUE(isAllowedAADims(font.RenderUTF8_Blended(u8"AA", SDL_Color{255, 255, 255, 255}).GetSize()));
EXPECT_EQUAL(font.RenderUNICODE_Blended(u"AA", SDL_Color{255, 255, 255, 255}).GetSize(), Point(43, 36)); EXPECT_TRUE(isAllowedAADims(font.RenderUNICODE_Blended(u"AA", SDL_Color{255, 255, 255, 255}).GetSize()));
} }
END_TEST() END_TEST()