async def test_equality(test_runner): equality = Equality() async def _prog(context): share0 = context.preproc.get_zero(context) share1 = context.preproc.get_rand(context) share1_ = share0 + share1 share2 = context.preproc.get_rand(context) assert await (await equality(context, share1, share1_)).open() assert await (share1 == share1_).open() assert not await (share1 == share2).open() await test_runner(_prog, n, t, PREPROCESSING, 1000, STANDARD_ARITHMETIC_MIXINS)
DivideShares, DoubleSharingMultiply, DoubleSharingMultiplyArrays, InvertShare, InvertShareArray, ) from honeybadgermpc.progs.mixins.share_comparison import Equality STANDARD_ARITHMETIC_MIXINS = [ BeaverMultiply(), BeaverMultiplyArrays(), InvertShare(), InvertShareArray(), DivideShares(), DivideShareArrays(), Equality(), ] STANDARD_PREPROCESSING = ["double_shares", "rands", "zeros", "triples", "bits"] n, t = 3, 1 async def run_test_program(prog, test_runner, n=n, t=t, k=1000, mixins=STANDARD_ARITHMETIC_MIXINS): return await test_runner(prog, n, t, STANDARD_PREPROCESSING, k, mixins)
PreProcessedElements as FakePreProcessedElements, ) from honeybadgermpc.utils.typecheck import TypeCheck from honeybadgermpc.progs.mixins.dataflow import Share from honeybadgermpc.progs.mixins.share_arithmetic import ( BeaverMultiply, BeaverMultiplyArrays, MixinConstants, ) from honeybadgermpc.progs.mixins.share_comparison import Equality, LessThan config = { MixinConstants.MultiplyShareArray: BeaverMultiplyArrays(), MixinConstants.MultiplyShare: BeaverMultiply(), MixinConstants.ShareEquality: Equality(), MixinConstants.ShareLessThan: LessThan(), } def levensteinDistance_normal(x, y): m = len(x) n = len(y) dynamicProgMatrix = [[0 for i in range(n + 1)] for i in range(m + 1)] for i in range(1, m + 1): dynamicProgMatrix[i][0] = dynamicProgMatrix[i][0] + m for j in range(1, n + 1): dynamicProgMatrix[0][j] = dynamicProgMatrix[0][j] + n for j in range(1, n + 1): for i in range(1, m + 1): cmp = 1 if (x[i - 1] == y[j - 1]) else 0