示例#1
0
    def testMulDouble(self):
        """
        Ints are promoted by doubles during multiplication.
        """

        i = IntObject(4)
        result = i.call(u"multiply", [DoubleObject(2.1)])
        self.assertTrue(isinstance(result, DoubleObject))
        self.assertEqual(result.getDouble(), 8.4)
示例#2
0
    def testMulDouble(self):
        """
        Ints are promoted by doubles during multiplication.
        """

        i = IntObject(4)
        result = i.call(u"multiply", [DoubleObject(2.1)])
        self.assertTrue(isinstance(result, DoubleObject))
        self.assertEqual(result.getDouble(), 8.4)
示例#3
0
 def testMax(self):
     i = IntObject(3)
     result = i.call(u"max", [IntObject(5)])
     self.assertEqual(result.getInt(), 5)
示例#4
0
 def testApproxDivideNaN(self):
     i = IntObject(0)
     result = i.call(u"approxDivide", [i])
     self.assertTrue(math.isnan(result.getDouble()))
示例#5
0
 def testApproxDivide(self):
     i = IntObject(4)
     result = i.call(u"approxDivide", [IntObject(2)])
     self.assertAlmostEqual(result.getDouble(), 2.0)
示例#6
0
 def testAdd(self):
     i = IntObject(32)
     result = i.call(u"add", [IntObject(11)])
     self.assertEqual(result.getInt(), 43)
示例#7
0
 def testShiftRightLarge(self):
     i = IntObject(0x7fffffffffffffff)
     result = i.call(u"shiftRight", [IntObject(64)])
     self.assertEqual(result.getInt(), 0x0)
示例#8
0
 def testModPow(self):
     i = IntObject(3)
     result = i.call(u"modPow", [IntObject(1000000), IntObject(255)])
     self.assertEqual(result.getInt(), 171)
示例#9
0
 def testMin(self):
     i = IntObject(3)
     result = i.call(u"min", [IntObject(5)])
     self.assertEqual(result.getInt(), 3)
示例#10
0
 def testComplement(self):
     i = IntObject(5)
     result = i.call(u"complement", [])
     self.assertEqual(result.getInt(), -6)
示例#11
0
 def testMax(self):
     i = IntObject(3)
     result = i.call(u"max", [IntObject(5)])
     self.assertEqual(result.getInt(), 5)
示例#12
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)
示例#13
0
 def testApproxDivide(self):
     i = IntObject(4)
     result = i.call(u"approxDivide", [IntObject(2)])
     self.assertAlmostEqual(result.getDouble(), 2.0)
示例#14
0
 def testAddDouble(self):
     i = IntObject(32)
     result = i.call(u"add", [DoubleObject(1.1)])
     self.assertAlmostEqual(result.getDouble(), 33.1)
示例#15
0
 def testOpCmpBigInt(self):
     i = IntObject(2)
     bi = BigInt(rbigint.fromint(6))
     result = i.call(u"op__cmp", [bi])
     self.assertEqual(result.getInt(), -1)
示例#16
0
 def testOpCmpDouble(self):
     i = IntObject(2)
     result = i.call(u"op__cmp", [DoubleObject(2.0)])
     self.assertEqual(result.getInt(), 0)
示例#17
0
 def testPowSmall(self):
     i = IntObject(5)
     result = i.call(u"pow", [IntObject(7)])
     self.assertEqual(result.getInt(), 78125)
示例#18
0
 def testOpCmpBigInt(self):
     i = IntObject(2)
     bi = BigInt(rbigint.fromint(6))
     result = i.call(u"op__cmp", [bi])
     self.assertEqual(result.getInt(), -1)
示例#19
0
 def testShiftLeftFar(self):
     i = IntObject(0x1)
     result = i.call(u"shiftLeft", [IntObject(65)])
     bi = rbigint.fromint(0x1).lshift(65)
     self.assertTrue(result.bi.eq(bi))
示例#20
0
 def testOr(self):
     i = IntObject(0x3)
     result = i.call(u"or", [IntObject(0x5)])
     self.assertEqual(result.getInt(), 0x7)
示例#21
0
 def testSubtractDouble(self):
     i = IntObject(5)
     result = i.call(u"subtract", [DoubleObject(1.5)])
     self.assertAlmostEqual(result.getDouble(), 3.5)
示例#22
0
 def testPowSmall(self):
     i = IntObject(5)
     result = i.call(u"pow", [IntObject(7)])
     self.assertEqual(result.getInt(), 78125)
