diff options
author | Morgan Deters <mdeters@gmail.com> | 2012-08-14 20:08:29 +0000 |
---|---|---|
committer | Morgan Deters <mdeters@gmail.com> | 2012-08-14 20:08:29 +0000 |
commit | d8fd737fb9ca867f53a287de1c4a87f16a6834f7 (patch) | |
tree | 4f1e4195a97162e0888fcf9c18c1a4d13f422f2f /test/unit/util/integer_black.h | |
parent | 87dbe20de92232279cf1d48ebfe7113194985208 (diff) |
Fixes to integer wrapper classes:
* more uniform interface between the CLN and GMP wrappers
* support base inference (base == 0) on parsing strings with the CLN wrapper; this was a difference from the GMP wrapper (resolves bug #372)
Diffstat (limited to 'test/unit/util/integer_black.h')
-rw-r--r-- | test/unit/util/integer_black.h | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/test/unit/util/integer_black.h b/test/unit/util/integer_black.h index 06be9e57d..a2641e118 100644 --- a/test/unit/util/integer_black.h +++ b/test/unit/util/integer_black.h @@ -283,6 +283,26 @@ public: TS_ASSERT_EQUALS(res, large.toString()); } + void testBaseInference() { + TS_ASSERT_EQUALS(Integer("0xa", 0), 10); + TS_ASSERT_EQUALS(Integer("0xff", 0), 255); + TS_ASSERT_EQUALS(Integer("011", 0), 9); + TS_ASSERT_EQUALS(Integer("0b1010", 0), 10); + TS_ASSERT_EQUALS(Integer("-1", 0), -1); + TS_ASSERT_EQUALS(Integer("42", 0), 42); + } + + void testParseErrors() { + TS_ASSERT_THROWS(Integer("abracadabra"), std::invalid_argument); + TS_ASSERT_THROWS(Integer("+-1"), std::invalid_argument); + TS_ASSERT_THROWS(Integer("-+1"), std::invalid_argument); + TS_ASSERT_THROWS(Integer("5i"), std::invalid_argument); + TS_ASSERT_THROWS(Integer("10xyz"), std::invalid_argument); + TS_ASSERT_THROWS(Integer("0xff", 10), std::invalid_argument); + TS_ASSERT_THROWS(Integer("#x5", 0), std::invalid_argument); + TS_ASSERT_THROWS(Integer("0b123", 0), std::invalid_argument); + } + void testPow() { TS_ASSERT_EQUALS( Integer(1), Integer(1).pow(0) ); TS_ASSERT_EQUALS( Integer(1), Integer(5).pow(0) ); |