public void NumericOps1() {
// overflow tests:
Assert((BigInteger)ClrInteger.Minus(Int32.MinValue) == -(BigInteger)Int32.MinValue);
Assert((BigInteger)ClrInteger.Abs(Int32.MinValue) == -(BigInteger)Int32.MinValue);
Assert((BigInteger)ClrInteger.Divide(Int32.MinValue, -1) == -(BigInteger)Int32.MinValue);
Assert(ClrInteger.Modulo(Int32.MinValue, -1) == 0);
var dm = ClrInteger.DivMod(Int32.MinValue, -1);
Assert((BigInteger)dm[0] == -(BigInteger)Int32.MinValue);
Assert((int)dm[1] == 0);
Assert((int)ClrInteger.LeftShift(1, Int32.MinValue) == 0);
AssertExceptionThrown<ArgumentOutOfRangeException>(() => ClrInteger.RightShift(1, Int32.MinValue));
}