예제 #1
0
    def test_remove_prefix_from_keys_does_not_modify_dict_in_args(self):

        dict = {"value": 5, "cold_value": 10}

        remove_prefix_from_keys("cold_", dict)

        self.assertEqual(dict, {"value": 5, "cold_value": 10})
예제 #2
0
    def calculate_hot_emissions(self, traffic_and_link_data_row, vehicle_dict, pollutants, **kwargs):

        kwargs_for_hot = drop_keys_starting_with("cold_", kwargs)
        kwargs_for_hot = remove_prefix_from_keys("hot_", kwargs_for_hot)

        hot_emissions = self.hot_strategy.calculate_emissions(
            traffic_and_link_data_row, vehicle_dict, pollutants, **kwargs_for_hot)

        return hot_emissions
예제 #3
0
    def test_remove_prefix_from_keys(self):
        # Test that when a naming conflict exists after the prefix "cold_" is stripped, the value
        # from the key that had the prefix is kept.

        dict = {"value": 5, "cold_value": 10}

        dict_after_processing = remove_prefix_from_keys("cold_", dict)

        self.assertEqual(dict_after_processing, {"value": 10})
예제 #4
0
    def calculate_cold_emissions(self, traffic_and_link_data_row, vehicle_dict, pollutants, **kwargs):

        kwargs_for_cold = drop_keys_starting_with("hot_", kwargs)
        kwargs_for_cold = remove_prefix_from_keys("cold_", kwargs_for_cold)

        cold_emissions = self.cold_strategy.calculate_emissions(
            traffic_and_link_data_row, vehicle_dict, pollutants, **kwargs_for_cold)

        cold_emissions = add_prefix_to_keys("cold", cold_emissions)

        return cold_emissions
예제 #5
0
    def calculate_emissions(self,
                            traffic_and_link_data_row: Dict[str, Any],
                            vehicle_dict: Dict[str, str],
                            pollutants: List[str],
                            **kwargs):

        self.initialize_if_necessary(**kwargs)

        if kwargs.get("only_hot") is True:
            kwargs = remove_prefix_from_keys("hot_", kwargs)
            return self.hot_strategy.calculate_emissions(
                traffic_and_link_data_row, vehicle_dict, pollutants, **kwargs)

        hot_emissions = self.calculate_hot_emissions(
            traffic_and_link_data_row, vehicle_dict, pollutants, **kwargs)
        cold_emissions = self.calculate_cold_emissions(
            traffic_and_link_data_row, vehicle_dict, pollutants, emissions_from_hot_strategy=hot_emissions, **kwargs)

        hot_emissions = add_prefix_to_keys("hot", hot_emissions)

        return {**hot_emissions, **cold_emissions}