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})
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
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})
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
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}