public static IEnumerable<object[]> Cos_Advanced_TestData()
{
// Boundary values
yield return new object[] { double.MaxValue, 0, Math.Cos(double.MaxValue), 0 };
yield return new object[] { double.MinValue, 0, Math.Cos(double.MinValue), 0 };
yield return new object[] { 0, double.MaxValue, double.PositiveInfinity, double.NaN };
yield return new object[] { 0, double.MinValue, double.PositiveInfinity, double.NaN };
yield return new object[] { double.MaxValue, double.MaxValue, Math.Cos(double.MaxValue) * double.PositiveInfinity, double.NegativeInfinity };
yield return new object[] { double.MinValue, double.MinValue, double.NegativeInfinity, double.NegativeInfinity };
// Invalid values
foreach (double invalidReal in s_invalidDoubleValues)
{
yield return new object[] { invalidReal, 1, double.NaN, double.NaN }; // Invalid real
foreach (double invalidImaginary in s_invalidDoubleValues)
{
if (double.IsPositiveInfinity(invalidImaginary))
{
yield return new object[] { 1, invalidImaginary, double.PositiveInfinity, double.NegativeInfinity }; // Invalid imaginary
}
else if (double.IsNegativeInfinity(invalidImaginary))
{
yield return new object[] { 1, invalidImaginary, double.PositiveInfinity, double.PositiveInfinity }; // Invalid imaginary
}
else
{
yield return new object[] { 1, invalidImaginary, double.NaN, double.NaN }; // Invalid imaginary
}
yield return new object[] { invalidReal, invalidImaginary, double.NaN, double.NaN }; // Invalid real, invalid imaginary
}
}
}