def testLeGe(self): self.assertTrue(0xFE <= intBase(0xFF) and intBase(0xFE) <= 0xFF) self.assertTrue(0xFF <= intBase(0xFF)) self.assertFalse(-99 <= intBase(-100) and intBase(-99) <= -100) self.assertTrue(0xFFFFFFFFFFFFFFFE <= intBase(0xFFFFFFFFFFFFFFFF)) self.assertFalse(0xFFFFFFFFFFFFFFFF <= intBase(0xFFFFFFFFFFFFFFFE)) self.assertTrue(intBase(0xFFFFFFFFFFFFFFFF) <= 0xFFFFFFFFFFFFFFFF) self.assertFalse(intBase(1) >= intBase(2))
def testLtGt(self): self.assertTrue(0xFE < intBase(0xFF) and intBase(0xFE) < 0xFF) self.assertFalse(-99 < intBase(-100) and intBase(-99) < -100) self.assertTrue(0xFFFFFFFFFFFFFFFE < intBase(0xFFFFFFFFFFFFFFFF)) self.assertFalse(0xFFFFFFFFFFFFFFFF < intBase(0xFFFFFFFFFFFFFFFE)) self.assertTrue(intBase(0xFFFFFFFFFFFFFFFE) < 0xFFFFFFFFFFFFFFFF) self.assertTrue(intBase(1) < intBase(2))
def testMul(self): self.assertEqual(4, intBase(2) * 2) self.assertEqual(4, 2 * intBase(2)) self.assertEqual(-4, 2 * intBase(-2)) self.assertEqual(4, -2 * intBase(-2)) self.assertEqual(0x7fffffffffffffff * 2, intBase(0x7fffffffffffffff) * 2) self.assertEqual(0x80000000 * 2, intBase(0x80000000) * 2) self.assertEqual(-0x80000000 * 2, 2 * intBase(-0x80000000)) self.assertEqual(14, intBase(7) * intBase(2))
def testAdd(self): self.assertEqual(10, intBase(5) + 5) self.assertEqual(10, 5 + intBase(5)) a = 10 a += intBase(10) self.assertEqual(20, a) self.assertEqual(-20, intBase(-10) + (-10)) self.assertEqual(10, intBase(-10) + 20) self.assertEqual(0x7fffffffffffffff + 1, intBase(0x7fffffffffffffff) + 1) self.assertEqual(-0x8000000000000000 + 10, intBase(-0x8000000000000000) + 10) self.assertEqual(0, intBase(-0x8000000000000000) + 0x8000000000000000) self.assertEqual(5, intBase(3) + intBase(2))
def testSub(self): self.assertEqual(0, intBase(5) - 5) self.assertEqual(10, 15 - intBase(5)) a = 10 a -= intBase(5) self.assertEqual(5, a) self.assertEqual(-20, intBase(-10) - 10) self.assertEqual(-10, 10 - intBase(20)) self.assertEqual(-0xFFFFFFFF - 1, intBase(-0xFFFFFFFF) - 1) self.assertEqual(5, intBase(7) - intBase(2))
def testCtor(self): a = intBase(0xFF) a = intBase(0xFFFF) a = intBase(0xFFFFFFFF) a = intBase(0x8000000000000000) a = intBase(0xFFFFFFFFFFFFFFFF) a = intBase(-20) a = intBase(-2000) a = intBase(-200000) a = intBase(-20000000000) a = intBase(-0xFFFFFFFFFFFFFFFF) a = intBase(True)
def testNe(self): self.assertTrue(0xFE != intBase(0xFF)) self.assertTrue(0xFF00 != intBase(0xFFFF)) self.assertTrue(0xFFFFFF88 != intBase(0xFFFFFFFF)) self.assertTrue(0x8000000000000000 - 1 != intBase(0x8000000000000000)) self.assertTrue(0xFFFFFFFFFFFFFFFF - 1 != intBase(0xFFFFFFFFFFFFFFFF)) self.assertTrue(-20 + 1 != intBase(-20)) self.assertTrue(-2000 + 1 != intBase(-2000)) self.assertTrue(-20000000000 + 1 != intBase(-20000000000)) self.assertTrue( -0x8000000000000000 - 1 != intBase(-0x8000000000000000)) self.assertTrue(intBase(1) != intBase(2))
def testEq(self): self.assertTrue(0xFF == intBase(0xFF) and intBase(0xFF) == 0xFF) self.assertTrue(0xFFFF == intBase(0xFFFF) and 0xFFFF == intBase(0xFFFF)) self.assertTrue(0xFFFFFFFF == intBase(0xFFFFFFFF) and intBase(0xFFFFFFFF) == 0xFFFFFFFF) self.assertTrue(0x8000000000000000 == intBase(0x8000000000000000)) self.assertTrue(0xFFFFFFFFFFFFFFFF == intBase(0xFFFFFFFFFFFFFFFF)) self.assertTrue(-20 == intBase(-20)) self.assertTrue(-2000 == intBase(-2000)) self.assertTrue(-0x7FFFFFFF == intBase(-0x7FFFFFFF)) self.assertTrue(-20000000000 == intBase(-20000000000)) self.assertTrue(-0x8000000000000000 == intBase(-0x8000000000000000)) self.assertTrue(intBase(0x20L) == intBase(0x20)) self.assertTrue(True == intBase(True)) self.assertTrue(False == intBase(0)) self.assertTrue(True == intBase(1)) self.assertTrue(intBase(1) == intBase(1))
def testDiv(self): self.assertEqual(1, intBase(2) / 2) self.assertEqual(2, 5 / intBase(2)) self.assertEqual(-1, 2 / intBase(-2)) self.assertEqual(1, -2 / intBase(-2)) self.assertEqual(3, intBase(7) / intBase(2)) try: -2 / intBase(0) self.assertTrue(False) except ZeroDivisionError: self.assertTrue(True) try: intBase(2) / 0 self.assertTrue(False) except ZeroDivisionError: self.assertTrue(True) try: intBase(0) / intBase(0) self.assertTrue(False) except ZeroDivisionError: self.assertTrue(True)
def testLongConvert(self): self.assertEqual("100", "%d" % intBase(100)) self.assertEqual("FFFF", "%X" % intBase(0xFFFF)) self.assertEqual("-70000000000", "%d" % intBase(-70000000000)) self.assertEqual("FFFFFFFFFFFFFF", "%X" % intBase(0xFFFFFFFFFFFFFF)) self.assertEqual("0", "%d" % intBase(False))
def testUnary(self): self.assertEqual(-0xFFFFFFFF, -intBase(0xFFFFFFFF)) self.assertEqual(0xFFFFFFFF, +intBase(0xFFFFFFFF)) self.assertEqual(0, ~intBase(0xFFFFFFFF))
def testXor(self): self.assertEqual(0xFFFFFFFF ^ 0xFFFF, intBase(0xFFFFFFFF) ^ 0xFFFF) self.assertEqual(0xFFFFFFFF ^ 0xFFFF, 0xFFFFFFFF ^ intBase(0xFFFF)) self.assertEqual(-0xFFFFFFFF ^ 0xFFFF, intBase(-0xFFFFFFFF) ^ 0xFFFF) self.assertEqual(-0xFFFFFFFF ^ 0xFFFF, -0xFFFFFFFF ^ intBase(0xFFFF))
def testOr(self): self.assertEqual(0xFFFF0000 | 0xFFFF, intBase(0xFFFF0000) | 0xFFFF) self.assertEqual(0xFFFF0000 | 0xFFFF, 0xFFFF0000 | intBase(0xFFFF)) self.assertEqual(-0xFFFF0000 | 0xFFFF, intBase(-0xFFFF0000) | 0xFFFF) self.assertEqual(-0xFFFF0000 | 0xFFFF, -0xFFFF0000 | intBase(0xFFFF))
def testAnd(self): self.assertEqual(0xFFFFFFFF & 0xFFFF, intBase(0xFFFFFFFF) & 0xFFFF) self.assertEqual(0xFFFFFFFF & 0xFFFF, 0xFFFFFFFF & intBase(0xFFFF)) self.assertEqual(-0xFFFFFFFF & 0xFFFF, intBase(-0xFFFFFFFF) & 0xFFFF) self.assertEqual(-0xFFFFFFFF & 0xFFFF, -0xFFFFFFFF & intBase(0xFFFF))
def testShift(self): self.assertEqual(0xFFFFFFFF >> 8, intBase(0xFFFFFFFF) >> 8) self.assertEqual(0x00FFFFFF << 8, intBase(0x00FFFFFF) << 8) self.assertEqual(0xFFFFFFFF >> 8, 0xFFFFFFFF >> intBase(8)) self.assertEqual(0x00FFFFFF << 8, 0x00FFFFFF << intBase(8))
def testMod(self): self.assertEqual(1, intBase(3) % 2) self.assertEqual(0, intBase(3) % 3) self.assertEqual(1, 3 % intBase(2)) self.assertEqual(0, 3 % intBase(3)) self.assertEqual(2, intBase(5) % intBase(3))
def testConvert(self): self.assertEqual("100", "%d" % intBase(100)) self.assertEqual("64", "%x" % intBase(100))
def testIs(self): a = b = intBase(0x1) self.assertTrue(a is b)