def testStopSectionTimeline(self): eaist.segment_current_trips(self.testUUID) eaiss.segment_current_sections(self.testUUID) tl = esdt.get_timeline(self.testUUID, self.day_start_ts, self.day_end_ts) for i, element in enumerate(tl): logging.debug("%s: %s" % (i, type(element))) curr_type = self.get_type(element) if curr_type == ecwt.Trip: curr_tl = esdtq.get_timeline_for_trip(self.testUUID, element.get_id()) logging.debug("Got timeline %s for trip %s" % (curr_tl, element.start_fmt_time)) prev_sub_type = None prev_element = None checked_count = 0 j = 0 for j, curr_element in enumerate(curr_tl): logging.debug("curr_element = %s" % curr_element) curr_sub_type = self.get_type(curr_element) if prev_sub_type is not None: checked_count = checked_count + 1 self.assertNotEqual(prev_sub_type, curr_sub_type) if prev_sub_type == ecws.Stop: self.assertEqual(prev_element.starting_section, curr_element.get_id()) else: self.assertEqual(prev_sub_type, ecwsc.Section) self.assertEqual(prev_element.end_stop, curr_element.get_id()) prev_sub_type = curr_sub_type prev_element = curr_element self.assertEqual(checked_count, j)
def testTripGeojson(self): eaist.segment_current_trips(self.testUUID) eaiss.segment_current_sections(self.testUUID) tl = esdtl.get_timeline(self.testUUID, 1440658800, 1440745200) tl.fill_start_end_places() created_trips = tl.trips self.assertEquals(len(created_trips), 8) trip_geojson = gjfc.trip_to_geojson(created_trips[0], tl) logging.debug("trip_geojson = %s" % gj.dumps(trip_geojson, indent=4))
def get_geojson_for_range(user_id, start_ts, end_ts): geojson_list = [] tl = esdtl.get_timeline(user_id, start_ts, end_ts) tl.fill_start_end_places() for trip in tl.trips: try: trip_geojson = trip_to_geojson(trip, tl) # If the trip has no sections, it will have exactly two points - one for the start place and # one for the stop place. If a trip has no sections, let us filter it out here because it is # annoying to the user. But in that case, we need to merge the places. # Let's make that a TODO after getting everything else to work. if len(trip_geojson.features) == 2: logging.info("Skipping zero section trip %s with distance %s (should be zero)" % (trip, trip_geojson.properties["distance"])) else: geojson_list.append(trip_geojson) except Exception, e: logging.exception("Found error %s while processing trip %s" % (e, trip)) raise e
def testPlaceTripTimeline(self): eaist.segment_current_trips(self.testUUID) tl = esdt.get_timeline(self.testUUID, self.day_start_ts, self.day_end_ts) prev_type = None prev_element = None checked_count = 0 for i, curr_element in enumerate(tl): # logging.debug("%s: %s" % (i, curr_element)) curr_type = self.get_type(curr_element) if prev_type is not None: checked_count = checked_count + 1 self.assertNotEqual(prev_type, curr_type) if prev_type == ecwp.Place: self.assertEqual(prev_element.starting_trip, curr_element.get_id()) else: self.assertEqual(prev_type, ecwt.Trip) self.assertEqual(prev_element.end_place, curr_element.get_id()) prev_type = curr_type prev_element = curr_element self.assertEqual(checked_count, i)
def get_geojson_for_dt(user_id, start_dt, end_dt): tl = esdtl.get_timeline(user_id, start_dt, end_dt) tl.fill_start_end_places() return get_geojson_for_timeline(user_id, tl)
def get_geojson_for_ts(user_id, start_ts, end_ts): tl = esdtl.get_timeline(user_id, start_ts, end_ts) tl.fill_start_end_places() return get_geojson_for_timeline(user_id, tl)
def testPlaceTripTimeline(self): eaist.segment_current_trips(self.testUUID) tl = esdt.get_timeline(self.testUUID, self.day_start_ts, self.day_end_ts) self.checkPlaceTripConsistency(tl)