Search in sources :

Example 16 with ServiceCalendarDate

use of org.onebusaway.gtfs.model.ServiceCalendarDate in project onebusaway-gtfs-modules by OneBusAway.

the class GtfsDaoImplTest method testBart.

@Test
public void testBart() throws IOException {
    GtfsDaoImpl dao = new GtfsDaoImpl();
    GtfsTestData.readGtfs(dao, GtfsTestData.getBartGtfs(), "BART");
    Collection<Agency> agencies = dao.getAllAgencies();
    assertEquals(2, agencies.size());
    Agency agency = dao.getAgencyForId("BART");
    assertEquals("BART", agency.getId());
    Collection<ServiceCalendarDate> calendarDates = dao.getAllCalendarDates();
    assertEquals(32, calendarDates.size());
    ServiceCalendarDate calendarDate = dao.getCalendarDateForId(1);
    assertEquals(new AgencyAndId("BART", "SUN"), calendarDate.getServiceId());
    assertEquals(new ServiceDate(2009, 1, 1), calendarDate.getDate());
    assertEquals(1, calendarDate.getExceptionType());
    Collection<ServiceCalendar> calendars = dao.getAllCalendars();
    assertEquals(5, calendars.size());
    ServiceCalendar calendar = dao.getCalendarForId(1);
    assertEquals(new AgencyAndId("BART", "WKDY"), calendar.getServiceId());
    assertEquals(new ServiceDate(2007, 1, 1), calendar.getStartDate());
    assertEquals(new ServiceDate(2010, 12, 31), calendar.getEndDate());
    assertEquals(1, calendar.getMonday());
    assertEquals(1, calendar.getTuesday());
    assertEquals(1, calendar.getWednesday());
    assertEquals(1, calendar.getThursday());
    assertEquals(1, calendar.getFriday());
    assertEquals(0, calendar.getSaturday());
    assertEquals(0, calendar.getSunday());
    Collection<FareAttribute> fareAttributes = dao.getAllFareAttributes();
    assertEquals(106, fareAttributes.size());
    FareAttribute fareAttribute = dao.getFareAttributeForId(new AgencyAndId("BART", "30"));
    assertEquals(new AgencyAndId("BART", "30"), fareAttribute.getId());
    Collection<FareRule> fareRules = dao.getAllFareRules();
    assertEquals(1849, fareRules.size());
    FareRule fareRule = dao.getFareRuleForId(1);
    assertEquals(new AgencyAndId("BART", "98"), fareRule.getFare().getId());
    Collection<Frequency> frequencies = dao.getAllFrequencies();
    assertEquals(6, frequencies.size());
    Frequency frequency = dao.getFrequencyForId(1);
    assertEquals(new AgencyAndId("AirBART", "M-FSAT1DN"), frequency.getTrip().getId());
    Collection<Route> routes = dao.getAllRoutes();
    assertEquals(11, routes.size());
    Route route = dao.getRouteForId(new AgencyAndId("BART", "01"));
    assertEquals(new AgencyAndId("BART", "01"), route.getId());
    Collection<ShapePoint> shapePoints = dao.getAllShapePoints();
    assertEquals(105, shapePoints.size());
    ShapePoint shapePoint = dao.getShapePointForId(1);
    assertEquals(new AgencyAndId("BART", "airbart-dn.csv"), shapePoint.getShapeId());
    Collection<Stop> stops = dao.getAllStops();
    assertEquals(46, stops.size());
    Stop stop = dao.getStopForId(new AgencyAndId("BART", "DBRK"));
    assertEquals("Downtown Berkeley BART", stop.getName());
    Collection<StopTime> stopTimes = dao.getAllStopTimes();
    assertEquals(33270, stopTimes.size());
    StopTime stopTime = stopTimes.iterator().next();
    assertEquals(18000, stopTime.getArrivalTime());
    Collection<Transfer> transfers = dao.getAllTransfers();
    assertEquals(4, transfers.size());
    Transfer transfer = dao.getTransferForId(1);
    assertEquals(1, transfer.getTransferType());
    Collection<Trip> trips = dao.getAllTrips();
    assertEquals(1620, trips.size());
    Trip trip = dao.getTripForId(new AgencyAndId("BART", "15PB1"));
    assertEquals(new AgencyAndId("BART", "WKDY"), trip.getServiceId());
}
Also used : FareAttribute(org.onebusaway.gtfs.model.FareAttribute) AgencyAndId(org.onebusaway.gtfs.model.AgencyAndId) Stop(org.onebusaway.gtfs.model.Stop) ServiceDate(org.onebusaway.gtfs.model.calendar.ServiceDate) ShapePoint(org.onebusaway.gtfs.model.ShapePoint) Route(org.onebusaway.gtfs.model.Route) StopTime(org.onebusaway.gtfs.model.StopTime) ServiceCalendarDate(org.onebusaway.gtfs.model.ServiceCalendarDate) Trip(org.onebusaway.gtfs.model.Trip) Agency(org.onebusaway.gtfs.model.Agency) FareRule(org.onebusaway.gtfs.model.FareRule) Transfer(org.onebusaway.gtfs.model.Transfer) Frequency(org.onebusaway.gtfs.model.Frequency) ServiceCalendar(org.onebusaway.gtfs.model.ServiceCalendar) Test(org.junit.Test)

