43 lines
2.3 KiB
Python
43 lines
2.3 KiB
Python
import datetime
|
|
import copy
|
|
from batterymodel import BatteryModel
|
|
from batterymodel.models.battery import BatteryState
|
|
from batterymodel.models.market import MarketDataIncrement
|
|
|
|
|
|
def test_battery_stats():
|
|
assert BatteryModel(datetime.datetime.strptime('01-01-2022 00:00', '%d-%m-%Y %H:%M'))._max_charge_rate == 2000000 # Watts
|
|
assert BatteryModel(datetime.datetime.strptime('01-01-2022 00:00', '%d-%m-%Y %H:%M'))._max_discharge_rate == 2000000 # Watts
|
|
assert BatteryModel(datetime.datetime.strptime('01-01-2022 00:00', '%d-%m-%Y %H:%M'))._max_storage_volume == 4000000 # Wh
|
|
assert BatteryModel(datetime.datetime.strptime('01-01-2022 00:00', '%d-%m-%Y %H:%M'))._charging_efficiency == 0.05
|
|
assert BatteryModel(datetime.datetime.strptime('01-01-2022 00:00', '%d-%m-%Y %H:%M'))._discharging_efficiency == 0.05
|
|
assert BatteryModel(datetime.datetime.strptime('01-01-2022 00:00', '%d-%m-%Y %H:%M'))._lifetime_years == 10
|
|
assert BatteryModel(datetime.datetime.strptime('01-01-2022 00:00', '%d-%m-%Y %H:%M'))._lifetime_cycles == 50000
|
|
assert BatteryModel(datetime.datetime.strptime('01-01-2022 00:00', '%d-%m-%Y %H:%M'))._storage_volume_degradation_rate == 0.001 # %/cycle
|
|
assert BatteryModel(datetime.datetime.strptime('01-01-2022 00:00', '%d-%m-%Y %H:%M'))._fixed_operational_costs == 50000 # £/year
|
|
|
|
def test_battery_update():
|
|
battery = BatteryModel(datetime.datetime.strptime('01-01-2022 00:00', '%d-%m-%Y %H:%M'))
|
|
assert battery._battery_state == BatteryState.IDLE
|
|
|
|
|
|
def test_market_decision_idle():
|
|
battery = BatteryModel(datetime.datetime.strptime('01-01-2022 00:00', '%d-%m-%Y %H:%M'))
|
|
battery._current_charge=100000
|
|
time_increment = datetime.timedelta(minutes=30)
|
|
market_increment = MarketDataIncrement(
|
|
datetime.datetime.strptime('01-01-2022 00:00', '%d-%m-%Y %H:%M'),
|
|
[
|
|
(datetime.datetime.strptime('01-01-2022 00:00', '%d-%m-%Y %H:%M'),43.0),
|
|
(datetime.datetime.strptime('01-01-2022 00:00', '%d-%m-%Y %H:%M'),14.0)
|
|
]
|
|
)
|
|
|
|
market_increment_current = MarketDataIncrement(
|
|
datetime.datetime.strptime('01-01-2022 00:30', '%d-%m-%Y %H:%M'),
|
|
[
|
|
(datetime.datetime.strptime('01-01-2022 00:00', '%d-%m-%Y %H:%M'),43.0),
|
|
(datetime.datetime.strptime('01-01-2022 00:30', '%d-%m-%Y %H:%M'),13.0)
|
|
]
|
|
)
|