/**
 * Un termómetro que recuerda la temperatura actual y la mínima y la máxima
 * registradas desde que se creó.
 */
public class Thermometer {
    private String place;           // dónde está instalado
    private double current;         // grados Celsius
    private double min;
    private double max;
    private int readings;           // cuántas lecturas lleva, contando la inicial

    /** Crea un termómetro en un lugar, con una primera lectura. */
    public Thermometer(String place, double initial) {
        this.place = place;
        this.current = initial;
        this.min = initial;
        this.max = initial;
        this.readings = 1;
    }

    /** Crea un termómetro sin lugar conocido. */
    public Thermometer(double initial) {
        this("sin lugar", initial);
    }

    /** Crea un termómetro sin lugar conocido que empieza en 0 °C. */
    public Thermometer() {
        this(0.0);
    }

    /** Registra una lectura nueva: cambia la actual y, si hace falta, la mínima o la máxima. */
    public void record(double celsius) {
        current = celsius;
        if (celsius < min) {
            min = celsius;
        }
        if (celsius > max) {
            max = celsius;
        }
        readings++;
    }

    public String place() {
        return place;
    }

    public double current() {
        return current;
    }

    public double min() {
        return min;
    }

    public double max() {
        return max;
    }

    public int readings() {
        return readings;
    }

    /** Diferencia entre la máxima y la mínima registradas. */
    public double range() {
        return max - min;
    }
}