Example 17 with ServiceCalendarDate

use of org.onebusaway.gtfs.model.ServiceCalendarDate in project onebusaway-gtfs-modules by OneBusAway.

the class CalendarServiceDataFactoryImplSyntheticTest method calendarDate.

private ServiceCalendarDate calendarDate(AgencyAndId serviceId, ServiceDate date, int exceptionType) {
    ServiceCalendarDate calendarDate = new ServiceCalendarDate();
    calendarDate.setServiceId(serviceId);
    calendarDate.setDate(date);
    calendarDate.setExceptionType(exceptionType);
    return calendarDate;
}
Also used : ServiceCalendarDate(org.onebusaway.gtfs.model.ServiceCalendarDate)

Example 18 with ServiceCalendarDate

use of org.onebusaway.gtfs.model.ServiceCalendarDate in project onebusaway-gtfs-modules by OneBusAway.

the class CalendarServiceDataFactoryImplSyntheticTest method test.

@Test
public void test() {
    CalendarServiceDataFactoryImpl factory = new CalendarServiceDataFactoryImpl();
    Agency agencyA = agency("A", "America/Los_Angeles");
    Agency agencyB = agency("B", "America/Denver");
    AgencyAndId serviceIdA1 = new AgencyAndId("A", "1");
    AgencyAndId serviceIdA2 = new AgencyAndId("A", "2");
    AgencyAndId serviceIdB1 = new AgencyAndId("B", "1");
    ServiceDate dStart = new ServiceDate(2010, 2, 10);
    ServiceDate dEnd = new ServiceDate(2010, 2, 24);
    ServiceCalendar c1 = calendar(serviceIdA1, dStart, dEnd, "1111100");
    ServiceCalendar c2 = calendar(serviceIdA2, dStart, dEnd, "1111111");
    ServiceCalendar c3 = calendar(serviceIdB1, dStart, dEnd, "0000011");
    ServiceCalendarDate cd1 = calendarDate(serviceIdA2, new ServiceDate(2010, 2, 15), ServiceCalendarDate.EXCEPTION_TYPE_REMOVE);
    ServiceCalendarDate cd2 = calendarDate(serviceIdA2, new ServiceDate(2010, 2, 26), ServiceCalendarDate.EXCEPTION_TYPE_ADD);
    Trip t1 = trip("A", "1", serviceIdA1);
    Trip t2 = trip("A", "2", serviceIdA1);
    Trip t3 = trip("A", "3", serviceIdA2);
    Trip t4 = trip("B", "4", serviceIdA2);
    Trip t5 = trip("B", "5", serviceIdB1);
    Trip t6 = trip("B", "6", serviceIdB1);
    GtfsRelationalDaoImpl dao = new GtfsRelationalDaoImpl();
    factory.setGtfsDao(dao);
    saveEntities(dao, agencyA, agencyB);
    saveEntities(dao, c1, c2, c3);
    saveEntities(dao, cd1, cd2);
    saveEntities(dao, t1, t2, t3, t4, t5, t6);
    CalendarServiceData data = factory.createData();
    TimeZone tzA = TimeZone.getTimeZone("America/Los_Angeles");
    TimeZone tzB = TimeZone.getTimeZone("America/Denver");
    assertEquals(tzA, data.getTimeZoneForAgencyId("A"));
    assertEquals(tzB, data.getTimeZoneForAgencyId("B"));
    assertNull(data.getTimeZoneForAgencyId("DNE"));
    Set<AgencyAndId> serviceIds = data.getServiceIds();
    assertEquals(3, serviceIds.size());
    assertTrue(serviceIds.contains(serviceIdA1));
    assertTrue(serviceIds.contains(serviceIdA2));
    assertTrue(serviceIds.contains(serviceIdB1));
    // M-F only for this service id
    List<ServiceDate> serviceDates = data.getServiceDatesForServiceId(serviceIdA1);
    assertEquals(11, serviceDates.size());
    assertEquals(dStart, serviceDates.get(0));
    assertEquals(new ServiceDate(2010, 2, 16), serviceDates.get(4));
    assertEquals(dEnd, serviceDates.get(10));
    // 7-days a week, with some calendar modifications for this service id
    serviceDates = data.getServiceDatesForServiceId(serviceIdA2);
    assertEquals(15, serviceDates.size());
    assertEquals(dStart, serviceDates.get(0));
    assertEquals(new ServiceDate(2010, 2, 14), serviceDates.get(4));
    // 2010-02-15 should be excluded
    assertEquals(new ServiceDate(2010, 2, 16), serviceDates.get(5));
    // 2010-02-26 should be added
    assertEquals(new ServiceDate(2010, 2, 26), serviceDates.get(14));
    // Just weekends for this service id
    serviceDates = data.getServiceDatesForServiceId(serviceIdB1);
    assertEquals(4, serviceDates.size());
    assertEquals(new ServiceDate(2010, 2, 13), serviceDates.get(0));
    assertEquals(new ServiceDate(2010, 2, 14), serviceDates.get(1));
    assertEquals(new ServiceDate(2010, 2, 20), serviceDates.get(2));
    assertEquals(new ServiceDate(2010, 2, 21), serviceDates.get(3));
    // Service id does not exist
    serviceDates = data.getServiceDatesForServiceId(new AgencyAndId("DNE", "DNE"));
    assertNull(serviceDates);
    // Service ids for dates
    Set<AgencyAndId> serviceIdsForDate = data.getServiceIdsForDate(new ServiceDate(2010, 2, 10));
    assertEquals(2, serviceIdsForDate.size());
    assertTrue(serviceIdsForDate.contains(serviceIdA1));
    assertTrue(serviceIdsForDate.contains(serviceIdA2));
    serviceIdsForDate = data.getServiceIdsForDate(new ServiceDate(2010, 2, 13));
    assertEquals(2, serviceIdsForDate.size());
    assertTrue(serviceIdsForDate.contains(serviceIdA2));
    assertTrue(serviceIdsForDate.contains(serviceIdB1));
    serviceIdsForDate = data.getServiceIdsForDate(new ServiceDate(2010, 2, 2));
    assertEquals(0, serviceIdsForDate.size());
    // Localized service dates
    List<Date> dates = data.getDatesForLocalizedServiceId(new LocalizedServiceId(serviceIdA1, tzA));
    assertEquals(11, dates.size());
    assertEquals(DateSupport.date("2010-02-10 00:00 Pacific Standard Time"), dates.get(0));
    assertEquals(DateSupport.date("2010-02-24 00:00 Pacific Standard Time"), dates.get(10));
    dates = data.getDatesForLocalizedServiceId(new LocalizedServiceId(serviceIdA1, tzB));
    assertNull(dates);
    dates = data.getDatesForLocalizedServiceId(new LocalizedServiceId(serviceIdA2, tzA));
    assertEquals(15, dates.size());
    assertEquals(DateSupport.date("2010-02-10 00:00 Pacific Standard Time"), dates.get(0));
    assertEquals(DateSupport.date("2010-02-26 00:00 Pacific Standard Time"), dates.get(14));
    dates = data.getDatesForLocalizedServiceId(new LocalizedServiceId(serviceIdA2, tzB));
    assertEquals(15, dates.size());
    assertEquals(DateSupport.date("2010-02-10 00:00 Mountain Standard Time"), dates.get(0));
    assertEquals(DateSupport.date("2010-02-26 00:00 Mountain Standard Time"), dates.get(14));
    dates = data.getDatesForLocalizedServiceId(new LocalizedServiceId(serviceIdB1, tzA));
    assertNull(dates);
    dates = data.getDatesForLocalizedServiceId(new LocalizedServiceId(serviceIdB1, tzB));
    assertEquals(4, dates.size());
    assertEquals(DateSupport.date("2010-02-13 00:00 Mountain Standard Time"), dates.get(0));
    assertEquals(DateSupport.date("2010-02-21 00:00 Mountain Standard Time"), dates.get(3));
}
Also used : ServiceCalendarDate(org.onebusaway.gtfs.model.ServiceCalendarDate) Trip(org.onebusaway.gtfs.model.Trip) Agency(org.onebusaway.gtfs.model.Agency) AgencyAndId(org.onebusaway.gtfs.model.AgencyAndId) ServiceDate(org.onebusaway.gtfs.model.calendar.ServiceDate) Date(java.util.Date) ServiceCalendarDate(org.onebusaway.gtfs.model.ServiceCalendarDate) CalendarServiceData(org.onebusaway.gtfs.model.calendar.CalendarServiceData) ServiceDate(org.onebusaway.gtfs.model.calendar.ServiceDate) TimeZone(java.util.TimeZone) LocalizedServiceId(org.onebusaway.gtfs.model.calendar.LocalizedServiceId) GtfsRelationalDaoImpl(org.onebusaway.gtfs.impl.GtfsRelationalDaoImpl) ServiceCalendar(org.onebusaway.gtfs.model.ServiceCalendar) Test(org.junit.Test)

