Example #1
0
 def testXorInt(self):
     bi = BigInt(rbigint.fromint(0xcccc))
     result = bi.call(u"xor", [IntObject(0xaaaa)])
     self.assertTrue(result.bi.int_eq(0x6666))
Example #2
0
 def testAndInt(self):
     bi = BigInt(rbigint.fromint(0x3fffffffffffffff).int_mul(3))
     result = bi.call(u"and", [IntObject(0xffff)])
     self.assertTrue(result.bi.int_eq(0xfffd))
Example #3
0
 def testApproxDivide(self):
     bi = BigInt(rbigint.fromint(7937000378463977))
     # Hack.
     bj = BigInt(rbigint.fromint(1000000000000000000).int_mul(10))
     result = bi.call(u"approxDivide", [bj])
     self.assertAlmostEqual(result._d, 0.0007937000378463977)
Example #4
0
 def testOpCmpBigInt(self):
     i = IntObject(2)
     bi = BigInt(rbigint.fromint(6))
     result = i.call(u"op__cmp", [bi])
     self.assertEqual(result.getInt(), -1)
Example #5
0
 def testBitLength(self):
     bi = BigInt(rbigint.fromint(42))
     result = bi.call(u"bitLength", [])
     self.assertEqual(result.getInt(), 6)
Example #6
0
 def testComplement(self):
     bi = BigInt(rbigint.fromint(6))
     result = bi.call(u"complement", [])
     self.assertTrue(result.bi.int_eq(-7))
Example #7
0
 def getValue(self):
     try:
         return IntObject(self.bi.toint())
     except OverflowError:
         return BigInt(self.bi)
Example #8
0
 def testXorInt(self):
     bi = BigInt(rbigint.fromint(0xcccc))
     result = bi.call(u"xor", [IntObject(0xaaaa)])
     self.assertEqual(result.getInt(), 0x6666)
Example #9
0
 def testFloorDivideDouble(self):
     bi = BigInt(rbigint.fromint(2).pow(rbigint.fromint(65)))
     result = bi.call(u"floorDivide", [DoubleObject(2.0)])
     self.assertTrue(result.bi.eq(rbigint.fromint(2).pow(rbigint.fromint(64))))
Example #10
0
 def uncall(self):
     try:
         return wrapList([IntObject(self.bi.toint())])
     except OverflowError:
         return wrapList([BigInt(self.bi)])
Example #11
0
 def testApproxDivideDouble(self):
     bi = BigInt(rbigint.fromint(1))
     result = bi.call(u"approxDivide", [DoubleObject(32.0)])
     self.assertAlmostEqual(result._d, 1.0 / 32.0)
Example #12
0
 def testComplement(self):
     bi = BigInt(rbigint.fromint(6))
     result = bi.call(u"complement", [])
     self.assertEqual(result.getInt(), -7)
Example #13
0
 def testAndInt(self):
     bi = BigInt(rbigint.fromint(0x3fffffffffffffff).int_mul(3))
     result = bi.call(u"and", [IntObject(0xffff)])
     self.assertEqual(result.getInt(), 0xfffd)
Example #14
0
 def testOpCmpInt(self):
     bi = BigInt(rbigint.fromint(6))
     i = IntObject(2)
     result = bi.call(u"op__cmp", [i])
     self.assertEqual(result.getInt(), 1)
Example #15
0
 def visitIntExpr(self, bi, span):
     try:
         return self.dest.LiveExpr(IntObject(bi.toint()), span)
     except OverflowError:
         return self.dest.LiveExpr(BigInt(bi), span)
Example #16
0
 def testApproxDivideNaN(self):
     i = BigInt(rbigint.fromint(0))
     result = i.call(u"approxDivide", [i])
     self.assertTrue(math.isnan(result.getDouble()))
Example #17
0
 def testBigIntAndIntEquality(self):
     first = BigInt(rbigint.fromint(42))
     second = IntObject(42)
     self.assertEqual(optSame(first, second), EQUAL)
Example #18
0
 def testXorInt(self):
     bi = BigInt(rbigint.fromint(0xcccc))
     result = bi.call(u"xor", [IntObject(0xaaaa)])
     self.assertTrue(result.bi.int_eq(0x6666))
