/**
 * Given a coordinate in the form of a pair, returns a string indicating its quadrant.
 *
 * @param coordinate Pair containing the x and y coordinates of a point.
 * @return A string indicating the quadrant the coordinate lies in:
 *         "I" for first quadrant, "II" for second quadrant, "III" for third quadrant,
 *         "IV" for fourth quadrant, or "Origin" if it lies on the origin.
 */
fun coordinateMapping(coordinate: Pair<Int, Int>): String {

    val (x, y) = coordinate

    return when {
        x > 0 && y > 0 -> "I"
        x < 0 && y > 0 -> "II"
        x < 0 && y < 0 -> "III"
        x > 0 && y < 0 -> "IV"
        x == 0 && y == 0 -> "Origin"
        else -> throw IllegalArgumentException("Invalid coordinate")
    }
}
/**
 * Given a coordinate in the form of a pair, returns a string indicating its quadrant.
 *
 * @param coordinate Pair containing the x and y coordinates of a point.
 * @return A string indicating the quadrant the coordinate lies in:
 *         "I" for first quadrant, "II" for second quadrant, "III" for third quadrant,
 *         "IV" for fourth quadrant, or "Origin" if it lies on the origin.
 */
fun coordinateMapping(coordinate: Pair<Int, Int>): String {
/**
 * Given a coordinate in the form of a pair, returns a string indicating its quadrant.
 *
 * @param coordinate Pair containing the x and y coordinates of a point.
 * @return A string indicating the quadrant the coordinate lies in:
 *         "I" for first quadrant, "II" for second quadrant, "III" for third quadrant,
 *         "IV" for fourth quadrant, or "Origin" if it lies on the origin.
 */
fun coordinateMapping(coordinate: Pair<Int, Int>): String {

    val (x, y) = coordinate

    return when {
        x > 0 && y > 0 -> "I"
        x < 0 && y > 0 -> "II"
        x < 0 && y < 0 -> "III"
        x > 0 && y < 0 -> "IV"
        x == 0 && y == 0 -> "Origin"
        else -> throw IllegalArgumentException("Invalid coordinate")
    }
}