protected override IDataItem TestFunc(IDataItem p1, IDataItem p2, out IDataItem r2) { var u = p1.ToBigInt().Value; var v = p2.ToUInt32().Value; BigInt r; var q = BigInt.DivRem(u, v, out r); r2 = new BigIntDataItem(r); return(new BigIntDataItem(q)); }
void TestDivImpl1(long ai, long bi) { BigInt a = (BigInt)ai; BigInt b = (BigInt)bi; BigInt q = new BigInt(); BigInt r; if (bi == 0) { Assert.ThrowsException <DivideByZeroException>( () => { BigInt.DivRem(a, b, ref q, out r); }); Assert.ThrowsException <DivideByZeroException>( () => { BigInt.DivRem(a, b, ref a, out r); }); return; } BigInt.DivRem(a, b, ref q, out r); AssertEquals($"{ai}/{bi} = {ai/bi}", q, ai / bi); AssertEquals($"{ai}%{bi} = {ai%bi}", r, ai % bi); }