public static IEnumerable<object[]> Sin_Advanced_TestData()
{
yield return new object[] { double.MaxValue, 0, Math.Sin(double.MaxValue), 0 };
yield return new object[] { double.MinValue, 0, Math.Sin(double.MinValue), 0 };
yield return new object[] { 0, double.MaxValue, double.NaN, double.PositiveInfinity };
yield return new object[] { 0, double.MinValue, double.NaN, double.NegativeInfinity };
yield return new object[] { double.MaxValue, double.MaxValue, double.PositiveInfinity, Math.Cos(double.MaxValue) * double.PositiveInfinity };
yield return new object[] { double.MinValue, double.MinValue, double.NegativeInfinity, double.PositiveInfinity };
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.IsInfinity(invalidImaginary))
{
yield return new object[] { 1, invalidImaginary, double.PositiveInfinity, invalidImaginary }; // 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
}
}
}