package ch.epfl.isochrone.timetable;

import static org.junit.Assert.assertEquals;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import org.junit.Test;

public class TestTimeTableReader {
    // Le "test" suivant n'en est pas un à proprement parler, raison pour
    // laquelle il est ignoré (annotation @Ignore). Son seul but est de garantir
    // que les noms des classes et méthodes sont corrects.
    @Test
    public void readTimeTableIsOk() throws IOException {

        TimeTableReader ttr = new TimeTableReader("/time-table/");

        TimeTable tt = ttr.readTimeTable();

        Graph g = ttr.readGraphForServices(tt.stops(),
                tt.servicesForDate(new Date(1, 10, 2013)), 500, 1.25);
        
        Stop sto=null;
        Stop sto2=null;
        for (Stop s : tt.stops())
        {
            if (s.name().equals("EPFL"))
            {
                sto=s;
            }
            if (s.name().equals("Bassenges"))
            {
                sto2=s;
            }
        }
        
        FastestPathTree fpt = g.fastestPaths(sto, 0);
        
        List<Stop> pt = new ArrayList<Stop>();
        
        pt.add(sto);
        pt.add(sto2);
        
        assertEquals(fpt.pathTo(sto2), pt);
        
        fpt = g.fastestPaths(sto2, 0);
        
        pt = new ArrayList<Stop>();
        
        pt.add(sto2);
        pt.add(sto);
        
        assertEquals(fpt.pathTo(sto), pt);

    }
}
