/** a class to represent temperature values
  *
  * @author - YOUR NAME
  * @version - 1.0 - DATE
  */
public class Temperature
{
   private double temp;  // temperature value
   private char scale;   // temperature scale (C or F)
   
   /** Default constructor, sets the temperature to 0 celcius
     */
   public Temperature()
   {
      
      this.temp = 0;
      this.scale = 'C';
      
   }
   
   /** Explicit value constructor. 
     *  If the scale is something other than an F or C, change to C  
     *  @param temp - the temperature value
     *  @param scale - F or C
     */   
   public Temperature(double temp, char scale)
   {
      // MAKE ME
   }

   /** This helper method checks the value of the 
     *  temperature scale and either returns the 
     *  scale if it is 'F' or 'C' or returns 'C'
     *  if the incoming scale value is invalid
     *
     * @param inScale The temperature scale to check
     * @return A valid scale 
     */
   private char checkScale(char inScale)
   {
      
      // MAKE ME
      
   }
   
   /** cToF changes the incoming temperature to its equivalent Fahrenheit 
     *  It is provided to be used with other methods in this class
     * 
     * @param celcius The temperature to convert
     * @return The fahrenheit equivalent of the incoming temperature
     */
   public double cToF(double celcius)
   {
      return ((9.0/5.0) * celcius) + 32;
   }
   
   /** fToC changes the incoming temperature to its equivalent celcius temp 
     *  It is provided to be used with other methods in this class
     * 
     * @param fahren The temperature to convert
     * @return The celcius equivalent of the incoming temperature
     */
   public double fToC(double fahren)
   {
      return  (5.0/9.0) * (fahren - 32);
   } 
   
   
   /** gets the temperature as the fahrenheit representation
     *  for example, 0 celcius would return 32 fahrenheit.  212 
     *  fahrenheit would return 212.
	  *  HINT: work out a few examples on paper. 
	  *
	  * @return The Fahrenheit equivalence of this temperature.
     */  
   public double getFahren()
   {
      
      // MAKE ME
      
   }
   
   
   /** compareTo compares this temperature and other temperature
     *  and returns 1 if this temperature is greater than other, 
     *  0 if they are equivalent and -1 if this is less than other.
     *
     *  Note:  compare the equivalent temperatures -- see getFahren.
     *
     * @param other The Temperature object to compare to this Temperature.
     * @return 1 if this Temperature is greater than the other Temperature.
	  *         0 if the two Temperatures are equivalent
	  *        -1 if this Temperature is less than the other Temperature.
     */
   public int compareTo (Temperature other)
   {
      
      // MAKE ME
      
   }
   
   /** makeCopy creates a new Temperature object that is identical in values to this
     *  Temperature object
     *
     *  @return   A new Temperature with the same values as this Temperature object.
     */
   public Temperature makeCopy()
   {
      
      // MAKE ME
      
      
   } 
   
   /** toString returns a String representation of this Temperature object
     *  It is provided here to use in testing if you wish
     * 
     * @return A String representing this Temperature object
     */
   public String toString()
   {
      return temp + " degrees " + scale;
   }
   
   
   /* Find highest
    * 
    *
    *  This method takes in an array of the fahrenheit equivalent 
	 *  temperatures (these are double values) and returns the highest 
	 *  of those values. 
	 *  If the array is null or empty, return Double.MAX_DOUBLE;
	 *
    *  @param temps The array of fahrenheit temperatures
    *  @return The highest fahrenheit value in the array. 
    */
   public static double search(double [] temps)
   {
      
      // MAKE ME 
      
      
   }
}