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));
        }
Пример #2
0
        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);
        }