示例#23
0
 def testAddDouble(self):
     i = IntObject(32)
     result = i.call(u"add", [DoubleObject(1.1)])
     self.assertAlmostEqual(result.getDouble(), 33.1)
示例#24
0
 def testPow(self):
     i = IntObject(3)
     result = i.call(u"pow", [IntObject(100)])
     self.assertTrue(result.bi.eq(rbigint.fromint(3).pow(rbigint.fromint(100))))
示例#25
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)
示例#26
0
 def testModPow(self):
     i = IntObject(3)
     result = i.call(u"modPow", [IntObject(1000000), IntObject(255)])
     self.assertEqual(result.getInt(), 171)
示例#27
0
 def testComplement(self):
     i = IntObject(5)
     result = i.call(u"complement", [])
     self.assertEqual(result.getInt(), -6)
示例#28
0
 def testShiftLeftLarge(self):
     i = IntObject(0x5c5c)
     result = i.call(u"shiftLeft", [IntObject(64)])
     bi = rbigint.fromint(0x5c5c).lshift(64)
     self.assertTrue(result.bi.eq(bi))
示例#29
0
 def testMin(self):
     i = IntObject(3)
     result = i.call(u"min", [IntObject(5)])
     self.assertEqual(result.getInt(), 3)
示例#30
0
 def testShiftLeftFar(self):
     i = IntObject(0x1)
     result = i.call(u"shiftLeft", [IntObject(65)])
     bi = rbigint.fromint(0x1).lshift(65)
     self.assertTrue(result.bi.eq(bi))
示例#31
0
 def testOpCmpDouble(self):
     i = IntObject(2)
     result = i.call(u"op__cmp", [DoubleObject(2.0)])
     self.assertEqual(result.getInt(), 0)
示例#32
0
 def testShiftRight(self):
     i = IntObject(0xf0)
     result = i.call(u"shiftRight", [IntObject(5)])
     self.assertEqual(result.getInt(), 0x7)
示例#33
0
 def testOr(self):
     i = IntObject(0x3)
     result = i.call(u"or", [IntObject(0x5)])
     self.assertEqual(result.getInt(), 0x7)
示例#34
0
 def testShiftRightLarge(self):
     i = IntObject(0x7fffffffffffffff)
     result = i.call(u"shiftRight", [IntObject(64)])
     self.assertEqual(result.getInt(), 0x0)
示例#35
0
 def testPow(self):
     i = IntObject(3)
     result = i.call(u"pow", [IntObject(100)])
     self.assertTrue(
         result.bi.eq(rbigint.fromint(3).pow(rbigint.fromint(100))))
示例#36
0
 def testSubtract(self):
     i = IntObject(5)
     result = i.call(u"subtract", [IntObject(15)])
     self.assertAlmostEqual(result.getInt(), -10)
示例#37
0
 def testShiftLeftLarge(self):
     i = IntObject(0x5c5c)
     result = i.call(u"shiftLeft", [IntObject(64)])
     bi = rbigint.fromint(0x5c5c).lshift(64)
     self.assertTrue(result.bi.eq(bi))
示例#38
0
 def testSubtractDouble(self):
     i = IntObject(5)
     result = i.call(u"subtract", [DoubleObject(1.5)])
     self.assertAlmostEqual(result.getDouble(), 3.5)
示例#39
0
 def testShiftRight(self):
     i = IntObject(0xf0)
     result = i.call(u"shiftRight", [IntObject(5)])
     self.assertEqual(result.getInt(), 0x7)
示例#40
0
 def testBitLength(self):
     i = IntObject(42)
     result = i.call(u"bitLength", [])
     self.assertEqual(result.getInt(), 6)
示例#41
0
 def testSubtract(self):
     i = IntObject(5)
     result = i.call(u"subtract", [IntObject(15)])
     self.assertAlmostEqual(result.getInt(), -10)
示例#42
0
 def testAdd(self):
     i = IntObject(32)
     result = i.call(u"add", [IntObject(11)])
     self.assertEqual(result.getInt(), 43)
示例#43
0
 def testBitLength(self):
     i = IntObject(42)
     result = i.call(u"bitLength", [])
     self.assertEqual(result.getInt(), 6)
示例#44
0
 def testApproxDivideNaN(self):
     i = IntObject(0)
     result = i.call(u"approxDivide", [i])
     self.assertTrue(math.isnan(result.getDouble()))