/*
 * Triple.java
 *
 * Created on 29. April 2005, 16:34
 */

/**
 *
 * @author hug
 */
public class Triple {
    
    public static void getMinMedianMax
        (float a, float b, float c, FloatRef min, FloatRef median, FloatRef max)
    {
        if (a <= b) {
            min.value       = a;
            median.value    = b;
        } else {
            min.value       = b;
            median.value    = a;
        }
        if (median.value <= c) {
            max.value       = c;
        } else if (c < min.value) {
            max.value       = median.value;
            median.value    = min.value;
            min.value       = c;
        } else {
            max.value       = median.value;
            median.value    = c;
        }
        assert min.value <= median.value && median.value <= max.value :
            "postcondition";
        /* assert set_of(min.value, median.value, max.value) == set_of(a, b, c) :
            "postcondition"
        */
    }
   
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        if (args.length < 3) {
            System.out.println
                ("Missing Argument. Please call Triple with three float arguments!");
        } else {
            try {
                FloatRef min	= new FloatRef();
                FloatRef median	= new FloatRef();
                FloatRef max	= new FloatRef();
                getMinMedianMax
                (Float.parseFloat(args[0]),
                Float.parseFloat(args[1]),
                Float.parseFloat(args[2]),
                min, median, max);
                System.out.println
                    ("minimum: " + min.value + ", median: " + median.value +
                    ", maximum: " + max.value);
            } catch (Exception e) {
                System.out.println
                    ("Wrong Argument. Please call Triple with three float arguments!");
            }
        }
    } 
}

class FloatRef {
    public float value;
}


