コード例 #1
0
    def testUserInputForTripTwoInput(self):
        """
        Test the case in which the user has provided two inputs
        """
        MODE_CONFIRM_KEY = "manual/mode_confirm"

        ts = esta.TimeSeries.get_time_series(self.testUserId)

        new_trip = self.create_fake_trip()
        new_mc = ecul.Userlabel()
        new_mc["start_ts"] = new_trip.data.start_ts + 1
        new_mc["end_ts"] = new_trip.data.end_ts + 1
        new_mc["label"] = "car"
        ts.insert_data(self.testUserId, MODE_CONFIRM_KEY, new_mc)
        user_input = esdt.get_user_input_for_trip(esda.RAW_TRIP_KEY,
                                                  self.testUserId,
                                                  new_trip.get_id(),
                                                  MODE_CONFIRM_KEY)

        # WHen there is only one input, it is a car
        self.assertEqual(new_mc, user_input.data)
        self.assertEqual(user_input.data.label, "car")

        new_mc["label"] = "bike"
        ts.insert_data(self.testUserId, MODE_CONFIRM_KEY, new_mc)

        user_input = esdt.get_user_input_for_trip(esda.RAW_TRIP_KEY,
                                                  self.testUserId,
                                                  new_trip.get_id(),
                                                  MODE_CONFIRM_KEY)

        # When it is overridden, it is a bike
        self.assertEqual(new_mc, user_input.data)
        self.assertEqual(user_input.data.label, "bike")
コード例 #2
0
    def testUserInputForTripTwoInput(self):
        """
        Test the case in which the user has provided two inputs
        """
        MODE_CONFIRM_KEY = "manual/mode_confirm"

        ts = esta.TimeSeries.get_time_series(self.testUserId)

        new_trip = self.create_fake_trip()
        new_mc = ecul.Userlabel()
        new_mc["start_ts"] = new_trip.data.start_ts + 1
        new_mc["end_ts"] = new_trip.data.end_ts + 1
        new_mc["label"] = "car"
        ts.insert_data(self.testUserId, MODE_CONFIRM_KEY, new_mc) 
        user_input = esdt.get_user_input_for_trip(esda.RAW_TRIP_KEY, self.testUserId,
            new_trip.get_id(), MODE_CONFIRM_KEY)

        # WHen there is only one input, it is a car
        self.assertEqual(new_mc, user_input.data)
        self.assertEqual(user_input.data.label, "car")

        new_mc["label"] = "bike"
        ts.insert_data(self.testUserId, MODE_CONFIRM_KEY, new_mc) 
        
        user_input = esdt.get_user_input_for_trip(esda.RAW_TRIP_KEY, self.testUserId,
            new_trip.get_id(), MODE_CONFIRM_KEY)

        # When it is overridden, it is a bike
        self.assertEqual(new_mc, user_input.data)
        self.assertEqual(user_input.data.label, "bike")
コード例 #3
0
    def testUserInputRealData(self):
        np.random.seed(61297777)
        dataFile = "emission/tests/data/real_examples/shankari_single_positional_indexer.dec-12"
        etc.setupRealExample(self, dataFile)
        self.testUserId = self.testUUID
        # At this point, we have only raw data, no trips
        etc.runIntakePipeline(self.testUUID)
        # At this point, we have trips

        # Let's retrieve them
        ts = esta.TimeSeries.get_time_series(self.testUUID)
        ct_df = ts.get_data_df("analysis/cleaned_trip", time_query=None)
        self.assertEqual(len(ct_df), 4)

        # Now, let's load the mode_confirm and purpose_confirm objects
        mode_confirm_list = json.load(open(
            "emission/tests/data/real_examples/shankari_single_positional_indexer.dec-12.mode_confirm"
        ),
                                      object_hook=bju.object_hook)
        self.assertEqual(len(mode_confirm_list), 5)

        purpose_confirm_list = json.load(open(
            "emission/tests/data/real_examples/shankari_single_positional_indexer.dec-12.purpose_confirm"
        ),
                                         object_hook=bju.object_hook)
        self.assertEqual(len(purpose_confirm_list), 7)

        for mc in mode_confirm_list:
            mc["user_id"] = self.testUUID
            ts.insert(mc)

        for pc in purpose_confirm_list:
            pc["user_id"] = self.testUUID
            ts.insert(pc)

        mc_label_list = []
        pc_label_list = []
        for trip_id in ct_df._id:
            mc = esdt.get_user_input_for_trip(esda.CLEANED_TRIP_KEY,
                                              self.testUserId, ct_df._id[0],
                                              "manual/mode_confirm")
            mc_label_list.append(mc.data.label)

            pc = esdt.get_user_input_for_trip(esda.CLEANED_TRIP_KEY,
                                              self.testUserId, ct_df._id[0],
                                              "manual/purpose_confirm")
            pc_label_list.append(pc.data.label)

        self.assertEqual(mc_label_list, 4 * ['bike'])
        self.assertEqual(pc_label_list, 4 * ['pick_drop'])
