From 4bdb23d26bc4fb9db4b3dcd45d5a3aa099c849b2 Mon Sep 17 00:00:00 2001 From: Nicolas Mounet Date: Wed, 4 Nov 2020 13:49:51 +0100 Subject: [PATCH] Few improvements on the tests for picewise constant functions --- cara/tests/test_known_quantities.py | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/cara/tests/test_known_quantities.py b/cara/tests/test_known_quantities.py index a2cefc06..498e3ace 100644 --- a/cara/tests/test_known_quantities.py +++ b/cara/tests/test_known_quantities.py @@ -151,32 +151,37 @@ def test_expiration_aerosols(): def test_piecewiseconstantfunction_wrongarguments(): + # number of values should be 1+number of transition times pytest.raises(ValueError,models.PiecewiseconstantFunction([0,1],[0,0])) - pytest.raises(ValueError,models.PiecewiseconstantFunction([0,2,2],[0,0])) pytest.raises(ValueError,models.PiecewiseconstantFunction([0],[0,0])) + # two transition times cannot be equal + pytest.raises(ValueError,models.PiecewiseconstantFunction([0,2,2],[0,0])) + # unsorted transition times are not allowed + pytest.raises(ValueError,models.PiecewiseconstantFunction([2,0],[0,0])) def test_piecewiseconstantfunction(): - transitions = [0,8,16,24] + transition_times = [0,8,16,24] values = [2,5,8] - fun = models.PiecewiseconstantFunction(transitions,values) + fun = models.PiecewiseconstantFunction(transitions_times,values) assert (fun.value(10) == 5) and (fun.value(20.5) == 8) and \ (fun.value(8) == 2) and (fun.value(0) == 2) and (fun.value(24) == 8) def test_constantfunction(): - transitions = [0,24] + transition_times = [0,24] values = [20] - fun = models.PiecewiseconstantFunction(transitions,values) + fun = models.PiecewiseconstantFunction(transition_times,values) for t in [0,1,8,10,16,20.1,24]: assert (fun.value(t) == 20) def test_piecewiseconstantfunction_vs_interval(): - transitions = [0,8,16,24] + transition_times = [0,8,16,24] values = [0,1,0] - fun = models.PiecewiseconstantFunction(transitions,values) + fun = models.PiecewiseconstantFunction(transition_times,values) interval = models.SpecificInterval(present_times=(8,16)) + assert interval.transition_times() == set(transition_times) for t in [0,1,8,10,16,20.1,24]: assert fun.interval().triggered(t) == interval().triggered(t)