biginteger_test.cpp 875 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. //
  2. // biginteger_test.cpp
  3. // bigdecimal
  4. //
  5. // Created by Sam Jaffe on 5/18/18.
  6. //
  7. #include <gmock/gmock.h>
  8. #include "biginteger.h"
  9. TEST(BigIntegerTest, ModuloZeroThrows) {
  10. math::biginteger bi{1000};
  11. EXPECT_THROW(bi%0, std::domain_error);
  12. }
  13. TEST(BigIntegerTest, ModuloBiggerIsSameValue) {
  14. math::biginteger bi{1000};
  15. EXPECT_THAT(bi%2000, bi);
  16. }
  17. TEST(BigIntegerTest, ModuloSameNumberIsZero) {
  18. math::biginteger bi{1000};
  19. EXPECT_THAT(bi%1000, 0);
  20. }
  21. TEST(BigIntegerTest, ModuloDivisorIsZero) {
  22. math::biginteger bi{1000};
  23. EXPECT_THAT(bi%100, 0);
  24. }
  25. TEST(BigIntegerTest, ModuloDiffSignIsInverseElement) {
  26. math::biginteger bi{1000};
  27. math::biginteger mod{13};
  28. EXPECT_THAT((bi%mod)+((-bi)%mod), mod);
  29. }
  30. TEST(BigIntegerTest, ModuloNegativesIsNegative) {
  31. math::biginteger bi{1000};
  32. math::biginteger mod{13};
  33. EXPECT_THAT((bi%mod), -((-bi)%(-mod)));
  34. }