/**
 * This function checks if the given complex number is a positive real number, negative real number,
 * positive imaginary number, negative imaginary number, or a complex number with both real and imaginary parts.
 *
 * @param real The real part of the complex number.
 * @param imaginary The imaginary part of the complex number.
 * @return A string indicating the type of complex number.
 *
 * Example:
 * complexNumberCheck(2.0, 0.0) -> "Positive real number"
 * complexNumberCheck(-3.0, 0.0) -> "Negative real number"
 * complexNumberCheck(0.0, 6.0) -> "Positive imaginary number"
 * complexNumberCheck(0.0, -2.0) -> "Negative imaginary number"
 * complexNumberCheck(4.0, 3.0) -> "Complex number"
 */
fun complexNumberCheck(real: Double, imaginary: Double): String {

    return when {
        real > 0 -> {
            when {
                imaginary == 0.0 -> "Positive real number"
                imaginary > 0 -> "Complex number"
                imaginary < 0 -> "Complex number"
                else -> "Invalid input"
            }
        }
        real < 0 -> {
            when {
                imaginary == 0.0 -> "Negative real number"
                imaginary > 0 -> "Complex number"
                imaginary < 0 -> "Complex number"
                else -> "Invalid input"
            }
        }
        real == 0.0 -> {
            when {
                imaginary > 0 -> "Positive imaginary number"
                imaginary < 0 -> "Negative imaginary number"
                else -> "Invalid input"
            }
        }
        else -> "Invalid input"
    }
}
/**
 * This function checks if the given complex number is a positive real number, negative real number,
 * positive imaginary number, negative imaginary number, or a complex number with both real and imaginary parts.
 *
 * @param real The real part of the complex number.
 * @param imaginary The imaginary part of the complex number.
 * @return A string indicating the type of complex number.
 *
 * Example:
 * complexNumberCheck(2.0, 0.0) -> "Positive real number"
 * complexNumberCheck(-3.0, 0.0) -> "Negative real number"
 * complexNumberCheck(0.0, 6.0) -> "Positive imaginary number"
 * complexNumberCheck(0.0, -2.0) -> "Negative imaginary number"
 * complexNumberCheck(4.0, 3.0) -> "Complex number"
 */
fun complexNumberCheck(real: Double, imaginary: Double): String {
/**
 * This function checks if the given complex number is a positive real number, negative real number,
 * positive imaginary number, negative imaginary number, or a complex number with both real and imaginary parts.
 *
 * @param real The real part of the complex number.
 * @param imaginary The imaginary part of the complex number.
 * @return A string indicating the type of complex number.
 *
 * Example:
 * complexNumberCheck(2.0, 0.0) -> "Positive real number"
 * complexNumberCheck(-3.0, 0.0) -> "Negative real number"
 * complexNumberCheck(0.0, 6.0) -> "Positive imaginary number"
 * complexNumberCheck(0.0, -2.0) -> "Negative imaginary number"
 * complexNumberCheck(4.0, 3.0) -> "Complex number"
 */
fun complexNumberCheck(real: Double, imaginary: Double): String {

    return when {
        real > 0 -> {
            when {
                imaginary == 0.0 -> "Positive real number"
                imaginary > 0 -> "Complex number"
                imaginary < 0 -> "Complex number"
                else -> "Invalid input"
            }
        }
        real < 0 -> {
            when {
                imaginary == 0.0 -> "Negative real number"
                imaginary > 0 -> "Complex number"
                imaginary < 0 -> "Complex number"
                else -> "Invalid input"
            }
        }
        real == 0.0 -> {
            when {
                imaginary > 0 -> "Positive imaginary number"
                imaginary < 0 -> "Negative imaginary number"
                else -> "Invalid input"
            }
        }
        else -> "Invalid input"
    }
}