public static void Main()
double refundAmount = 100.0;
RefundStatus status = GetRefundStatus(premium, refundAmount);
Console.WriteLine($"Booking is: {status}");
public static RefundStatus GetRefundStatus(double premium, double refundAmount)
const double Tolerance = 0.0001;
return RefundStatus.NonRefundable;
else if (Math.Abs(refundAmount - premium) < Tolerance)
return RefundStatus.Refundable;
else if (refundAmount > 0 && refundAmount < premium)
return RefundStatus.PartiallyRefundable;
throw new InvalidOperationException("Invalid refund amount.");