summaryrefslogtreecommitdiff
path: root/test/unit/util/integer_black.h
diff options
context:
space:
mode:
authorMorgan Deters <mdeters@gmail.com>2012-08-14 20:08:29 +0000
committerMorgan Deters <mdeters@gmail.com>2012-08-14 20:08:29 +0000
commitd8fd737fb9ca867f53a287de1c4a87f16a6834f7 (patch)
tree4f1e4195a97162e0888fcf9c18c1a4d13f422f2f /test/unit/util/integer_black.h
parent87dbe20de92232279cf1d48ebfe7113194985208 (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.h20
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) );
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback