0
@@ -232,6 +232,9 @@ class TestBignum : public CxxTest::TestSuite {
0
INTEGER shifted = b1->left_shift(state, Object::i2n(3));
0
check_bignum(shifted, "17179869176");
0
+ shifted = b1->left_shift(state, Object::i2n(-3));
0
+ check_bignum(shifted, "268435455");
0
Bignum* nbn1 = Bignum::create(state, (native_int)-2147483647);
0
shifted = nbn1->left_shift(state, Object::i2n(3));
0
check_bignum(shifted, "-17179869176");
0
@@ -241,6 +244,9 @@ class TestBignum : public CxxTest::TestSuite {
0
INTEGER shifted = b1->right_shift(state, Object::i2n(3));
0
check_bignum(shifted, "268435455");
0
+ shifted = b1->right_shift(state, Object::i2n(-3));
0
+ check_bignum(shifted, "17179869176");
0
shifted = b1->right_shift(state, Object::i2n(1048576));
0
check_bignum(shifted, "0");
0
@@ -359,6 +365,14 @@ class TestBignum : public CxxTest::TestSuite {
0
TS_ASSERT_EQUALS(b2->gt(state, b1), Qfalse);
0
TS_ASSERT_EQUALS(b1->gt(state, b1), Qfalse);
0
TS_ASSERT_EQUALS(b1->gt(state, two), Qtrue);
0
+ TS_ASSERT_EQUALS(Bignum::create(state, -3)->gt(state, Object::i2n(-3)), Qfalse);
0
+ TS_ASSERT_EQUALS(Bignum::create(state, -3)->gt(state, Object::i2n(-2)), Qfalse);
0
+ TS_ASSERT_EQUALS(Bignum::create(state, -3)->gt(state, Object::i2n(-4)), Qtrue);
0
+ TS_ASSERT_EQUALS(Bignum::create(state, -3)->gt(state, Float::create(state, -3.0)), Qfalse);
0
+ TS_ASSERT_EQUALS(Bignum::create(state, -3)->gt(state, Float::create(state, -2.9)), Qfalse);
0
+ TS_ASSERT_EQUALS(Bignum::create(state, -3)->gt(state, Float::create(state, -3.1)), Qtrue);
0
@@ -366,6 +380,14 @@ class TestBignum : public CxxTest::TestSuite {
0
TS_ASSERT_EQUALS(b2->ge(state, b1), Qfalse);
0
TS_ASSERT_EQUALS(b1->ge(state, b1), Qtrue);
0
TS_ASSERT_EQUALS(b1->ge(state, two), Qtrue);
0
+ TS_ASSERT_EQUALS(Bignum::create(state, -3)->ge(state, Object::i2n(-3)), Qtrue);
0
+ TS_ASSERT_EQUALS(Bignum::create(state, -3)->ge(state, Object::i2n(-2)), Qfalse);
0
+ TS_ASSERT_EQUALS(Bignum::create(state, -3)->ge(state, Object::i2n(-4)), Qtrue);
0
+ TS_ASSERT_EQUALS(Bignum::create(state, -3)->ge(state, Float::create(state, -3.0)), Qtrue);
0
+ TS_ASSERT_EQUALS(Bignum::create(state, -3)->ge(state, Float::create(state, -2.9)), Qfalse);
0
+ TS_ASSERT_EQUALS(Bignum::create(state, -3)->ge(state, Float::create(state, -3.1)), Qtrue);
0
@@ -373,6 +395,14 @@ class TestBignum : public CxxTest::TestSuite {
0
TS_ASSERT_EQUALS(b2->lt(state, b1), Qtrue);
0
TS_ASSERT_EQUALS(b1->lt(state, b1), Qfalse);
0
TS_ASSERT_EQUALS(b1->lt(state, two), Qfalse);
0
+ TS_ASSERT_EQUALS(Bignum::create(state, -3)->lt(state, Object::i2n(-3)), Qfalse);
0
+ TS_ASSERT_EQUALS(Bignum::create(state, -3)->lt(state, Object::i2n(-2)), Qtrue);
0
+ TS_ASSERT_EQUALS(Bignum::create(state, -3)->lt(state, Object::i2n(-4)), Qfalse);
0
+ TS_ASSERT_EQUALS(Bignum::create(state, -3)->lt(state, Float::create(state, -3.0)), Qfalse);
0
+ TS_ASSERT_EQUALS(Bignum::create(state, -3)->lt(state, Float::create(state, -2.9)), Qtrue);
0
+ TS_ASSERT_EQUALS(Bignum::create(state, -3)->lt(state, Float::create(state, -3.1)), Qfalse);
0
@@ -380,6 +410,14 @@ class TestBignum : public CxxTest::TestSuite {
0
TS_ASSERT_EQUALS(b2->le(state, b1), Qtrue);
0
TS_ASSERT_EQUALS(b1->le(state, b1), Qtrue);
0
TS_ASSERT_EQUALS(b1->le(state, two), Qfalse);
0
+ TS_ASSERT_EQUALS(Bignum::create(state, -3)->le(state, Object::i2n(-3)), Qtrue);
0
+ TS_ASSERT_EQUALS(Bignum::create(state, -3)->le(state, Object::i2n(-2)), Qtrue);
0
+ TS_ASSERT_EQUALS(Bignum::create(state, -3)->le(state, Object::i2n(-4)), Qfalse);
0
+ TS_ASSERT_EQUALS(Bignum::create(state, -3)->le(state, Float::create(state, -3.0)), Qtrue);
0
+ TS_ASSERT_EQUALS(Bignum::create(state, -3)->le(state, Float::create(state, -2.9)), Qtrue);
0
+ TS_ASSERT_EQUALS(Bignum::create(state, -3)->le(state, Float::create(state, -3.1)), Qfalse);
0
void test_from_double() {
Comments
No one has commented yet.