assertEquals(tripE1, trips.get(3));
assertEquals(tripB3, trips.get(4));
ServiceIdActivation serviceIds = index.getServiceIds();
assertEquals(1, serviceIds.getActiveServiceIds().size());
assertTrue(serviceIds.getActiveServiceIds().contains(lsid("s1")));
ServiceIntervalBlock intervalBlock = index.getServiceIntervalBlock();
assertTrue(Arrays.equals(new int[] {0, 20, 40, 50, 80},
intervalBlock.getMinArrivals()));
assertTrue(Arrays.equals(new int[] {10, 30, 50, 60, 80},
intervalBlock.getMinDepartures()));
assertTrue(Arrays.equals(new int[] {20, 50, 70, 80, 90},
intervalBlock.getMaxArrivals()));
assertTrue(Arrays.equals(new int[] {20, 50, 70, 80, 100},
intervalBlock.getMaxDepartures()));
indices = grep(allIndices, aid("a2"));
assertEquals(1, indices.size());
index = indices.get(0);
trips = trips(index.getTrips());
assertEquals(5, trips.size());
assertEquals(tripA2, trips.get(0));
assertEquals(tripB2, trips.get(1));
assertEquals(tripC2, trips.get(2));
assertEquals(tripF2, trips.get(3));
assertEquals(tripE2, trips.get(4));
serviceIds = index.getServiceIds();
assertEquals(1, serviceIds.getActiveServiceIds().size());
assertTrue(serviceIds.getActiveServiceIds().contains(lsid("s1")));
intervalBlock = index.getServiceIntervalBlock();
assertTrue(Arrays.equals(new int[] {30, 60, 70, 80, 90},
intervalBlock.getMinArrivals()));
assertTrue(Arrays.equals(new int[] {30, 60, 70, 80, 90},
intervalBlock.getMinDepartures()));
assertTrue(Arrays.equals(new int[] {40, 70, 80, 90, 100},
intervalBlock.getMaxArrivals()));
assertTrue(Arrays.equals(new int[] {40, 70, 80, 90, 100},
intervalBlock.getMaxDepartures()));
indices = grep(allIndices, aid("c1"));
assertEquals(1, indices.size());
index = indices.get(0);
trips = trips(index.getTrips());
assertEquals(3, trips.size());
assertEquals(tripC1, trips.get(0));
assertEquals(tripA3, trips.get(1));
assertEquals(tripC3, trips.get(2));
serviceIds = index.getServiceIds();
assertEquals(1, serviceIds.getActiveServiceIds().size());
assertTrue(serviceIds.getActiveServiceIds().contains(lsid("s1")));
intervalBlock = index.getServiceIntervalBlock();
assertTrue(Arrays.equals(new int[] {40, 50, 85},
intervalBlock.getMinArrivals()));
assertTrue(Arrays.equals(new int[] {50, 50, 85},
intervalBlock.getMinDepartures()));
assertTrue(Arrays.equals(new int[] {60, 60, 90},
intervalBlock.getMaxArrivals()));
assertTrue(Arrays.equals(new int[] {60, 70, 95},
intervalBlock.getMaxDepartures()));
indices = grep(allIndices, aid("d1"));
assertEquals(1, indices.size());
index = indices.get(0);
trips = trips(index.getTrips());
assertEquals(2, trips.size());
assertEquals(tripD1, trips.get(0));
assertEquals(tripD3, trips.get(1));
serviceIds = index.getServiceIds();
assertEquals(2, serviceIds.getActiveServiceIds().size());
assertTrue(serviceIds.getActiveServiceIds().contains(lsid("s1")));
assertTrue(serviceIds.getActiveServiceIds().contains(lsid("s2")));
intervalBlock = index.getServiceIntervalBlock();
assertTrue(Arrays.equals(new int[] {40, 100},
intervalBlock.getMinArrivals()));
assertTrue(Arrays.equals(new int[] {50, 100},
intervalBlock.getMinDepartures()));
assertTrue(Arrays.equals(new int[] {70, 110},
intervalBlock.getMaxArrivals()));
assertTrue(Arrays.equals(new int[] {70, 120},
intervalBlock.getMaxDepartures()));
indices = grep(allIndices, aid("d2"));
assertEquals(1, indices.size());
index = indices.get(0);
trips = trips(index.getTrips());
assertEquals(1, trips.size());
assertEquals(tripD2, trips.get(0));
serviceIds = index.getServiceIds();
assertEquals(2, serviceIds.getActiveServiceIds().size());
assertTrue(serviceIds.getActiveServiceIds().contains(lsid("s1")));
assertTrue(serviceIds.getActiveServiceIds().contains(lsid("s2")));
intervalBlock = index.getServiceIntervalBlock();
assertTrue(Arrays.equals(new int[] {80}, intervalBlock.getMinArrivals()));
assertTrue(Arrays.equals(new int[] {80}, intervalBlock.getMinDepartures()));
assertTrue(Arrays.equals(new int[] {90}, intervalBlock.getMaxArrivals()));
assertTrue(Arrays.equals(new int[] {90}, intervalBlock.getMaxDepartures()));
indices = grep(allIndices, aid("e3"));
assertEquals(1, indices.size());
index = indices.get(0);
trips = trips(index.getTrips());
assertEquals(2, trips.size());
assertEquals(tripF3, trips.get(0));
assertEquals(tripE3, trips.get(1));
serviceIds = index.getServiceIds();
assertEquals(1, serviceIds.getActiveServiceIds().size());
assertTrue(serviceIds.getActiveServiceIds().contains(lsid("s1")));
intervalBlock = index.getServiceIntervalBlock();
assertTrue(Arrays.equals(new int[] {100, 110},
intervalBlock.getMinArrivals()));
assertTrue(Arrays.equals(new int[] {100, 110},
intervalBlock.getMinDepartures()));
assertTrue(Arrays.equals(new int[] {100, 110},
intervalBlock.getMaxArrivals()));
assertTrue(Arrays.equals(new int[] {100, 110},
intervalBlock.getMaxDepartures()));
/****
* Test Layover Indices
****/