Home | History | Annotate | Download | only in platform

Lines Matching refs:Positive

47         << ", " << (data.sign() == Decimal::Negative ? "Negative" : "Positive")
80 protected: static const Sign Positive = Decimal::Positive;
116 // FIXME: We should use expectedSign without "Decimal::", however, g++ causes undefined references for DecimalTest::Positive and Negative.
126 EXPECT_EQ(encode(0, 0, Positive), encode(0, 0, Positive).abs());
127 EXPECT_EQ(encode(0, 0, Positive), encode(0, 0, Negative).abs());
129 EXPECT_EQ(encode(0, 10, Positive), encode(0, 10, Positive).abs());
130 EXPECT_EQ(encode(0, 10, Positive), encode(0, 10, Negative).abs());
132 EXPECT_EQ(encode(0, -10, Positive), encode(0, -10, Positive).abs());
133 EXPECT_EQ(encode(0, -10, Positive), encode(0, -10, Negative).abs());
135 EXPECT_EQ(encode(1, 0, Positive), encode(1, 0, Positive).abs());
136 EXPECT_EQ(encode(1, 0, Positive), encode(1, 0, Negative).abs());
138 EXPECT_EQ(encode(1, 10, Positive), encode(1, 10, Positive).abs());
139 EXPECT_EQ(encode(1, 10, Positive), encode(1, 10, Negative).abs());
141 EXPECT_EQ(encode(1, -10, Positive), encode(1, -10, Positive).abs());
142 EXPECT_EQ(encode(1, -10, Positive), encode(1, -10, Negative).abs());
147 EXPECT_EQ(encode(1, 1000, Positive), encode(1, 1000, Positive).abs());
148 EXPECT_EQ(encode(1, 1000, Positive), encode(1, 1000, Negative).abs());
153 EXPECT_EQ(encode(1, -1000, Positive), encode(1, -1000, Positive).abs());
154 EXPECT_EQ(encode(1, -1000, Positive), encode(1, -1000, Negative).abs());
159 EXPECT_EQ(Decimal::infinity(Positive), Decimal::infinity(Positive).abs());
160 EXPECT_EQ(Decimal::infinity(Positive), Decimal::infinity(Negative).abs());
166 EXPECT_EQ(encode(0, 0, Positive), Decimal(0) + Decimal(0));
169 EXPECT_EQ(encode(100, 0, Positive), Decimal(99) + Decimal(1));
171 EXPECT_EQ(encode(UINT64_C(1000000000000000), 35, Positive), encode(1, 50, Positive) + Decimal(1));
172 EXPECT_EQ(encode(UINT64_C(1000000000000000), 35, Positive), Decimal(1) + encode(1, 50, Positive));
173 EXPECT_EQ(encode(UINT64_C(10000000001), 0, Positive), encode(1, 10, Positive) + Decimal(1));
174 EXPECT_EQ(encode(UINT64_C(10000000001), 0, Positive), Decimal(1) + encode(1, 10, Positive));
175 EXPECT_EQ(encode(1, 0, Positive), encode(1, -1022, Positive) + encode(1, 0, Positive));
176 EXPECT_EQ(encode(2, -1022, Positive), encode(1, -1022, Positive) + encode(1, -1022, Positive));
181 EXPECT_EQ(encode(1, 1022, Positive), encode(1, 1022, Positive) + encode(1, 0, Positive));
182 EXPECT_EQ(encode(2, 1022, Positive), encode(1, 1022, Positive) + encode(1, 1022, Positive));
183 EXPECT_EQ(Decimal::infinity(Positive), encode(std::numeric_limits<uint64_t>::max(), 1022, Positive) + encode(1, 0, Positive));
184 EXPECT_EQ(encode(1, 1022, Positive), encode(1, 1022, Positive) + encode(1, -1000, Positive));
189 EXPECT_EQ(encode(1, 0, Positive), encode(1, -1022, Positive) + encode(1, 0, Positive));
190 EXPECT_EQ(encode(2, -1022, Positive), encode(1, -1022, Positive) + encode(1, -1022, Positive));
195 const Decimal Infinity(Decimal::infinity(Positive));
223 EXPECT_EQ(Decimal(1), encode(1, -10, Positive).ceiling());
224 EXPECT_EQ(Decimal(2), encode(11, -1, Positive).ceiling());
225 EXPECT_EQ(Decimal(2), encode(13, -1, Positive).ceiling());
226 EXPECT_EQ(Decimal(2), encode(15, -1, Positive).ceiling());
227 EXPECT_EQ(Decimal(2), encode(19, -1, Positive).ceiling());
228 EXPECT_EQ(Decimal(2), encode(151, -2, Positive).ceiling());
229 EXPECT_EQ(Decimal(2), encode(101, -2, Positive).ceiling());
230 EXPECT_EQ(Decimal(1), encode(199, -3, Positive).ceiling());
231 EXPECT_EQ(Decimal(2), encode(199, -2, Positive).ceiling());
232 EXPECT_EQ(Decimal(3), encode(209, -2, Positive).ceiling());
249 EXPECT_EQ(encode(1, 1000, Positive), encode(1, 1000, Positive).ceiling());
255 EXPECT_EQ(encode(1, 0, Positive), encode(1, -1000, Positive).ceiling());
261 EXPECT_EQ(Decimal::infinity(Positive), Decimal::infinity(Positive).ceiling());
285 EXPECT_TRUE(encode(1, 1000, Positive) == encode(1, 1000, Positive));
286 EXPECT_FALSE(encode(1, 1000, Positive) != encode(1, 1000, Positive));
287 EXPECT_FALSE(encode(1, 1000, Positive) < encode(1, 1000, Positive));
288 EXPECT_TRUE(encode(1, 1000, Positive) <= encode(1, 1000, Positive));
289 EXPECT_FALSE(encode(1, 1000, Positive) > encode(1, 1000, Positive));
290 EXPECT_TRUE(encode(1, 1000, Positive) >= encode(1, 1000, Positive));
299 EXPECT_FALSE(encode(2, 1000, Positive) == encode(1, 1000, Positive));
300 EXPECT_TRUE(encode(2, 1000, Positive) != encode(1, 1000, Positive));
301 EXPECT_FALSE(encode(2, 1000, Positive) < encode(1, 1000, Positive));
302 EXPECT_FALSE(encode(2, 1000, Positive) <= encode(1, 1000, Positive));
303 EXPECT_TRUE(encode(2, 1000, Positive) > encode(1, 1000, Positive));
304 EXPECT_TRUE(encode(2, 1000, Positive) >= encode(1, 1000, Positive));
316 EXPECT_TRUE(encode(1, -1000, Positive) == encode(1, -1000, Positive));
317 EXPECT_FALSE(encode(1, -1000, Positive) != encode(1, -1000, Positive));
318 EXPECT_FALSE(encode(1, -1000, Positive) < encode(1, -1000, Positive));
319 EXPECT_TRUE(encode(1, -1000, Positive) <= encode(1, -1000, Positive));
320 EXPECT_FALSE(encode(1, -1000, Positive) > encode(1, -1000, Positive));
321 EXPECT_TRUE(encode(1, -1000, Positive) >= encode(1, -1000, Positive));
330 EXPECT_FALSE(encode(2, -1000, Positive) == encode(1, -1000, Positive));
331 EXPECT_TRUE(encode(2, -1000, Positive) != encode(1, -1000, Positive));
332 EXPECT_FALSE(encode(2, -1000, Positive) < encode(1, -1000, Positive));
333 EXPECT_FALSE(encode(2, -1000, Positive) <= encode(1, -1000, Positive));
334 EXPECT_TRUE(encode(2, -1000, Positive) > encode(1, -1000, Positive));
335 EXPECT_TRUE(encode(2, -1000, Positive) >= encode(1, -1000, Positive));
347 const Decimal Infinity(Decimal::infinity(Positive));
350 const Decimal Zero(Decimal::zero(Positive));
469 EXPECT_DECIMAL_ENCODED_DATA_EQ(0u, 0, Positive, encode(0, 0, Positive));
471 EXPECT_DECIMAL_ENCODED_DATA_EQ(1u, 0, Positive, encode(1, 0, Positive));
473 EXPECT_DECIMAL_ENCODED_DATA_EQ(1u, 1022, Positive, encode(1, 1022, Positive));
475 EXPECT_DECIMAL_ENCODED_DATA_EQ(1u, 1023, Positive, encode(1, 1023, Positive));
477 EXPECT_TRUE(encode(1, 2000, Positive).isInfinity());
479 EXPECT_DECIMAL_ENCODED_DATA_EQ(0u, 0, Positive, encode(1, -2000, Positive));
481 EXPECT_DECIMAL_ENCODED_DATA_EQ(UINT64_C(99999999999999998), 0, Positive, encode(UINT64_C(99999999999999998), 0, Positive));
483 EXPECT_DECIMAL_ENCODED_DATA_EQ(UINT64_C(99999999999999999), 0, Positive, encode(UINT64_C(99999999999999999), 0, Positive));
485 EXPECT_DECIMAL_ENCODED_DATA_EQ(UINT64_C(100000000000000000), 0, Positive, encode(UINT64_C(100000000000000000), 0, Positive));
491 EXPECT_EQ(encode(0, 0, Positive), Decimal(0) / Decimal(1));
494 EXPECT_EQ(encode(99, 0, Positive), Decimal(99) / Decimal(1));
496 EXPECT_EQ(encode(UINT64_C(33333333333333333), -17, Positive), Decimal(1) / Decimal(3));
497 EXPECT_EQ(encode(UINT64_C(12345678901234), -1, Positive), encode(UINT64_C(12345678901234), 0, Positive) / Decimal(10));
502 EXPECT_EQ(encode(1, 1022, Positive), encode(1, 1022, Positive) / encode(1, 0, Positive));
503 EXPECT_EQ(encode(1, 0, Positive), encode(1, 1022, Positive) / encode(1, 1022, Positive));
504 EXPECT_EQ(Decimal::infinity(Positive), encode(1, 1022, Positive) / encode(1, -1000, Positive));
509 EXPECT_EQ(encode(1, -1022, Positive), encode(1, -1022, Positive) / encode(1, 0, Positive));
510 EXPECT_EQ(encode(1, 0, Positive), encode(1, -1022, Positive) / encode(1, -1022, Positive));
515 const Decimal Infinity(Decimal::infinity(Positive));
518 const Decimal Zero(Decimal::zero(Positive));
560 EXPECT_EQ(encode(0, 0, Positive), encode(0, 0, Positive));
564 EXPECT_EQ(Decimal::infinity(Positive), encode(1, 2000, Positive));
565 EXPECT_EQ(Decimal::zero(Positive), encode(1, -2000, Positive));
571 EXPECT_EQ(Decimal(0), encode(1, -10, Positive).floor());
572 EXPECT_EQ(Decimal(1), encode(11, -1, Positive).floor());
573 EXPECT_EQ(Decimal(1), encode(13, -1, Positive).floor());
574 EXPECT_EQ(Decimal(1), encode(15, -1, Positive).floor());
575 EXPECT_EQ(Decimal(1), encode(19, -1, Positive).floor());
576 EXPECT_EQ(Decimal(1), encode(193332, -5, Positive).floor());
577 EXPECT_EQ(Decimal(12), encode(12002, -3, Positive).floor());
591 EXPECT_EQ(encode(1, 1000, Positive), encode(1, 1000, Positive).floor());
597 EXPECT_EQ(encode(0, 0, Positive), encode(1, -1000, Positive).floor());
603 EXPECT_EQ(Decimal::infinity(Positive), Decimal::infinity(Positive).floor());
610 EXPECT_EQ(encode(0, 0, Positive), Decimal::fromDouble(0.0));
612 EXPECT_EQ(encode(1, 0, Positive), Decimal::fromDouble(1));
614 EXPECT_EQ(encode(123, 0, Positive), Decimal::fromDouble(123));
616 EXPECT_EQ(encode(1, -1, Positive), Decimal::fromDouble(0.1));
622 EXPECT_EQ(encode(UINT64_C(2220446049250313), -31, Positive), Decimal::fromDouble(std::numeric_limits<double>::epsilon()));
624 EXPECT_EQ(encode(UINT64_C(17976931348623157), 292, Positive), Decimal::fromDouble(std::numeric_limits<double>::max()));
626 EXPECT_EQ(encode(UINT64_C(22250738585072014), -324, Positive), Decimal::fromDouble(std::numeric_limits<double>::min()));
636 EXPECT_EQ(encode(0, 0, Positive), Decimal(0));
637 EXPECT_EQ(encode(1, 0, Positive), Decimal(1));
639 EXPECT_EQ(encode(100, 0, Positive), Decimal(100));
641 EXPECT_EQ(encode(0x7FFFFFFF, 0, Positive), Decimal(std::numeric_limits<int32_t>::max()));
647 EXPECT_EQ(encode(0, 0, Positive), fromString("0"));
652 EXPECT_EQ(encode(3, 0, Positive), fromString("+3"));
653 EXPECT_EQ(encode(0, 3, Positive), fromString("0E3"));
654 EXPECT_EQ(encode(5, -1, Positive), fromString(".5"));
655 EXPECT_EQ(encode(100, 0, Positive), fromString("100"));
657 EXPECT_EQ(encode(123, -2, Positive), fromString("1.23"));
659 EXPECT_EQ(encode(123, 8, Positive), fromString("1.23E10"));
661 EXPECT_EQ(encode(123, 8, Positive), fromString("1.23E+10"));
663 EXPECT_EQ(encode(123, -12, Positive), fromString("1.23E-10"));
665 EXPECT_EQ(encode(5, -7, Positive), fromString("0.0000005"));
666 EXPECT_EQ(encode(0, 0, Positive), fromString("0e9999"));
667 EXPECT_EQ(encode(123, -3, Positive), fromString("0.123"));
668 EXPECT_EQ(encode(0, -2, Positive), fromString("00.00"));
669 EXPECT_EQ(encode(1, 2, Positive), fromString("1E2"));
670 EXPECT_EQ(Decimal::infinity(Positive), fromString("1E20000"));
671 EXPECT_EQ(Decimal::zero(Positive), fromString("1E-20000"));
672 EXPECT_EQ(encode(1000, 1023, Positive), fromString("1E1026"));
673 EXPECT_EQ(Decimal::zero(Positive), fromString("1E-1026"));
674 EXPECT_EQ(Decimal::infinity(Positive), fromString("1234567890E1036"));
678 EXPECT_EQ(encode(leadingDigitsOf2PowerOf1024, 292, Positive), fromString("179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137216"));
719 EXPECT_EQ(encode(0, 0, Positive), Decimal(0) * Decimal(0));
722 EXPECT_EQ(encode(99, 0, Positive), Decimal(99) * Decimal(1));
723 EXPECT_EQ(encode(2500, 0, Positive), Decimal(-50) * Decimal(-50));
724 EXPECT_EQ(encode(1, 21, Positive), encode(UINT64_C(10000000000), 0, Positive) * encode(UINT64_C(100000000000), 0, Positive));
729 EXPECT_EQ(encode(1, 1022, Positive), encode(1, 1022, Positive) * encode(1, 0, Positive));
730 EXPECT_EQ(Decimal::infinity(Positive), encode(1, 1022, Positive) * encode(1, 1022, Positive));
731 EXPECT_EQ(encode(1, 22, Positive), encode(1, 1022, Positive) * encode(1, -1000, Positive));
736 EXPECT_EQ(encode(1, -1022, Positive), encode(1, -1022, Positive) * encode(1, 0, Positive));
737 EXPECT_EQ(encode(0, 0, Positive), encode(1, -1022, Positive) * encode(1, -1022, Positive));
742 const Decimal Infinity(Decimal::infinity(Positive));
747 const Decimal Zero(Decimal::zero(Positive));
787 EXPECT_EQ(encode(0, 0, Negative), -encode(0, 0, Positive));
788 EXPECT_EQ(encode(0, 0, Positive), -encode(0, 0, Negative));
790 EXPECT_EQ(encode(0, 10, Negative), -encode(0, 10, Positive));
791 EXPECT_EQ(encode(0, 10, Positive), -encode(0, 10, Negative));
793 EXPECT_EQ(encode(0, -10, Negative), -encode(0, -10, Positive));
794 EXPECT_EQ(encode(0, -10, Positive), -encode(0, -10, Negative));
796 EXPECT_EQ(encode(1, 0, Negative), -encode(1, 0, Positive));
797 EXPECT_EQ(encode(1, 0, Positive), -encode(1, 0, Negative));
799 EXPECT_EQ(encode(1, 10, Negative), -encode(1, 10, Positive));
800 EXPECT_EQ(encode(1, 10, Positive), -encode(1, 10, Negative));
802 EXPECT_EQ(encode(1, -10, Negative), -encode(1, -10, Positive));
803 EXPECT_EQ(encode(1, -10, Positive), -encode(1, -10, Negative));
808 EXPECT_EQ(encode(1, 1000, Negative), -encode(1, 1000, Positive));
809 EXPECT_EQ(encode(1, 1000, Positive), -encode(1, 1000, Negative));
814 EXPECT_EQ(encode(1, -1000, Negative), -encode(1, -1000, Positive));
815 EXPECT_EQ(encode(1, -1000, Positive), -encode(1, -1000, Negative));
820 EXPECT_EQ(Decimal::infinity(Negative), -Decimal::infinity(Positive));
821 EXPECT_EQ(Decimal::infinity(Positive), -Decimal::infinity(Negative));
827 EXPECT_TRUE(Decimal::zero(Positive).isFinite());
828 EXPECT_FALSE(Decimal::zero(Positive).isInfinity());
829 EXPECT_FALSE(Decimal::zero(Positive).isNaN());
830 EXPECT_TRUE(Decimal::zero(Positive).isPositive());
831 EXPECT_FALSE(Decimal::zero(Positive).isNegative());
832 EXPECT_FALSE(Decimal::zero(Positive).isSpecial());
833 EXPECT_TRUE(Decimal::zero(Positive).isZero());
862 EXPECT_FALSE(Decimal::infinity(Positive).isFinite());
863 EXPECT_TRUE(Decimal::infinity(Positive).isInfinity());
864 EXPECT_FALSE(Decimal::infinity(Positive).isNaN());
865 EXPECT_TRUE(Decimal::infinity(Positive).isPositive());
866 EXPECT_FALSE(Decimal::infinity(Positive).isNegative());
867 EXPECT_TRUE(Decimal::infinity(Positive).isSpecial());
868 EXPECT_FALSE(Decimal::infinity(Positive).isZero());
915 EXPECT_EQ(encode(21, -1, Positive), encode(21, -1, Positive).remainder(3));
920 EXPECT_EQ(encode(2, -1, Positive), encode(102, -1, Positive).remainder(1));
921 EXPECT_EQ(encode(1, -1, Positive), Decimal(10).remainder(encode(3, -1, Positive)));
922 EXPECT_EQ(Decimal(1), encode(36, -1, Positive).remainder(encode(13, -1, Positive)));
923 EXPECT_EQ(encode(1, 86, Positive), (encode(1234, 100, Positive).remainder(Decimal(3))));
930 EXPECT_EQ(encode(0, 1022, Positive), encode(1, 1022, Positive).remainder(encode(1, 0, Positive)));
931 EXPECT_EQ(encode(0, 1022, Positive), encode(1, 1022, Positive).remainder(encode(1, 1022, Positive)));
932 EXPECT_EQ(Decimal::infinity(Positive), encode(1, 1022, Positive).remainder(encode(1, -1000, Positive)));
937 EXPECT_EQ(encode(1, -1022, Positive), encode(1, -1022, Positive).remainder(encode(1, 0, Positive)));
938 EXPECT_EQ(encode(0, -1022, Positive), encode(1, -1022, Positive).remainder(encode(1, -1022, Positive)));
943 EXPECT_EQ(Decimal::infinity(Positive), Decimal::infinity(Positive).remainder(1));
947 EXPECT_EQ(Decimal::infinity(Negative), Decimal::infinity(Positive).remainder(-1));
948 EXPECT_EQ(Decimal::infinity(Positive), Decimal::infinity(Negative).remainder(-1));
951 EXPECT_EQ(Decimal::infinity(Positive), Decimal::infinity(Positive).remainder(3));
955 EXPECT_EQ(Decimal::infinity(Negative), Decimal::infinity(Positive).remainder(-1));
956 EXPECT_EQ(Decimal::infinity(Positive), Decimal::infinity(Negative).remainder(-1));
959 EXPECT_EQ(Decimal::nan(), Decimal(1).remainder(Decimal::infinity(Positive)));
975 EXPECT_EQ(encode(1234, 100, Positive), encode(1234, 100, Positive).round());
977 EXPECT_EQ(Decimal(2), encode(190002, -5, Positive).round());
978 EXPECT_EQ(Decimal(2), encode(150002, -5, Positive).round());
979 EXPECT_EQ(Decimal(2), encode(150000, -5, Positive).round());
980 EXPECT_EQ(Decimal(12), encode(12492, -3, Positive).round());
981 EXPECT_EQ(Decimal(13), encode(12502, -3, Positive).round());
992 EXPECT_EQ(Decimal::infinity(Positive), Decimal::infinity(Positive).round());
999 EXPECT_EQ(encode(0, 0, Positive), Decimal(0) - Decimal(0));
1000 EXPECT_EQ(encode(3, 0, Positive), Decimal(2) - Decimal(-1));
1002 EXPECT_EQ(encode(98, 0, Positive), Decimal(99) - Decimal(1));
1003 EXPECT_EQ(encode(0, 0, Positive), Decimal(-50) - Decimal(-50));
1004 EXPECT_EQ(encode(UINT64_C(1000000000000000), 35, Positive), encode(1, 50, Positive) - Decimal(1));
1005 EXPECT_EQ(encode(UINT64_C(1000000000000000), 35, Negative), Decimal(1) - encode(1, 50, Positive));
1010 EXPECT_EQ(encode(1, 1022, Positive), encode(1, 1022, Positive) - encode(1, 0, Positive));
1011 EXPECT_EQ(encode(0, 0, Positive), encode(1, 1022, Positive) - encode(1, 1022, Positive));
1012 EXPECT_EQ(encode(1, 1022, Positive), encode(1, 1022, Positive) + encode(1, -1000, Positive));
1017 EXPECT_EQ(encode(UINT64_C(10000000000000000), -16, Negative), encode(1, -1022, Positive) - encode(1, 0, Positive));
1018 EXPECT_EQ(encode(0, 0, Positive), encode(1, -1022, Positive) - encode(1, -1022, Positive));
1023 const Decimal Infinity(Decimal::infinity(Positive));
1050 EXPECT_EQ(0.0, encode(0, 0, Positive).toDouble());
1053 EXPECT_EQ(1.0, encode(1, 0, Positive).toDouble());
1056 EXPECT_EQ(0.1, encode(1, -1, Positive).toDouble());
1058 EXPECT_EQ(0.3, encode(3, -1, Positive).toDouble());
1060 EXPECT_EQ(0.6, encode(6, -1, Positive).toDouble());
1062 EXPECT_EQ(0.7, encode(7, -1, Positive).toDouble());
1065 EXPECT_EQ(0.01, encode(1, -2, Positive).toDouble());
1066 EXPECT_EQ(0.001, encode(1, -3, Positive).toDouble());
1067 EXPECT_EQ(0.0001, encode(1, -4, Positive).toDouble());
1068 EXPECT_EQ(0.00001, encode(1, -5, Positive).toDouble());
1070 EXPECT_EQ(1e+308, encode(1, 308, Positive).toDouble());
1071 EXPECT_EQ(1e-307, encode(1, -307, Positive).toDouble());
1073 EXPECT_TRUE(std::isinf(encode(1, 1000, Positive).toDouble()));
1074 EXPECT_EQ(0.0, encode(1, -1000, Positive).toDouble());
1079 EXPECT_TRUE(std::isinf(Decimal::infinity(Decimal::Positive).toDouble()));
1086 EXPECT_DECIMAL_STREQ("0", Decimal::zero(Positive));
1092 EXPECT_DECIMAL_STREQ("0.5", encode(5, -1, Positive));
1094 EXPECT_DECIMAL_STREQ("12.345", encode(12345, -3, Positive));
1096 EXPECT_DECIMAL_STREQ("0.12345", encode(12345, -5, Positive));
1098 EXPECT_DECIMAL_STREQ("50", encode(50, 0, Positive));
1100 EXPECT_DECIMAL_STREQ("5e+1", encode(5, 1, Positive));
1102 EXPECT_DECIMAL_STREQ("5.678e+103", encode(5678, 100, Positive));
1104 EXPECT_DECIMAL_STREQ("5.678e-97", encode(5678, -100, Positive));
1106 EXPECT_DECIMAL_STREQ("8639999913600001", encode(UINT64_C(8639999913600001), 0, Positive));
1107 EXPECT_DECIMAL_STREQ("9007199254740991", encode((static_cast<uint64_t>(1) << DBL_MANT_DIG) - 1, 0, Positive));
1108 EXPECT_DECIMAL_STREQ("99999999999999999", encode(UINT64_C(99999999999999999), 0, Positive));
1109 EXPECT_DECIMAL_STREQ("9.9999999999999999e+17", encode(UINT64_C(99999999999999999), 1, Positive));
1110 EXPECT_DECIMAL_STREQ("9.9999999999999999e+18", encode(UINT64_C(99999999999999999), 2, Positive));
1111 EXPECT_DECIMAL_STREQ("1e+16", encode(UINT64_C(99999999999999999), -1, Positive));
1112 EXPECT_DECIMAL_STREQ("1000000000000000", encode(UINT64_C(99999999999999999), -2, Positive));
1113 EXPECT_DECIMAL_STREQ("1", encode(UINT64_C(99999999999999999), -17, Positive));
1114 EXPECT_DECIMAL_STREQ("0.001", encode(UINT64_C(99999999999999999), -20, Positive));
1115 Positive));
1120 EXPECT_DECIMAL_STREQ("Infinity", Decimal::infinity(Positive));