public bool CheckCompute(int[] input, int[] output) { byte[] inputBits = Core.AppHelper.CreateArrayCopy(input, e => (byte)e); BigInteger inputNumber = AppHelper.BitArrayToBigInteger(inputBits); int[] factorsByteString = Core.AppHelper.CreateArrayCopy <int, int>(output, t => t); (int[] factorXBits, int[] factorYBits) = IF_NDTM.RetrieveFactors(input.Length, factorsByteString); byte[] factorXBits_b = Core.AppHelper.CreateArrayCopy <int, byte>(factorXBits, t => (byte)t); byte[] factorYBits_b = Core.AppHelper.CreateArrayCopy <int, byte>(factorYBits, t => (byte)t); BigInteger factorXNumber = VerifyResults.AppHelper.BitArrayToBigInteger(factorXBits_b); BigInteger factorYNumber = VerifyResults.AppHelper.BitArrayToBigInteger(factorYBits_b); BigInteger xMultYNumber = factorXNumber * factorYNumber; byte[] xMultYBits = VerifyResults.AppHelper.BigIntegerToBitArray(xMultYNumber); bool result = (xMultYNumber == inputNumber); Ensure.That(result).IsTrue(); log.InfoFormat( "{0} mult by {1} = {2}", factorXNumber.ToString(), factorYNumber.ToString(), xMultYNumber.ToString()); return(result); }
public override bool Decide(int[] input) { tm = new IF_NDTM(input.Length); tm.Setup(); meap = new IF_MEAP(tm); return(meap.Decide(input)); }
public override bool Decide(int[] input) { tm = new IF_NDTM(input.Length); tm.Setup(); tm.Run(input); return(tm.Accepted); }