def testDividePositive1(self): print("Positive Division Test 1:") a = big.int2bytearray(120, 8) b = big.int2bytearray(4, 8) c = divide(a, b) ans = big.bytearray2int(c) printstatement = "\n" + str(big.bytearray2int(a)) + "/" + str(big.bytearray2int(b)) + "=" + str(ans) print(printstatement) # print("\n", big.bytearray2int(a), "/", big.bytearray2int(b), "=", ans) self.assertEqual(ans, 120/4)
def testModulo5(self): print("Modulo Test 5:") a = big.int2bytearray(1234567890) b = big.int2bytearray(2) c = modulo(a, b) ans = big.bytearray2int(c) printstatement = "\n" + str(big.bytearray2int(a)) + "%" + str(big.bytearray2int(b)) + "=" + str(ans) print(printstatement) # print("\n", big.bytearray2int(a), "%", big.bytearray2int(b), "=", ans) self.assertEqual(ans, 1234567890%2)
def testModulo4(self): print("Modulo Test 4:") a = big.int2bytearray(3, 8) b = big.int2bytearray(-4, 8) c = modulo(a, b) ans = big.bytearray2int(c) printstatement = "\n" + str(big.bytearray2int(a)) + "%" + str(big.bytearray2int(b)) + "=" + str(ans) print(printstatement) # print("\n", big.bytearray2int(a), "%", big.bytearray2int(b), "=", ans) self.assertEqual(ans, 3%-4)
def testDivideSignExt1(self): print("Sign Extension Division Test 1:") a = big.int2bytearray(1234567890) b = big.int2bytearray(2) c = divide(a, b) ans = big.bytearray2int(c) printstatement = "\n" + str(big.bytearray2int(a)) + "/" + str(big.bytearray2int(b)) + "=" + str(ans) print(printstatement) # print("\n", big.bytearray2int(a), "/", big.bytearray2int(b), "=", ans) self.assertEqual(ans, 1234567890/2)
def testDivideNegative4(self): print("Negative Division Test 4:") a = big.int2bytearray(-15, 8) b = big.int2bytearray(-5, 8) c = divide(a, b) ans = big.bytearray2int(c) printstatement = "\n" + str(big.bytearray2int(a)) + "/" + str(big.bytearray2int(b)) + "=" + str(ans) print(printstatement) # print("\n", big.bytearray2int(a), "/", big.bytearray2int(b), "=", ans) self.assertEqual(ans, -15/-5)
def testExpMod3(self): print("Exponential Modulo Test 3:") a = 12 aArray = big.int2bytearray(12, 8) b = 17 bArray = big.int2bytearray(17, 8) n = 7 nArray = big.int2bytearray(7, 8) c = moduloExp(aArray, bArray, nArray) ans = big.bytearray2int(c) printstatement = "\n" + str(a) + "^" + str(b) + "%" + str(n) + "=" + str(ans) print(printstatement) # print("\n", a, "^", b, "%", n, "=", ans) self.assertEqual(ans, pow(a, b, n))
def testExpMod2(self): print("Exponential Modulo Test 2:") a = 9 aArray = big.int2bytearray(9, 8) b = 3 bArray = big.int2bytearray(3, 8) n = 4 nArray = big.int2bytearray(4, 8) c = moduloExp(aArray, bArray, nArray) ans = big.bytearray2int(c) printstatement = "\n" + str(a) + "^" + str(b) + "%" + str(n) + "=" + str(ans) print(printstatement) # print("\n", a, "^", b, "%", n, "=", ans) self.assertEqual(ans, pow(a, b, n))
def testExpMod1(self): print("Exponential Modulo Test 1:") a = 5 aArray = big.int2bytearray(5, 8) b = 756 bArray = big.int2bytearray(756, 8) n = 25 nArray = big.int2bytearray(25, 8) c = moduloExp(aArray, bArray, nArray) ans = big.bytearray2int(c) printstatement = "\n" + str(a) + "^" + str(b) + "%" + str(n) + "=" + str(ans) print(printstatement) # print("\n", a, "^", b, "%", n, "=", ans) self.assertEqual(ans, pow(a, b, n))
def moduloExp(a, b, n): zero = bytearray(len(b)) if (big.equal(b, zero)): return big.int2bytearray(1, len(b)) z = moduloExp(a, big.half(b), n) if (big.is_even(b)): return modulo(big.multiply(z, z), n) else: return modulo(big.multiply(a, big.multiply(z, z)), n)
def incrementByOne(number): return big.add(number, big.int2bytearray(1, len(number)))