Added a unittest for APFloat::getSmallestNormalized.
authorMichael Gottesman <mgottesman@apple.com>
Thu, 30 May 2013 00:18:47 +0000 (00:18 +0000)
committerMichael Gottesman <mgottesman@apple.com>
Thu, 30 May 2013 00:18:47 +0000 (00:18 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@182897 91177308-0d34-0410-b5e6-96231b3b80d8

unittests/ADT/APFloatTest.cpp

index fce79941ff20886d6aefa93b0d1e7316f620b17e..87744d547f5b2741333e536ffb10ddc39ebb8462 100644 (file)
@@ -824,6 +824,36 @@ TEST(APFloatTest, getSmallest) {
   EXPECT_TRUE(test.bitwiseIsEqual(expected));  
 }
 
+TEST(APFloatTest, getSmallestNormalized) {
+  APFloat test = APFloat::getSmallestNormalized(APFloat::IEEEsingle, false);
+  APFloat expected = APFloat(APFloat::IEEEsingle, "0x1p-126");
+  EXPECT_FALSE(test.isNegative());
+  EXPECT_TRUE(test.isNormal());
+  EXPECT_FALSE(test.isDenormal());
+  EXPECT_TRUE(test.bitwiseIsEqual(expected));
+
+  test = APFloat::getSmallestNormalized(APFloat::IEEEsingle, true);
+  expected = APFloat(APFloat::IEEEsingle, "-0x1p-126");
+  EXPECT_TRUE(test.isNegative());
+  EXPECT_TRUE(test.isNormal());
+  EXPECT_FALSE(test.isDenormal());
+  EXPECT_TRUE(test.bitwiseIsEqual(expected));
+
+  test = APFloat::getSmallestNormalized(APFloat::IEEEquad, false);
+  expected = APFloat(APFloat::IEEEquad, "0x1p-16382");
+  EXPECT_FALSE(test.isNegative());
+  EXPECT_TRUE(test.isNormal());
+  EXPECT_FALSE(test.isDenormal());
+  EXPECT_TRUE(test.bitwiseIsEqual(expected));
+
+  test = APFloat::getSmallestNormalized(APFloat::IEEEquad, true);
+  expected = APFloat(APFloat::IEEEquad, "-0x1p-16382");
+  EXPECT_TRUE(test.isNegative());
+  EXPECT_TRUE(test.isNormal());
+  EXPECT_FALSE(test.isDenormal());
+  EXPECT_TRUE(test.bitwiseIsEqual(expected));  
+}
+
 TEST(APFloatTest, convert) {
   bool losesInfo;
   APFloat test(APFloat::IEEEdouble, "1.0");