private static void DoubleExplicitCastFromLargeBigIntegerTests(int startShift, int bigShiftLoopLimit, int smallShift = 0, int smallShiftLoopLimit = 1)
{
BigInteger init = BigInteger.One << startShift;
for (int i = 0; i < smallShiftLoopLimit; i++)
{
BigInteger temp = init << ((i + 1) * smallShift);
for (int j = 0; j < bigShiftLoopLimit; j++)
{
temp = temp << (int.MaxValue / 2);
VerifyDoubleExplicitCastFromBigInteger(Double.PositiveInfinity, temp);
VerifyDoubleExplicitCastFromBigInteger(Double.NegativeInfinity, -temp);
}
}
}