Index: Source/wtf/SaturatedArithmeticTest.cpp |
diff --git a/Source/wtf/SaturatedArithmeticTest.cpp b/Source/wtf/SaturatedArithmeticTest.cpp |
index 00df8e97bbc7fb31005de9eea5d68046424b5939..3f7848c15764c94a456b3ebe6721cb17eb74870e 100644 |
--- a/Source/wtf/SaturatedArithmeticTest.cpp |
+++ b/Source/wtf/SaturatedArithmeticTest.cpp |
@@ -104,4 +104,49 @@ TEST(SaturatedArithmeticTest, Subtraction) |
EXPECT_EQ(INT_MAX, saturatedSubtraction(INT_MAX, INT_MIN)); |
} |
+TEST(SaturatedArithmeticTest, SetSigned) |
+{ |
+ const int kFractionBits = 6; |
+ const int intMaxForLayoutUnit = INT_MAX >> kFractionBits; |
+ const int intMinForLayoutUnit = INT_MIN >> kFractionBits; |
+ |
+ EXPECT_EQ(0, saturatedSet(0, kFractionBits)); |
+ |
+ EXPECT_EQ(getMaxSaturatedSetResultForTesting(kFractionBits), |
+ saturatedSet(intMaxForLayoutUnit, kFractionBits)); |
+ |
+ EXPECT_EQ(getMaxSaturatedSetResultForTesting(kFractionBits), |
+ saturatedSet(intMaxForLayoutUnit + 100, kFractionBits)); |
+ |
+ EXPECT_EQ((intMaxForLayoutUnit - 100) << kFractionBits, |
+ saturatedSet(intMaxForLayoutUnit - 100, kFractionBits)); |
+ |
+ EXPECT_EQ(getMinSaturatedSetResultForTesting(kFractionBits), |
+ saturatedSet(intMinForLayoutUnit, kFractionBits)); |
+ |
+ EXPECT_EQ(getMinSaturatedSetResultForTesting(kFractionBits), |
+ saturatedSet(intMinForLayoutUnit - 100, kFractionBits)); |
+ |
+ EXPECT_EQ((intMinForLayoutUnit + 100) << kFractionBits, |
+ saturatedSet(intMinForLayoutUnit + 100, kFractionBits)); |
+} |
+ |
+TEST(SaturatedArithmeticTest, SetUnsigned) |
+{ |
+ const int kFractionBits = 6; |
+ const int intMaxForLayoutUnit = INT_MAX >> kFractionBits; |
+ |
+ EXPECT_EQ(0, saturatedSet((unsigned)0, kFractionBits)); |
+ |
+ EXPECT_EQ(getMaxSaturatedSetResultForTesting(kFractionBits), |
+ saturatedSet((unsigned)intMaxForLayoutUnit, kFractionBits)); |
+ |
+ EXPECT_EQ(getMaxSaturatedSetResultForTesting(kFractionBits), |
+ saturatedSet((unsigned)(intMaxForLayoutUnit+100), kFractionBits)); |
+ |
+ EXPECT_EQ((intMaxForLayoutUnit - 100) << kFractionBits, |
+ saturatedSet((unsigned)(intMaxForLayoutUnit - 100), kFractionBits)); |
+} |
+ |
+ |
} // namespace |