public static IEnumerable<object[]> Sinh_Advanced_TestData()
{
// Boundary values
yield return new object[] { double.MaxValue, 0, double.PositiveInfinity, double.NaN };
yield return new object[] { double.MinValue, 0, double.NegativeInfinity, double.NaN };
yield return new object[] { 0, double.MaxValue, 0, Math.Sin(double.MaxValue) };
yield return new object[] { 0, double.MinValue, 0, Math.Sin(double.MinValue) };
yield return new object[] { double.MaxValue, double.MaxValue, Math.Cos(double.MaxValue) * double.PositiveInfinity, double.PositiveInfinity };
yield return new object[] { double.MinValue, double.MinValue, double.PositiveInfinity, double.NegativeInfinity };
// Invalid values
foreach (double invalidReal in s_invalidDoubleValues)
{
if (double.IsInfinity(invalidReal))
{
yield return new object[] { invalidReal, 1, invalidReal, double.PositiveInfinity }; // Invalid real
}
else
{
yield return new object[] { invalidReal, 1, double.NaN, double.NaN }; // Invalid real
}
foreach (double invalidImaginary in s_invalidDoubleValues)
{
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
}
}
}