import static org.junit.jupiter.api.Assertions.assertEquals;

import java.util.ArrayList;

import org.junit.jupiter.api.Test;

public class ThreeTest
{
    private static void addToList(double[] doubles, ArrayList<Double> list)
    {
        for(double d : doubles)
            list.add(d);
    }
    
    @Test
    public void testCleanData()
    {
        WeatherData wd = new WeatherData();
        double[] temps = new double[] {99.1, 142, 85, 85.1, 84.6, 94.3, 124.9, 98.0, 101, 102.5};
        addToList(temps, wd.temperatures);
        
        wd.cleanData(85.0, 120.0);
        
        ArrayList<Double> expectedResult = new ArrayList<Double>();
        temps = new double[] {99.1, 85, 85.1, 94.3, 98, 101, 102.5};
        addToList(temps, expectedResult);
        
        assertEquals(expectedResult, wd.temperatures);
    }
    
    @Test
    public void testLongestHeatWave()
    {
        WeatherData wd = new WeatherData();
        double[] temps = new double[] {100.5, 98.5, 102.0, 103.9, 87.5, 105.2, 90.3, 94.8, 109.1, 102.1, 107.4, 93.2};
        addToList(temps, wd.temperatures);
        
        assertEquals(3, wd.longestHeatWave(100.5));
        assertEquals(4, wd.longestHeatWave(95.2));
    }
    
    @Test
    public void testLongestHeatWaveAtEnd()
    {
        WeatherData wd = new WeatherData();
        double[] temps = new double[] {91, 95, 70, 75, 92, 93, 91};
        addToList(temps, wd.temperatures);
        
        assertEquals(3, wd.longestHeatWave(90));
    }
}