Example 19 with ServiceCalendarDate

use of org.onebusaway.gtfs.model.ServiceCalendarDate in project onebusaway-gtfs-modules by OneBusAway.

the class CalendarServiceDataFactoryImplSyntheticTest method testDaylightSavingTimeCalendarDatesOnly.

@Test
public void testDaylightSavingTimeCalendarDatesOnly() throws IOException {
    CalendarServiceDataFactoryImpl factory = new CalendarServiceDataFactoryImpl();
    Agency agencyA = agency("A", "America/Los_Angeles");
    AgencyAndId serviceId = new AgencyAndId("A", "2");
    ServiceCalendarDate cd1 = calendarDate(serviceId, new ServiceDate(2012, 3, 10), ServiceCalendarDate.EXCEPTION_TYPE_ADD);
    ServiceCalendarDate cd2 = calendarDate(serviceId, new ServiceDate(2012, 3, 11), ServiceCalendarDate.EXCEPTION_TYPE_ADD);
    ServiceCalendarDate cd3 = calendarDate(serviceId, new ServiceDate(2012, 3, 12), ServiceCalendarDate.EXCEPTION_TYPE_ADD);
    GtfsRelationalDaoImpl dao = new GtfsRelationalDaoImpl();
    factory.setGtfsDao(dao);
    saveEntities(dao, agencyA);
    saveEntities(dao, cd1, cd2, cd3);
    CalendarServiceData data = factory.createData();
    List<ServiceDate> serviceDates = data.getServiceDatesForServiceId(serviceId);
    assertEquals(serviceDates, Arrays.asList(cd1.getDate(), cd2.getDate(), cd3.getDate()));
}
Also used : ServiceCalendarDate(org.onebusaway.gtfs.model.ServiceCalendarDate) CalendarServiceData(org.onebusaway.gtfs.model.calendar.CalendarServiceData) ServiceDate(org.onebusaway.gtfs.model.calendar.ServiceDate) Agency(org.onebusaway.gtfs.model.Agency) AgencyAndId(org.onebusaway.gtfs.model.AgencyAndId) GtfsRelationalDaoImpl(org.onebusaway.gtfs.impl.GtfsRelationalDaoImpl) Test(org.junit.Test)