Example #19
0
 def testShiftRight(self):
     bi = BigInt(rbigint.fromint(42))
     result = bi.call(u"shiftRight", [IntObject(2)])
     self.assertEqual(result.getInt(), 10)
Example #20
0
 def testAndInt(self):
     bi = BigInt(rbigint.fromint(0x3fffffffffffffff).int_mul(3))
     result = bi.call(u"and", [IntObject(0xffff)])
     self.assertTrue(result.bi.int_eq(0xfffd))
Example #21
0
 def testXorInt(self):
     bi = BigInt(rbigint.fromint(0xcccc))
     result = bi.call(u"xor", [IntObject(0xaaaa)])
     self.assertEqual(result.getInt(), 0x6666)
Example #22
0
 def testOpCmpInt(self):
     bi = BigInt(rbigint.fromint(6))
     i = IntObject(2)
     result = bi.call(u"op__cmp", [i])
     self.assertEqual(result.getInt(), 1)
Example #23
0
 def testAndInt(self):
     bi = BigInt(rbigint.fromint(0x3fffffffffffffff).int_mul(3))
     result = bi.call(u"and", [IntObject(0xffff)])
     self.assertEqual(result.getInt(), 0xfffd)
Example #24
0
 def testApproxDivideBigInt(self):
     i = IntObject(7937000378463977)
     # Hack.
     bi = BigInt(rbigint.fromint(1000000000000000000).int_mul(10))
     result = i.call(u"approxDivide", [bi])
     self.assertAlmostEqual(result._d, 0.0007937000378463977)
Example #25
0
 def testComplement(self):
     bi = BigInt(rbigint.fromint(6))
     result = bi.call(u"complement", [])
     self.assertEqual(result.getInt(), -7)
Example #26
0
 def testShiftRight(self):
     bi = BigInt(rbigint.fromint(42))
     result = bi.call(u"shiftRight", [IntObject(2)])
     self.assertTrue(result.bi.int_eq(10))
Example #27
0
 def testApproxDivideDouble(self):
     bi = BigInt(rbigint.fromint(1))
     result = bi.call(u"approxDivide", [DoubleObject(32.0)])
     self.assertAlmostEqual(result._d, 1.0 / 32.0)
Example #28
0
 def testBitLength(self):
     bi = BigInt(rbigint.fromint(42))
     result = bi.call(u"bitLength", [])
     self.assertEqual(result.getInt(), 6)
Example #29
0
 def testFloorDivideDouble(self):
     bi = BigInt(rbigint.fromint(2).pow(rbigint.fromint(65)))
     result = bi.call(u"floorDivide", [DoubleObject(2.0)])
     self.assertTrue(
         result.bi.eq(rbigint.fromint(2).pow(rbigint.fromint(64))))
Example #30
0
 def testComplement(self):
     bi = BigInt(rbigint.fromint(6))
     result = bi.call(u"complement", [])
     self.assertTrue(result.bi.int_eq(-7))
Example #31
0
 def testApproxDivideNaN(self):
     i = BigInt(rbigint.fromint(0))
     result = i.call(u"approxDivide", [i])
     self.assertTrue(math.isnan(result.getDouble()))
Example #32
0
 def testApproxDivide(self):
     bi = BigInt(rbigint.fromint(7937000378463977))
     # Hack.
     bj = BigInt(rbigint.fromint(1000000000000000000).int_mul(10))
     result = bi.call(u"approxDivide", [bj])
     self.assertAlmostEqual(result._d, 0.0007937000378463977)
Example #33
0
 def testShiftRight(self):
     bi = BigInt(rbigint.fromint(42))
     result = bi.call(u"shiftRight", [IntObject(2)])
     self.assertTrue(result.bi.int_eq(10))
Example #34
0
 def testFloorDivideNaN(self):
     i = BigInt(rbigint.fromint(0))
     self.assertRaises(UserException, i.call, u"floorDivide", [i])
Example #35
0
 def testShiftRight(self):
     bi = BigInt(rbigint.fromint(42))
     result = bi.call(u"shiftRight", [IntObject(2)])
     self.assertEqual(result.getInt(), 10)