/**
 * This function calculates the quantity of steel required for a beam based on its span, width, and depth.
 *
 * @param beamSpan The span of the beam in meters.
 * @param beamWidth The width of the beam in meters.
 * @param beamDepth The depth of the beam in meters.
 * @return The quantity of steel required for the beam in kilograms.
 * @throws IllegalArgumentException If any of the input arguments is null.
 */
fun calculateSteelQuantity(beamSpan: Double?, beamWidth: Double?, beamDepth: Double?): Double {

    if (beamSpan == null || beamWidth == null || beamDepth == null) {
        throw IllegalArgumentException("All input arguments must have a valid numerical value.")
    }

    val steelQuantity: Double
    steelQuantity = if (beamSpan > 10) {
        beamWidth * beamDepth * 79.5
    } else {
        beamWidth * beamDepth * 58.2
    }

    return steelQuantity
}
/**
 * This function calculates the quantity of steel required for a beam based on its span, width, and depth.
 *
 * @param beamSpan The span of the beam in meters.
 * @param beamWidth The width of the beam in meters.
 * @param beamDepth The depth of the beam in meters.
 * @return The quantity of steel required for the beam in kilograms.
 * @throws IllegalArgumentException If any of the input arguments is null.
 */
fun calculateSteelQuantity(beamSpan: Double?, beamWidth: Double?, beamDepth: Double?): Double {
/**
 * This function calculates the quantity of steel required for a beam based on its span, width, and depth.
 *
 * @param beamSpan The span of the beam in meters.
 * @param beamWidth The width of the beam in meters.
 * @param beamDepth The depth of the beam in meters.
 * @return The quantity of steel required for the beam in kilograms.
 * @throws IllegalArgumentException If any of the input arguments is null.
 */
fun calculateSteelQuantity(beamSpan: Double?, beamWidth: Double?, beamDepth: Double?): Double {

    if (beamSpan == null || beamWidth == null || beamDepth == null) {
        throw IllegalArgumentException("All input arguments must have a valid numerical value.")
    }

    val steelQuantity: Double
    steelQuantity = if (beamSpan > 10) {
        beamWidth * beamDepth * 79.5
    } else {
        beamWidth * beamDepth * 58.2
    }

    return steelQuantity
}