Source code for fleetmanager.model.qampo.cost_calculator

""" This file defines functions for calculating the CO2 emission and costs for a route plan."""
from .classes import BaseVehicle, Trip


[docs]def calculate_total_length_of_trips(trips: list[Trip]) -> float: """Calculates the length of all trips combined.""" return sum(trip.length_in_kilometers for trip in trips)
[docs]def calculate_variable_cost_of_trips(vehicle: BaseVehicle, trips: list[Trip]) -> float: """Calculates the cost of all trips combined.""" return vehicle.variable_cost_per_kilometer * calculate_total_length_of_trips(trips)
[docs]def calculate_co2_emission_gram_of_trips( vehicle: BaseVehicle, trips: list[Trip] ) -> float: """Calculates the CO2 emission (grams) of all trips combined.""" return vehicle.co2_emission_gram_per_kilometer * calculate_total_length_of_trips( trips )
[docs]def calculate_co2_emission_ton_of_trips( vehicle: BaseVehicle, trips: list[Trip] ) -> float: """Calculates the CO2 emission (tons) of all trips combined.""" return calculate_co2_emission_gram_of_trips(vehicle, trips) / 1000000.00
[docs]def calculate_co2_emission_cost_per_kilometer_for_vehicle( vehicle: BaseVehicle, emission_cost_per_ton_co2: float ) -> float: """Calculates the CO2 emission cost per kilometer for a given vehicle.""" return vehicle.co2_emission_gram_per_kilometer * emission_cost_per_ton_co2 / 1000000