diff options
Diffstat (limited to 'Tools/TestWebKitAPI/Tests/WebCore/LayoutUnit.cpp')
| -rw-r--r-- | Tools/TestWebKitAPI/Tests/WebCore/LayoutUnit.cpp | 41 |
1 files changed, 23 insertions, 18 deletions
diff --git a/Tools/TestWebKitAPI/Tests/WebCore/LayoutUnit.cpp b/Tools/TestWebKitAPI/Tests/WebCore/LayoutUnit.cpp index 84e460f62..ceafb039c 100644 --- a/Tools/TestWebKitAPI/Tests/WebCore/LayoutUnit.cpp +++ b/Tools/TestWebKitAPI/Tests/WebCore/LayoutUnit.cpp @@ -28,6 +28,7 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +#define ENABLE_SUBPIXEL_LAYOUT 1 #define ENABLE_SATURATED_LAYOUT_ARITHMETIC 1 #include "config.h" @@ -76,10 +77,6 @@ TEST(WebCoreLayoutUnit, LayoutUnitFloat) ASSERT_NEAR(LayoutUnit(345634.12335f).toFloat(), 345634.12335f, tolerance); ASSERT_NEAR(LayoutUnit(-345634.12335f).toFloat(), -345634.12335f, tolerance); ASSERT_NEAR(LayoutUnit(-345634).toFloat(), -345634.0f, tolerance); - ASSERT_NEAR(LayoutUnit(33554432.f).toFloat(), 33554432.f, tolerance); - ASSERT_NEAR(LayoutUnit(-33554432.f).toFloat(), -33554432.f, tolerance); - ASSERT_NEAR(LayoutUnit(33554432.f).toDouble(), 33554432.f, tolerance); - ASSERT_NEAR(LayoutUnit(-33554432.f).toDouble(), -33554432.f, tolerance); } TEST(WebCoreLayoutUnit, LayoutUnitRounding) @@ -107,6 +104,28 @@ TEST(WebCoreLayoutUnit, LayoutUnitRounding) ASSERT_EQ(LayoutUnit::fromFloatRound(1.51f).round(), 2); } +TEST(WebCoreLayoutUnit, LayoutUnitSnapSizeToPixel) +{ + ASSERT_EQ(snapSizeToPixel(LayoutUnit(1), LayoutUnit(0)), 1); + ASSERT_EQ(snapSizeToPixel(LayoutUnit(1), LayoutUnit(0.5)), 1); + ASSERT_EQ(snapSizeToPixel(LayoutUnit(1.5), LayoutUnit(0)), 2); + ASSERT_EQ(snapSizeToPixel(LayoutUnit(1.5), LayoutUnit(0.49)), 2); + ASSERT_EQ(snapSizeToPixel(LayoutUnit(1.5), LayoutUnit(0.5)), 1); + ASSERT_EQ(snapSizeToPixel(LayoutUnit(1.5), LayoutUnit(0.75)), 1); + ASSERT_EQ(snapSizeToPixel(LayoutUnit(1.5), LayoutUnit(0.99)), 1); + ASSERT_EQ(snapSizeToPixel(LayoutUnit(1.5), LayoutUnit(1)), 2); + + ASSERT_EQ(snapSizeToPixel(LayoutUnit(0.5), LayoutUnit(1.5)), 0); + ASSERT_EQ(snapSizeToPixel(LayoutUnit(0.99), LayoutUnit(1.5)), 0); + ASSERT_EQ(snapSizeToPixel(LayoutUnit(1.0), LayoutUnit(1.5)), 1); + ASSERT_EQ(snapSizeToPixel(LayoutUnit(1.49), LayoutUnit(1.5)), 1); + ASSERT_EQ(snapSizeToPixel(LayoutUnit(1.5), LayoutUnit(1.5)), 1); + + ASSERT_EQ(snapSizeToPixel(LayoutUnit(100.5), LayoutUnit(100)), 101); + ASSERT_EQ(snapSizeToPixel(LayoutUnit(intMaxForLayoutUnit), LayoutUnit(0.3)), intMaxForLayoutUnit); + ASSERT_EQ(snapSizeToPixel(LayoutUnit(intMinForLayoutUnit), LayoutUnit(-0.3)), intMinForLayoutUnit); +} + TEST(WebCoreLayoutUnit, LayoutUnitMultiplication) { ASSERT_EQ((LayoutUnit(1) * LayoutUnit(1)).toInt(), 1); @@ -231,19 +250,5 @@ TEST(WebCoreLayoutUnit, LayoutUnitFloor) ASSERT_EQ((LayoutUnit(intMinForLayoutUnit) + LayoutUnit(1)).floor(), intMinForLayoutUnit + 1); } -TEST(WebCoreLayoutUnit, LayoutUnitPixelSnapping) -{ - for (int i = -100000; i <= 100000; ++i) { - ASSERT_EQ(roundToDevicePixel(LayoutUnit(i), 1), i); - ASSERT_EQ(roundToDevicePixel(LayoutUnit(i), 2), i); - ASSERT_EQ(roundToDevicePixel(LayoutUnit(i), 3), i); - } - - for (float i = -10000; i < 0; i = i + 0.5) - ASSERT_FLOAT_EQ(roundToDevicePixel(LayoutUnit(i), 2), i); - - for (float i = -10000.25; i < 0; i = i + 0.5) - ASSERT_FLOAT_EQ(roundToDevicePixel(LayoutUnit(i), 2), i + 0.25); -} } // namespace TestWebKitAPI |
