def checkNonMatchingTrust(segment, gps_report): closest = { 'match': None, 'time_error': datetime.timedelta(days=1), 'dist_error': 1000000 } for match in segment.matching: if (match['trust'] is not None) and (match['gps'] is None): time_error = abs( match['trust']['event_time'] - gps_report['event_time']) dist_error = geo_distance.calculateDistance( match['trust']['tiploc'], gps_report['tiploc'] ) if dist_error < globals.tolerance['distance']\ and time_error < globals.tolerance['time']: if dist_error < closest['dist_error'] and\ time_error < closest['time_error']: closest['match'] = match closest['dist_error'] = dist_error closest['time_error'] = time_error if closest['match'] is not None: closest['match']['gps'] = gps_report closest['match']['dist_error'] = dist_error if segment.gps_car_id is None: segment.gps_car_id = gps_report['gps_car_id'] segment.isPlanned = db_queries.isPlanned(segment.gps_car_id, segment.headcode) socket_io.emitSegment('update', segment) return True return False
def filterByGeniusAllocations(segments, trust): potential_segments = [] for segment in segments: if segment.gps_car_id is not None: if segment.isPlanned or db_queries.isPlanned(segment.gps_car_id, trust['headcode']): potential_segments.append(segment) if len(potential_segments) > 0: return potential_segments return segments
def getBestStop(segments1, trust, with_seq): segments = filter(lambda x: x['segment'].gps_car_id is not None, segments1) segments.sort(key=lambda x: isBetterSegment(x), reverse=True) for segment1 in segments: segment = segment1['segment'] segment.matching.sort(key=lambda x: getTimeForMatching(x), reverse=True) matching = segment.matching[0: globals.backmatches] best = getBestStopHelper(matching, trust, True) if best is not None: best['match']['trust'] = trust best['match']['dist_error'] = best['dist_error'] if segment.headcode is None: segment.headcode = trust['headcode'] segment.cif_uid = db_queries.cif_uidFromHeadcode(trust['headcode']) segment.isPlanned = db_queries.isPlanned(segment.gps_car_id, trust['headcode']) segment.origin_location = trust['origin_location'] segment.origin_departure = trust['origin_departure'] socket_io.emitSegment('update', segment) return True return False
def test_isPlanned2(self): result = db_queries.isPlanned('BN30', '5A04') self.assertEqual(result, False)
def test_isPlanned1(self): result = db_queries.isPlanned('82215', '5D02') self.assertEqual(result, True)