Example 20 with ServiceCalendarDate

use of org.onebusaway.gtfs.model.ServiceCalendarDate in project onebusaway-gtfs-modules by OneBusAway.

the class CalendarSimplicationStrategyTest method testEmptyServiceDate.

@Test
public void testEmptyServiceDate() {
    _gtfs.putAgencies(1);
    _gtfs.putStops(1);
    _gtfs.putRoutes(1);
    _gtfs.putTrips(1, "r0", "sid0");
    _gtfs.putStopTimes("t0", "s0");
    GtfsRelationalDao dao = transform();
    AgencyAndId serviceId = new AgencyAndId("a0", "sid0");
    ServiceCalendar c = dao.getCalendarForServiceId(serviceId);
    assertNull(c);
    List<ServiceCalendarDate> serviceDates = dao.getCalendarDatesForServiceId(serviceId);
    assertEquals(0, serviceDates.size());
}
Also used : ServiceCalendarDate(org.onebusaway.gtfs.model.ServiceCalendarDate) GtfsRelationalDao(org.onebusaway.gtfs.services.GtfsRelationalDao) AgencyAndId(org.onebusaway.gtfs.model.AgencyAndId) ServiceCalendar(org.onebusaway.gtfs.model.ServiceCalendar) Test(org.junit.Test)

