From: Tim King Date: Fri, 30 Nov 2012 22:28:46 +0000 (+0000) Subject: Committing tests to potentially discover an obscure CLN library issue on 32 bit platf... X-Git-Tag: cvc5-1.0.0~7511 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=3a49733d841b7f2a1c13c430b83a4c5d5d3a7a53;p=cvc5.git Committing tests to potentially discover an obscure CLN library issue on 32 bit platforms. The issue is discussed here: ginac.de/CLN/cln_3.html#SEC15. --- diff --git a/test/unit/util/integer_white.h b/test/unit/util/integer_white.h index 5a6e43782..19281d745 100644 --- a/test/unit/util/integer_white.h +++ b/test/unit/util/integer_white.h @@ -24,6 +24,7 @@ using namespace std; const char* largeVal = "4547897890548754897897897897890789078907890"; + class IntegerWhite : public CxxTest::TestSuite { public: @@ -39,4 +40,15 @@ public: TS_ASSERT_THROWS_NOTHING(fits_in_16_bytes.hash()); TS_ASSERT_THROWS_NOTHING(large.hash()); } + + //Make sure we can properly handle: + //http://www.ginac.de/CLN/cln_3.html#SEC15 + const int i_above2tothe29 = (1 << 29) + 1; + const unsigned int u_above2tothe29 = (1 << 29) + 1; + void testConstruction(){ + TS_ASSERT_EQUALS(Integer(i_above2tothe29), Integer((long)i_above2tothe29)); + TS_ASSERT_EQUALS(Integer(u_above2tothe29), + Integer((unsigned long)u_above2tothe29)); + + } }; diff --git a/test/unit/util/rational_white.h b/test/unit/util/rational_white.h index bcd3d56e4..63b4e1843 100644 --- a/test/unit/util/rational_white.h +++ b/test/unit/util/rational_white.h @@ -430,4 +430,15 @@ public: // TS_ASSERT_EQUALS(large.hash(), // (large.getNumerator().hash()) xor (large.getDenominator().hash())); // } + + //Make sure we can properly handle: + //http://www.ginac.de/CLN/cln_3.html#SEC15 + const int i_above2tothe29 = (1 << 29) + 1; + const unsigned int u_above2tothe29 = (1 << 29) + 1; + void testConstruction(){ + TS_ASSERT_EQUALS(Rational(i_above2tothe29), Rational((long)i_above2tothe29)); + TS_ASSERT_EQUALS(Rational(u_above2tothe29), + Rational((unsigned long)u_above2tothe29)); + + } };