myokit 1.33.9__py3-none-any.whl → 1.35.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- myokit/__init__.py +9 -36
- myokit/__main__.py +76 -142
- myokit/_aux.py +62 -16
- myokit/_bin/example.mmt +1 -2
- myokit/_bin/install-win/menu.json +7 -7
- myokit/_config.py +22 -31
- myokit/_datablock.py +30 -74
- myokit/_datalog.py +49 -72
- myokit/_err.py +25 -24
- myokit/_expressions.py +50 -68
- myokit/_io.py +15 -27
- myokit/_model_api.py +453 -249
- myokit/_myokit_version.py +1 -5
- myokit/_parsing.py +38 -44
- myokit/_progress.py +5 -8
- myokit/_protocol.py +99 -9
- myokit/_sim/__init__.py +7 -24
- myokit/_sim/cable.c +6 -8
- myokit/_sim/cable.py +6 -8
- myokit/_sim/cmodel.h +125 -70
- myokit/_sim/cmodel.py +12 -14
- myokit/_sim/compiler.py +1 -4
- myokit/_sim/cvodessim.c +196 -118
- myokit/_sim/cvodessim.py +130 -103
- myokit/_sim/differential.hpp +4 -4
- myokit/_sim/fiber_tissue.c +4 -8
- myokit/_sim/fiber_tissue.py +11 -13
- myokit/_sim/jacobian.cpp +2 -2
- myokit/_sim/jacobian.py +11 -8
- myokit/_sim/mcl.h +53 -55
- myokit/_sim/opencl.py +21 -27
- myokit/_sim/openclsim.c +3 -7
- myokit/_sim/openclsim.cl +3 -3
- myokit/_sim/openclsim.py +49 -40
- myokit/_sim/pacing.h +36 -16
- myokit/_sim/rhs.c +6 -13
- myokit/_sim/rhs.py +5 -14
- myokit/_sim/sundials.py +1 -4
- myokit/_system.py +10 -16
- myokit/_unit.py +4 -13
- myokit/float.py +0 -3
- myokit/formats/__init__.py +8 -10
- myokit/formats/ansic/__init__.py +0 -3
- myokit/formats/ansic/_ewriter.py +2 -4
- myokit/formats/ansic/_exporter.py +1 -4
- myokit/formats/ansic/template/cable.c +4 -4
- myokit/formats/ansic/template/euler.c +5 -5
- myokit/formats/ansic/template/sim.c +6 -6
- myokit/formats/axon/__init__.py +1 -3
- myokit/formats/axon/_abf.py +12 -17
- myokit/formats/axon/_atf.py +5 -6
- myokit/formats/axon/_importer.py +0 -3
- myokit/formats/cellml/__init__.py +0 -3
- myokit/formats/cellml/_ewriter.py +3 -6
- myokit/formats/cellml/_exporter.py +3 -6
- myokit/formats/cellml/_importer.py +1 -4
- myokit/formats/cellml/v1/__init__.py +0 -4
- myokit/formats/cellml/v1/_api.py +8 -11
- myokit/formats/cellml/v1/_parser.py +2 -5
- myokit/formats/cellml/v1/_writer.py +2 -11
- myokit/formats/cellml/v2/__init__.py +0 -3
- myokit/formats/cellml/v2/_api.py +8 -17
- myokit/formats/cellml/v2/_parser.py +2 -5
- myokit/formats/cellml/v2/_writer.py +1 -4
- myokit/formats/channelml/__init__.py +0 -3
- myokit/formats/channelml/_importer.py +11 -21
- myokit/formats/cpp/__init__.py +1 -3
- myokit/formats/cpp/_ewriter.py +0 -3
- myokit/formats/cuda/__init__.py +0 -3
- myokit/formats/cuda/_ewriter.py +2 -4
- myokit/formats/cuda/_exporter.py +0 -3
- myokit/formats/cuda/template/kernel.cu +8 -5
- myokit/formats/easyml/__init__.py +0 -3
- myokit/formats/easyml/_ewriter.py +9 -11
- myokit/formats/easyml/_exporter.py +2 -5
- myokit/formats/html/__init__.py +0 -3
- myokit/formats/html/_exporter.py +0 -3
- myokit/formats/html/_flatten.py +5 -21
- myokit/formats/latex/__init__.py +0 -3
- myokit/formats/latex/_ewriter.py +1 -4
- myokit/formats/latex/_exporter.py +4 -6
- myokit/formats/mathml/__init__.py +0 -3
- myokit/formats/mathml/_ewriter.py +2 -11
- myokit/formats/mathml/_parser.py +4 -6
- myokit/formats/matlab/__init__.py +0 -3
- myokit/formats/matlab/_ewriter.py +1 -4
- myokit/formats/matlab/_exporter.py +2 -5
- myokit/formats/matlab/template/main.m +3 -2
- myokit/formats/opencl/__init__.py +0 -3
- myokit/formats/opencl/_ewriter.py +2 -4
- myokit/formats/opencl/_exporter.py +2 -5
- myokit/formats/opencl/template/cable.c +10 -10
- myokit/formats/opencl/template/kernel.cl +1 -1
- myokit/formats/opencl/template/minilog.py +1 -1
- myokit/formats/python/__init__.py +0 -3
- myokit/formats/python/_ewriter.py +2 -5
- myokit/formats/python/_exporter.py +0 -3
- myokit/formats/python/template/sim.py +14 -14
- myokit/formats/sbml/__init__.py +0 -3
- myokit/formats/sbml/_api.py +50 -44
- myokit/formats/sbml/_importer.py +1 -4
- myokit/formats/sbml/_parser.py +2 -5
- myokit/formats/stan/__init__.py +0 -3
- myokit/formats/stan/_ewriter.py +2 -4
- myokit/formats/stan/_exporter.py +2 -5
- myokit/formats/stan/template/cell.stan +3 -3
- myokit/formats/sympy/__init__.py +0 -3
- myokit/formats/sympy/_ereader.py +1 -4
- myokit/formats/sympy/_ewriter.py +2 -5
- myokit/formats/wcp/__init__.py +0 -3
- myokit/formats/wcp/_wcp.py +2 -8
- myokit/formats/xml/__init__.py +0 -3
- myokit/formats/xml/_exporter.py +0 -3
- myokit/formats/xml/_split.py +0 -3
- myokit/gui/__init__.py +80 -246
- myokit/gui/datablock_viewer.py +103 -86
- myokit/gui/datalog_viewer.py +214 -66
- myokit/gui/explorer.py +15 -21
- myokit/gui/ide.py +171 -144
- myokit/gui/progress.py +9 -9
- myokit/gui/source.py +406 -375
- myokit/gui/vargrapher.py +2 -12
- myokit/lib/deps.py +12 -13
- myokit/lib/guess.py +3 -4
- myokit/lib/hh.py +20 -18
- myokit/lib/markov.py +21 -20
- myokit/lib/multi.py +1 -3
- myokit/lib/plots.py +20 -9
- myokit/pacing.py +0 -3
- myokit/pype.py +7 -18
- myokit/tests/__init__.py +3 -6
- myokit/tests/ansic_event_based_pacing.py +1 -4
- myokit/tests/ansic_fixed_form_pacing.py +3 -6
- myokit/tests/data/beeler-1977-model-compare-b.mmt +2 -2
- myokit/tests/data/clancy-1999-fitting.mmt +1 -0
- myokit/tests/test_aux.py +13 -28
- myokit/tests/test_cellml_v1_api.py +4 -19
- myokit/tests/test_cellml_v1_parser.py +0 -15
- myokit/tests/test_cellml_v1_writer.py +0 -9
- myokit/tests/test_cellml_v2_api.py +4 -19
- myokit/tests/test_cellml_v2_parser.py +0 -15
- myokit/tests/test_cellml_v2_writer.py +0 -9
- myokit/tests/test_cmodel.py +16 -22
- myokit/tests/test_compiler_detection.py +1 -11
- myokit/tests/test_component.py +108 -56
- myokit/tests/test_config.py +34 -67
- myokit/tests/test_datablock.py +1 -9
- myokit/tests/test_datalog.py +19 -24
- myokit/tests/test_dependency_checking.py +8 -23
- myokit/tests/test_expressions.py +0 -9
- myokit/tests/test_float.py +1 -5
- myokit/tests/test_formats.py +0 -9
- myokit/tests/test_formats_axon.py +1 -9
- myokit/tests/test_formats_cellml.py +0 -15
- myokit/tests/test_formats_channelml.py +0 -15
- myokit/tests/test_formats_easyml.py +0 -14
- myokit/tests/test_formats_exporters.py +1 -16
- myokit/tests/test_formats_expression_writers.py +1 -17
- myokit/tests/test_formats_html.py +0 -3
- myokit/tests/test_formats_importers.py +1 -16
- myokit/tests/test_formats_mathml_content.py +0 -9
- myokit/tests/test_formats_mathml_presentation.py +0 -9
- myokit/tests/test_formats_opencl.py +0 -10
- myokit/tests/test_formats_sbml.py +0 -15
- myokit/tests/test_formats_sympy.py +0 -9
- myokit/tests/test_formats_wcp.py +1 -3
- myokit/tests/test_io.py +27 -27
- myokit/tests/test_jacobian_calculator.py +6 -14
- myokit/tests/test_jacobian_tracer.py +0 -9
- myokit/tests/test_lib_deps.py +0 -9
- myokit/tests/test_lib_guess.py +0 -9
- myokit/tests/test_lib_hh.py +18 -12
- myokit/tests/test_lib_markov.py +21 -13
- myokit/tests/test_lib_multi.py +0 -9
- myokit/tests/test_lib_plots.py +13 -8
- myokit/tests/test_meta.py +0 -3
- myokit/tests/test_model.py +390 -96
- myokit/tests/test_model_building.py +44 -96
- myokit/tests/test_opencl_info.py +5 -14
- myokit/tests/test_pacing_factory.py +0 -3
- myokit/tests/test_pacing_system_c.py +1 -23
- myokit/tests/test_pacing_system_py.py +0 -9
- myokit/tests/test_parsing.py +139 -56
- myokit/tests/test_progress_reporters.py +0 -3
- myokit/tests/test_protocol.py +0 -9
- myokit/tests/test_protocol_floating_point.py +1 -10
- myokit/tests/test_protocol_time_series.py +82 -0
- myokit/tests/test_pype.py +0 -9
- myokit/tests/test_quantity.py +0 -9
- myokit/tests/test_rhs_benchmarker.py +1 -9
- myokit/tests/test_sbml_api.py +27 -42
- myokit/tests/test_sbml_parser.py +4 -19
- myokit/tests/test_simulation_1d.py +45 -25
- myokit/tests/test_simulation_cvodes.py +321 -55
- myokit/tests/test_simulation_cvodes_from_disk.py +0 -3
- myokit/tests/test_simulation_fiber_tissue.py +39 -12
- myokit/tests/test_simulation_log_interval.py +1 -431
- myokit/tests/test_simulation_opencl.py +69 -48
- myokit/tests/test_simulation_opencl_log_interval.py +1 -3
- myokit/tests/test_simulation_opencl_vs_cvode.py +1 -10
- myokit/tests/test_simulation_opencl_vs_sim1d.py +1 -10
- myokit/tests/test_system_info.py +1 -11
- myokit/tests/test_tools.py +0 -9
- myokit/tests/test_unit.py +1 -10
- myokit/tests/test_user_functions.py +0 -10
- myokit/tests/test_variable.py +231 -27
- myokit/tools.py +5 -21
- myokit/units.py +5 -3
- {myokit-1.33.9.dist-info → myokit-1.35.0.dist-info}/METADATA +12 -15
- myokit-1.35.0.dist-info/RECORD +391 -0
- {myokit-1.33.9.dist-info → myokit-1.35.0.dist-info}/WHEEL +1 -1
- {myokit-1.33.9.dist-info → myokit-1.35.0.dist-info}/entry_points.txt +0 -1
- myokit/_exec_new.py +0 -15
- myokit/_exec_old.py +0 -15
- myokit/_sim/cvodesim.c +0 -1551
- myokit/_sim/cvodesim.py +0 -674
- myokit/_sim/icsim.cpp +0 -563
- myokit/_sim/icsim.py +0 -363
- myokit/_sim/psim.cpp +0 -656
- myokit/_sim/psim.py +0 -493
- myokit/lib/common.py +0 -1094
- myokit/tests/test_lib_common.py +0 -130
- myokit/tests/test_simulation_cvode.py +0 -612
- myokit/tests/test_simulation_ic.py +0 -108
- myokit/tests/test_simulation_p.py +0 -223
- myokit-1.33.9.dist-info/RECORD +0 -403
- /myokit/formats/opencl/template/{test → test.sh} +0 -0
- {myokit-1.33.9.dist-info → myokit-1.35.0.dist-info}/LICENSE.txt +0 -0
- {myokit-1.33.9.dist-info → myokit-1.35.0.dist-info}/top_level.txt +0 -0
myokit/tests/test_lib_guess.py
CHANGED
|
@@ -5,20 +5,11 @@
|
|
|
5
5
|
# This file is part of Myokit.
|
|
6
6
|
# See http://myokit.org for copyright, sharing, and licensing details.
|
|
7
7
|
#
|
|
8
|
-
from __future__ import absolute_import, division
|
|
9
|
-
from __future__ import print_function, unicode_literals
|
|
10
|
-
|
|
11
8
|
import unittest
|
|
12
9
|
|
|
13
10
|
import myokit
|
|
14
11
|
import myokit.lib.guess as guess
|
|
15
12
|
|
|
16
|
-
# Unit testing in Python 2 and 3
|
|
17
|
-
try:
|
|
18
|
-
unittest.TestCase.assertRaisesRegex
|
|
19
|
-
except AttributeError:
|
|
20
|
-
unittest.TestCase.assertRaisesRegex = unittest.TestCase.assertRaisesRegexp
|
|
21
|
-
|
|
22
13
|
|
|
23
14
|
class LibGuessTest(unittest.TestCase):
|
|
24
15
|
"""
|
myokit/tests/test_lib_hh.py
CHANGED
|
@@ -5,11 +5,9 @@
|
|
|
5
5
|
# This file is part of Myokit.
|
|
6
6
|
# See http://myokit.org for copyright, sharing, and licensing details.
|
|
7
7
|
#
|
|
8
|
-
from __future__ import absolute_import, division
|
|
9
|
-
from __future__ import print_function, unicode_literals
|
|
10
|
-
|
|
11
8
|
import os
|
|
12
9
|
import unittest
|
|
10
|
+
|
|
13
11
|
import numpy as np
|
|
14
12
|
|
|
15
13
|
import myokit
|
|
@@ -17,12 +15,6 @@ import myokit.lib.hh as hh
|
|
|
17
15
|
|
|
18
16
|
from myokit.tests import DIR_DATA
|
|
19
17
|
|
|
20
|
-
# Unit testing in Python 2 and 3
|
|
21
|
-
try:
|
|
22
|
-
unittest.TestCase.assertRaisesRegex
|
|
23
|
-
except AttributeError:
|
|
24
|
-
unittest.TestCase.assertRaisesRegex = unittest.TestCase.assertRaisesRegexp
|
|
25
|
-
|
|
26
18
|
|
|
27
19
|
MODEL = """
|
|
28
20
|
[[model]]
|
|
@@ -365,13 +357,13 @@ class HHDetectionTest(unittest.TestCase):
|
|
|
365
357
|
a = m2.get('ikr.a')
|
|
366
358
|
rl = hh.get_rl_expression(a, myokit.Name(dt))
|
|
367
359
|
a1 = rl.eval()
|
|
368
|
-
a2 = a.
|
|
360
|
+
a2 = a.initial_value(True) + dt.eval() * a.rhs().eval()
|
|
369
361
|
self.assertAlmostEqual(a1, a2)
|
|
370
362
|
# And for r
|
|
371
363
|
r = m2.get('ikr.r')
|
|
372
364
|
rl = hh.get_rl_expression(r, myokit.Name(dt))
|
|
373
365
|
r1 = rl.eval()
|
|
374
|
-
r2 = r.
|
|
366
|
+
r2 = r.initial_value(True) + dt.eval() * r.rhs().eval()
|
|
375
367
|
self.assertAlmostEqual(r1, r2)
|
|
376
368
|
|
|
377
369
|
# Dt must be an expression
|
|
@@ -608,7 +600,7 @@ class HHModelTest(unittest.TestCase):
|
|
|
608
600
|
# Test if derivatives are zero
|
|
609
601
|
for k, x in enumerate(['ina.m', 'ina.h', 'ina.j']):
|
|
610
602
|
x = model.get(x)
|
|
611
|
-
x.
|
|
603
|
+
x.set_initial_value(ss[k])
|
|
612
604
|
self.assertAlmostEqual(x.eval(), 0)
|
|
613
605
|
|
|
614
606
|
# Test arguments
|
|
@@ -645,6 +637,20 @@ class HHModelTest(unittest.TestCase):
|
|
|
645
637
|
|
|
646
638
|
self.assertEqual(len(m.states()), 3)
|
|
647
639
|
|
|
640
|
+
def test_initial_value_conversion(self):
|
|
641
|
+
# Tests that initial value expressions are converted to floats
|
|
642
|
+
|
|
643
|
+
model = myokit.parse_model(MODEL)
|
|
644
|
+
model.get('ikr.a').set_initial_value('1 / sqrt(7)')
|
|
645
|
+
model.get('ikr.r').set_initial_value('log(binding.koff, 10)')
|
|
646
|
+
m = hh.HHModel.from_component(model.get('ikr'))
|
|
647
|
+
x0 = m.default_state()
|
|
648
|
+
self.assertEqual(len(x0), 2)
|
|
649
|
+
self.assertIsInstance(x0[0], float)
|
|
650
|
+
self.assertIsInstance(x0[1], float)
|
|
651
|
+
self.assertAlmostEqual(x0[0], 0.377964473)
|
|
652
|
+
self.assertAlmostEqual(x0[1], -5)
|
|
653
|
+
|
|
648
654
|
|
|
649
655
|
class AnalyticalSimulationTest(unittest.TestCase):
|
|
650
656
|
"""
|
myokit/tests/test_lib_markov.py
CHANGED
|
@@ -5,11 +5,9 @@
|
|
|
5
5
|
# This file is part of Myokit.
|
|
6
6
|
# See http://myokit.org for copyright, sharing, and licensing details.
|
|
7
7
|
#
|
|
8
|
-
from __future__ import absolute_import, division
|
|
9
|
-
from __future__ import print_function, unicode_literals
|
|
10
|
-
|
|
11
8
|
import os
|
|
12
9
|
import unittest
|
|
10
|
+
|
|
13
11
|
import numpy as np
|
|
14
12
|
|
|
15
13
|
import myokit
|
|
@@ -17,12 +15,6 @@ import myokit.lib.markov as markov
|
|
|
17
15
|
|
|
18
16
|
from myokit.tests import DIR_DATA, WarningCollector
|
|
19
17
|
|
|
20
|
-
# Unit testing in Python 2 and 3
|
|
21
|
-
try:
|
|
22
|
-
unittest.TestCase.assertRaisesRegex
|
|
23
|
-
except AttributeError:
|
|
24
|
-
unittest.TestCase.assertRaisesRegex = unittest.TestCase.assertRaisesRegexp
|
|
25
|
-
|
|
26
18
|
|
|
27
19
|
class LinearModelTest(unittest.TestCase):
|
|
28
20
|
"""
|
|
@@ -155,8 +147,8 @@ class LinearModelTest(unittest.TestCase):
|
|
|
155
147
|
|
|
156
148
|
# States must sum to 1
|
|
157
149
|
m2 = model.clone()
|
|
158
|
-
m2.get(states[0]).
|
|
159
|
-
m2.get(states[1]).
|
|
150
|
+
m2.get(states[0]).set_initial_value(0.6)
|
|
151
|
+
m2.get(states[1]).set_initial_value(0.6)
|
|
160
152
|
self.assertRaisesRegex(
|
|
161
153
|
markov.LinearModelError, 'sum of states',
|
|
162
154
|
markov.LinearModel, m2, states, parameters, current)
|
|
@@ -283,7 +275,7 @@ class LinearModelTest(unittest.TestCase):
|
|
|
283
275
|
|
|
284
276
|
# Check that derivatives with ss are close to zero
|
|
285
277
|
ss = list(ss)
|
|
286
|
-
model.
|
|
278
|
+
model.set_initial_values(ss + ss) # Model has 2 ina's
|
|
287
279
|
derivs = model.evaluate_derivatives()
|
|
288
280
|
for i in range(len(ss)):
|
|
289
281
|
self.assertAlmostEqual(0, derivs[i])
|
|
@@ -310,7 +302,7 @@ class LinearModelTest(unittest.TestCase):
|
|
|
310
302
|
self.assertTrue(np.all(ss <= 1))
|
|
311
303
|
|
|
312
304
|
# Check that derivatives with ss are close to zero
|
|
313
|
-
model.
|
|
305
|
+
model.set_initial_values(ss)
|
|
314
306
|
derivs = model.evaluate_derivatives()
|
|
315
307
|
for i in range(len(ss)):
|
|
316
308
|
self.assertAlmostEqual(0, derivs[i])
|
|
@@ -331,6 +323,22 @@ class LinearModelTest(unittest.TestCase):
|
|
|
331
323
|
ValueError, 'Illegal parameter vector size',
|
|
332
324
|
m.rates, parameters=[0.01] * 22)
|
|
333
325
|
|
|
326
|
+
def test_initial_value_conversion(self):
|
|
327
|
+
# Tests that initial value expressions are converted to floats
|
|
328
|
+
|
|
329
|
+
fname = os.path.join(DIR_DATA, 'clancy-1999-fitting.mmt')
|
|
330
|
+
model = myokit.load_model(fname)
|
|
331
|
+
model.get('ina.C3').set_initial_value('1 / sqrt(7)')
|
|
332
|
+
model.get('ina.C2').set_initial_value('-1 / log(ina_ref.p)')
|
|
333
|
+
model.get('ina.C1').set_initial_value(0.5134619065149598)
|
|
334
|
+
m = markov.LinearModel.from_component(model.get('ina'))
|
|
335
|
+
x0 = m.default_state()
|
|
336
|
+
self.assertEqual(len(x0), 6)
|
|
337
|
+
self.assertIsInstance(x0[0], float)
|
|
338
|
+
self.assertIsInstance(x0[1], float)
|
|
339
|
+
self.assertAlmostEqual(x0[0], 0.3779644730092272)
|
|
340
|
+
self.assertAlmostEqual(x0[1], 0.10857362047581297)
|
|
341
|
+
|
|
334
342
|
|
|
335
343
|
class AnalyticalSimulationTest(unittest.TestCase):
|
|
336
344
|
"""
|
myokit/tests/test_lib_multi.py
CHANGED
|
@@ -5,9 +5,6 @@
|
|
|
5
5
|
# This file is part of Myokit.
|
|
6
6
|
# See http://myokit.org for copyright, sharing, and licensing details.
|
|
7
7
|
#
|
|
8
|
-
from __future__ import absolute_import, division
|
|
9
|
-
from __future__ import print_function, unicode_literals
|
|
10
|
-
|
|
11
8
|
import os
|
|
12
9
|
import unittest
|
|
13
10
|
|
|
@@ -15,12 +12,6 @@ import myokit
|
|
|
15
12
|
|
|
16
13
|
from myokit.tests import DIR_DATA, WarningCollector
|
|
17
14
|
|
|
18
|
-
# Unit testing in Python 2 and 3
|
|
19
|
-
try:
|
|
20
|
-
unittest.TestCase.assertRaisesRegex
|
|
21
|
-
except AttributeError:
|
|
22
|
-
unittest.TestCase.assertRaisesRegex = unittest.TestCase.assertRaisesRegexp
|
|
23
|
-
|
|
24
15
|
# Path to multi-model testing files
|
|
25
16
|
DIR_MULTI = os.path.join(DIR_DATA, 'multi')
|
|
26
17
|
|
myokit/tests/test_lib_plots.py
CHANGED
|
@@ -6,16 +6,13 @@
|
|
|
6
6
|
# This file is part of Myokit.
|
|
7
7
|
# See http://myokit.org for copyright, sharing, and licensing details.
|
|
8
8
|
#
|
|
9
|
-
from __future__ import absolute_import, division
|
|
10
|
-
from __future__ import print_function, unicode_literals
|
|
11
|
-
|
|
12
9
|
import os
|
|
13
10
|
import unittest
|
|
14
11
|
|
|
15
12
|
import myokit
|
|
16
13
|
import myokit.lib.plots as plots
|
|
17
14
|
|
|
18
|
-
from myokit.tests import DIR_DATA
|
|
15
|
+
from myokit.tests import DIR_DATA, WarningCollector
|
|
19
16
|
|
|
20
17
|
|
|
21
18
|
class LibPlotTest(unittest.TestCase):
|
|
@@ -176,20 +173,28 @@ class LibPlotTest(unittest.TestCase):
|
|
|
176
173
|
plt.close(fig)
|
|
177
174
|
plt.show()
|
|
178
175
|
|
|
179
|
-
#
|
|
176
|
+
# Normalize currents
|
|
180
177
|
fig = plt.figure()
|
|
181
|
-
plots.cumulative_current(d, currents,
|
|
178
|
+
plots.cumulative_current(d, currents, normalize=True)
|
|
182
179
|
plt.legend()
|
|
183
180
|
plt.close(fig)
|
|
184
181
|
plt.show()
|
|
185
182
|
|
|
186
|
-
#
|
|
183
|
+
# Normalize currents and set maximum number of currents shown
|
|
187
184
|
fig = plt.figure()
|
|
188
|
-
plots.cumulative_current(d, currents,
|
|
185
|
+
plots.cumulative_current(d, currents, normalize=True, max_currents=3)
|
|
189
186
|
plt.legend()
|
|
190
187
|
plt.close(fig)
|
|
191
188
|
plt.show()
|
|
192
189
|
|
|
190
|
+
with WarningCollector() as w:
|
|
191
|
+
fig = plt.figure()
|
|
192
|
+
plots.cumulative_current(d, currents, normalise=True)
|
|
193
|
+
plt.legend()
|
|
194
|
+
plt.close(fig)
|
|
195
|
+
plt.show()
|
|
196
|
+
self.assertIn('deprecated', w.text())
|
|
197
|
+
|
|
193
198
|
|
|
194
199
|
if __name__ == '__main__':
|
|
195
200
|
unittest.main()
|
myokit/tests/test_meta.py
CHANGED