|
|
@@ -25,9 +25,9 @@ TYPED_TEST(BigIntLikeTest, DefaultConstructorCreatesZero) {
|
|
|
EXPECT_THAT(BigNumber().to_string(), "0");
|
|
|
}
|
|
|
|
|
|
-TYPED_TEST(BigIntLikeTest, ConstructFromStringIsSameValueAsFromInt) {
|
|
|
- EXPECT_THAT(BigNumber("1000000"),
|
|
|
- BigNumber(1000000));
|
|
|
+TYPED_TEST(BigIntLikeTest, StringAndNumberConstructorsEqual) {
|
|
|
+ EXPECT_THAT(BigNumber( "1000000"), BigNumber( 1000000));
|
|
|
+ EXPECT_THAT(BigNumber("-1000000"), BigNumber(-1000000));
|
|
|
}
|
|
|
|
|
|
TYPED_TEST(BigIntLikeTest, AddPastBounds) {
|
|
|
@@ -50,11 +50,31 @@ TYPED_TEST(BigIntLikeTest, AddNegativeSmallerGivesPositive) {
|
|
|
EXPECT_THAT((bi+(-999)).to_string(), "1");
|
|
|
}
|
|
|
|
|
|
+TYPED_TEST(BigIntLikeTest, AddNumberZeroGivesOriginal) {
|
|
|
+ BigNumber bi{1000};
|
|
|
+ EXPECT_THAT(bi+0, bi);
|
|
|
+}
|
|
|
+
|
|
|
+TYPED_TEST(BigIntLikeTest, AddZeroNumberGivesOriginal) {
|
|
|
+ BigNumber bi{1000};
|
|
|
+ EXPECT_THAT(0+bi, bi);
|
|
|
+}
|
|
|
+
|
|
|
TYPED_TEST(BigIntLikeTest, SubSelfIsZero) {
|
|
|
BigNumber bi{1000};
|
|
|
EXPECT_THAT((bi-bi).to_string(), "0");
|
|
|
}
|
|
|
|
|
|
+TYPED_TEST(BigIntLikeTest, SubtractZeroGivesOriginal) {
|
|
|
+ BigNumber bi{1000};
|
|
|
+ EXPECT_THAT(bi-0, bi);
|
|
|
+}
|
|
|
+
|
|
|
+TYPED_TEST(BigIntLikeTest, ZeroMinusNumberEqualsReciprocal) {
|
|
|
+ BigNumber bi{1000};
|
|
|
+ EXPECT_THAT((0-bi).to_string(), (-bi).to_string());
|
|
|
+}
|
|
|
+
|
|
|
TYPED_TEST(BigIntLikeTest, NegativeMinusNegativeIncreateAbs) {
|
|
|
BigNumber bi{-1000};
|
|
|
EXPECT_THAT((bi-100).to_string(), "-1100");
|
|
|
@@ -125,6 +145,12 @@ TYPED_TEST(BigIntLikeTest, DivideByOneReturnsValue) {
|
|
|
EXPECT_THAT(bi/ONE, bi);
|
|
|
}
|
|
|
|
|
|
+TYPED_TEST(BigIntLikeTest, DivideBySelfReturnsOne) {
|
|
|
+ auto &ONE = BigNumber::ONE;
|
|
|
+ BigNumber bi{1000};
|
|
|
+ EXPECT_THAT(bi/bi, ONE);
|
|
|
+}
|
|
|
+
|
|
|
TYPED_TEST(BigIntLikeTest, DivideByNegativeOneReturnsInverse) {
|
|
|
auto &NEGATIVE_ONE = BigNumber::NEGATIVE_ONE;
|
|
|
BigNumber bi{1000};
|
|
|
@@ -152,3 +178,8 @@ TYPED_TEST(BigIntLikeTest, DivisionWithLargeNumbers) {
|
|
|
EXPECT_THAT((big/999999999ULL).to_string(),
|
|
|
"999999999");
|
|
|
}
|
|
|
+
|
|
|
+TYPED_TEST(BigIntLikeTest, ZeroDividedByAnyReturnsZero) {
|
|
|
+ auto & ZERO = BigNumber::ZERO;
|
|
|
+ EXPECT_THAT(ZERO/25, ZERO);
|
|
|
+}
|