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());
}
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;
}
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));
}
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()));
}
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());
}
Aggregations