public static void RunSingleExplicitCastFromBigIntegerTests()
{
BigInteger bigInteger;
// Single Explicit Cast from BigInteger: Random value < Single.MinValue
bigInteger = GenerateRandomBigIntegerLessThan(Single.MinValue * 2.0, s_random);
VerifySingleExplicitCastFromBigInteger(Single.NegativeInfinity, bigInteger);
// Single Explicit Cast from BigInteger: Single.MinValue - 1
bigInteger = new BigInteger(Single.MinValue);
bigInteger -= BigInteger.One;
VerifySingleExplicitCastFromBigInteger(Single.MinValue, bigInteger);
// Single Explicit Cast from BigInteger: Single.MinValue
VerifySingleExplicitCastFromBigInteger(Single.MinValue);
// Single Explicit Cast from BigInteger: Random Negative
for (int i = 0; i < NumberOfRandomIterations; ++i)
{
VerifySingleExplicitCastFromBigInteger(((Single)(Single.MaxValue * s_random.NextDouble())) - Single.MaxValue);
}
// Single Explicit Cast from BigInteger: Random Negative Non-integral > -100
for (int i = 0; i < NumberOfRandomIterations; ++i)
{
VerifySingleExplicitCastFromBigInteger(((Single)(100 * s_random.NextDouble())) - 100);
}
// Single Explicit Cast from BigInteger: -1
VerifySingleExplicitCastFromBigInteger(-1);
// Single Explicit Cast from BigInteger: 0
VerifySingleExplicitCastFromBigInteger(0);
// Single Explicit Cast from BigInteger: 1
VerifySingleExplicitCastFromBigInteger(1);
// Single Explicit Cast from BigInteger: Random Positive Non-integral < 100
for (int i = 0; i < NumberOfRandomIterations; ++i)
{
VerifySingleExplicitCastFromBigInteger((Single)(100 * s_random.NextDouble()));
}
// Single Explicit Cast from BigInteger: Random Positive
for (int i = 0; i < NumberOfRandomIterations; ++i)
{
VerifySingleExplicitCastFromBigInteger((Single)(Single.MaxValue * s_random.NextDouble()));
}
// Single Explicit Cast from BigInteger: Single.MaxValue + 1
bigInteger = new BigInteger(Single.MaxValue);
bigInteger += BigInteger.One;
VerifySingleExplicitCastFromBigInteger(Single.MaxValue, bigInteger);
// Single Explicit Cast from BigInteger: Random value > Single.MaxValue
bigInteger = GenerateRandomBigIntegerGreaterThan((double)Single.MaxValue * 2, s_random);
VerifySingleExplicitCastFromBigInteger(Single.PositiveInfinity, bigInteger);
// Single Explicit Cast from BigInteger: value < Single.MaxValue but can not be accurately represented in a Single
bigInteger = new BigInteger(16777217);
VerifySingleExplicitCastFromBigInteger(16777216f, bigInteger);
// Single Explicit Cast from BigInteger: Single.MinValue < value but can not be accurately represented in a Single
bigInteger = new BigInteger(-16777217);
VerifySingleExplicitCastFromBigInteger(-16777216f, bigInteger);
}