Aggregations

ServiceCalendarDate (org.onebusaway.gtfs.model.ServiceCalendarDate)23 ServiceCalendar (org.onebusaway.gtfs.model.ServiceCalendar)18 AgencyAndId (org.onebusaway.gtfs.model.AgencyAndId)15 ServiceDate (org.onebusaway.gtfs.model.calendar.ServiceDate)15 Test (org.junit.Test)13 Trip (org.onebusaway.gtfs.model.Trip)10 Agency (org.onebusaway.gtfs.model.Agency)8 Route (org.onebusaway.gtfs.model.Route)5 ShapePoint (org.onebusaway.gtfs.model.ShapePoint)5 Stop (org.onebusaway.gtfs.model.Stop)5 GtfsRelationalDao (org.onebusaway.gtfs.services.GtfsRelationalDao)5 FareAttribute (org.onebusaway.gtfs.model.FareAttribute)4 StopTime (org.onebusaway.gtfs.model.StopTime)4 Calendar (java.util.Calendar)3 GtfsRelationalDaoImpl (org.onebusaway.gtfs.impl.GtfsRelationalDaoImpl)3 FareRule (org.onebusaway.gtfs.model.FareRule)3 Frequency (org.onebusaway.gtfs.model.Frequency)3 CalendarService (org.onebusaway.gtfs.services.calendar.CalendarService)3 ArrayList (java.util.ArrayList)2 Date (java.util.Date)2