public static void RunSByteExplicitCastFromBigIntegerTests()
{
SByte value = 0;
BigInteger bigInteger;
// SByte Explicit Cast from BigInteger: Random value < SByte.MinValue
bigInteger = GenerateRandomBigIntegerLessThan(SByte.MinValue, s_random);
value = (SByte)bigInteger.ToByteArray()[0];
Assert.Throws<OverflowException>(() => VerifySByteExplicitCastFromBigInteger(value, bigInteger));
// SByte Explicit Cast from BigInteger: SByte.MinValue - 1
bigInteger = new BigInteger(SByte.MinValue);
bigInteger -= BigInteger.One;
value = (SByte)bigInteger.ToByteArray()[0];
Assert.Throws<OverflowException>(() => VerifySByteExplicitCastFromBigInteger(value, bigInteger));
// SByte Explicit Cast from BigInteger: SByte.MinValue
VerifySByteExplicitCastFromBigInteger(SByte.MinValue);
// SByte Explicit Cast from BigInteger: Random Negative
for (int i = 0; i < NumberOfRandomIterations; ++i)
{
VerifySByteExplicitCastFromBigInteger((SByte)s_random.Next(SByte.MinValue, 0));
}
// SByte Explicit Cast from BigInteger: -1
VerifySByteExplicitCastFromBigInteger(-1);
// SByte Explicit Cast from BigInteger: 0
VerifySByteExplicitCastFromBigInteger(0);
// SByte Explicit Cast from BigInteger: 1
VerifySByteExplicitCastFromBigInteger(1);
// SByte Explicit Cast from BigInteger: Random Positive
for (int i = 0; i < NumberOfRandomIterations; ++i)
{
VerifySByteExplicitCastFromBigInteger((SByte)s_random.Next(1, SByte.MaxValue));
}
// SByte Explicit Cast from BigInteger: SByte.MaxValue
VerifySByteExplicitCastFromBigInteger(SByte.MaxValue);
// SByte Explicit Cast from BigInteger: SByte.MaxValue + 1
bigInteger = new BigInteger(SByte.MaxValue);
bigInteger += BigInteger.One;
value = (SByte)bigInteger.ToByteArray()[0];
Assert.Throws<OverflowException>(() => VerifySByteExplicitCastFromBigInteger(value, bigInteger));
// SByte Explicit Cast from BigInteger: Random value > SByte.MaxValue
bigInteger = GenerateRandomBigIntegerGreaterThan((UInt64)SByte.MaxValue, s_random);
value = (SByte)bigInteger.ToByteArray()[0];
Assert.Throws<OverflowException>(() => VerifySByteExplicitCastFromBigInteger(value, bigInteger));
}