def test_mod(xbits, ybits, op): """Tests modular reduction exhaustively for the given bit sizes and negation at every possible position, with randomly generated integers. """ for i in xbits: for j in ybits: x = LargeInteger(randomInt(i, i)) y = LargeInteger(randomInt(j, j)) x.mod(y)
def test_modPow(xbits, ybits): """Tests modular exponentiation exhaustively for the given bit sizes and negation at every possible position, with randomly generated integers. """ for i in xbits: for j in ybits: print("i = %s, j = %s" % (i, j)) x = LargeInteger(randomInt(i, i)) y = LargeInteger(randomInt(j, j)) z = LargeInteger(randomInt(j, j + 1)) x.modPow(y, z)
def test_square(xbits): """Tests squaring exhaustively for the given bit sizes, and with negation, with randomly generated integers. """ for i in xbits: x = LargeInteger(randomInt(i, i)) x.square() x.neg().square()
def test_mul_div(xbits, ybits, op): """Tests multiplication/division exhaustively for the given bit sizes and negation at every possible position, with randomly generated integers. """ for i in xbits: for j in ybits: x = LargeInteger(randomInt(i, i)) y = LargeInteger(randomInt(j, j)) if (op == "mul"): x.mul(y) x.mul(y.neg()) x.neg().mul(y) x.neg().mul(y.neg()) elif (y.value > 0): x.div(y) x.div(y.neg()) x.neg().div(y) x.neg().div(y.neg())
def test_add_sub(xbits, ybits, op): """Tests addition/subtraction exhaustively for the given bit sizes and negation at every possible position, with randomly generated integers. """ for i in xbits: for j in ybits: x = LargeInteger(randomInt(i, i)) y = LargeInteger(randomInt(j, j)) if (op == "add"): x.add(y) x.add(y.neg()) x.neg().add(y) x.neg().add(y.neg()) else: x.sub(y) x.sub(y.neg()) x.neg().sub(y) x.neg().sub(y.neg())
def genData(): services = [] for i in range(0, util.randomInt(2)): services.append({ "date": util.randomDate(afterDate="03/01/2020 8:00 AM", toDate="05/15/2020 05:00 PM"), "name": util.randomString(util.randomInt(2)), "code": util.randomInt(4), "description": util.randomString(util.randomInt(3)), "cost": round(util.randomMoney(min=100.00, max=900.00), 2) }) return { "patient": { "patientId": util.randomInt(12), "name": util.generateName(), "address": util.randomStreetAddress(), "city": util.randomCity(), "state": util.randomState(), "zip": util.randomZipCode() }, "fileId": util.randomInt(6), "created": datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S"), "services": services }