コード例 #4
0
 def testUserInputForTripNoInputs(self):
     """
     Test the case in which the user has not provided any inputs
     """
     new_trip = self.create_fake_trip()
     user_input = esdt.get_user_input_for_trip(esda.RAW_TRIP_KEY, self.testUserId, new_trip.get_id(), "manual/mode_confirm")
     self.assertIsNone(user_input)
コード例 #5
0
    def testUserInputRealData(self):
        np.random.seed(61297777)
        dataFile = "emission/tests/data/real_examples/shankari_single_positional_indexer.dec-12"
        etc.setupRealExample(self, dataFile)
        self.testUserId = self.testUUID
        # At this point, we have only raw data, no trips
        etc.runIntakePipeline(self.testUUID)
        # At this point, we have trips

        # Let's retrieve them
        ts = esta.TimeSeries.get_time_series(self.testUUID)
        ct_df = ts.get_data_df("analysis/cleaned_trip", time_query=None)
        self.assertEqual(len(ct_df), 4)

        # Now, let's load the mode_confirm and purpose_confirm objects
        mode_confirm_list = json.load(open("emission/tests/data/real_examples/shankari_single_positional_indexer.dec-12.mode_confirm"),
            object_hook=bju.object_hook)
        self.assertEqual(len(mode_confirm_list), 5)

        purpose_confirm_list = json.load(open("emission/tests/data/real_examples/shankari_single_positional_indexer.dec-12.purpose_confirm"),
            object_hook=bju.object_hook)
        self.assertEqual(len(purpose_confirm_list), 7)

        for mc in mode_confirm_list:
            mc["user_id"] = self.testUUID
            ts.insert(mc)

        for pc in purpose_confirm_list:
            pc["user_id"] = self.testUUID
            ts.insert(pc)

        mc_label_list = []
        pc_label_list = []
        for trip_id in ct_df._id:
            mc = esdt.get_user_input_for_trip(esda.CLEANED_TRIP_KEY,
                        self.testUserId, ct_df._id[0], "manual/mode_confirm")
            mc_label_list.append(mc.data.label)

            pc = esdt.get_user_input_for_trip(esda.CLEANED_TRIP_KEY,
                        self.testUserId, ct_df._id[0], "manual/purpose_confirm")
            pc_label_list.append(pc.data.label)

        self.assertEqual(mc_label_list, 4 * ['bike'])
        self.assertEqual(pc_label_list, 4 * ['pick_drop'])
コード例 #6
0
 def testUserInputForTripNoInputs(self):
     """
     Test the case in which the user has not provided any inputs
     """
     new_trip = self.create_fake_trip()
     user_input = esdt.get_user_input_for_trip(esda.RAW_TRIP_KEY,
                                               self.testUserId,
                                               new_trip.get_id(),
                                               "manual/mode_confirm")
     self.assertIsNone(user_input)
コード例 #7
0
    def testUserInputForTripOneInput(self):
        """
        Test the case in which the user has provided exactly one input
        """
        MODE_CONFIRM_KEY = "manual/mode_confirm"

        new_trip = self.create_fake_trip()
        new_mc = ecul.Userlabel()
        new_mc["start_ts"] = new_trip.data.start_ts + 1
        new_mc["end_ts"] = new_trip.data.end_ts + 1
        ts = esta.TimeSeries.get_time_series(self.testUserId)
        ts.insert_data(self.testUserId, MODE_CONFIRM_KEY, new_mc) 
        
        user_input = esdt.get_user_input_for_trip(esda.RAW_TRIP_KEY, self.testUserId,
            new_trip.get_id(), MODE_CONFIRM_KEY)

        self.assertEqual(new_mc, user_input.data)
コード例 #8
0
    def testUserInputForTripOneInput(self):
        """
        Test the case in which the user has provided exactly one input
        """
        MODE_CONFIRM_KEY = "manual/mode_confirm"

        new_trip = self.create_fake_trip()
        new_mc = ecul.Userlabel()
        new_mc["start_ts"] = new_trip.data.start_ts + 1
        new_mc["end_ts"] = new_trip.data.end_ts + 1
        ts = esta.TimeSeries.get_time_series(self.testUserId)
        ts.insert_data(self.testUserId, MODE_CONFIRM_KEY, new_mc)

        user_input = esdt.get_user_input_for_trip(esda.RAW_TRIP_KEY,
                                                  self.testUserId,
                                                  new_trip.get_id(),
                                                  MODE_CONFIRM_KEY)

        self.assertEqual(new_mc, user_input.data)