import pytest from evrouting.charge.utils import LabelPriorityQueue from evrouting.charge.T import Label @pytest.fixture def q(label, ch_function): _, _, cf = ch_function dummy_cf = {label.last_cs: cf} q = LabelPriorityQueue(dummy_cf) q.insert(label) # create min label = Label( t_trip=8, soc_last_cs=2, soc_profile_cs_v=label.soc_profile_cs_v, last_cs=1 ) dummy_cf[label.last_cs] = cf q.insert(label) yield q del q class TestProrityQueue: def test_empty(self, q: LabelPriorityQueue): q.delete_min() q.delete_min() with pytest.raises(KeyError): q.delete_min() def test_peak(self, q: LabelPriorityQueue): assert q.peak_min().t_trip == 8 def test_insert_same(self, q: LabelPriorityQueue, ch_function): """Should be no problem.""" _, _, cf = ch_function label = q.peak_min() q.remove_item(label) q.insert(label)