Skip to content

Commit

Permalink
Fix use of SympyExprStr
Browse files Browse the repository at this point in the history
  • Loading branch information
bgyori committed Jul 10, 2023
1 parent 631ecc6 commit 81cad49
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 7 deletions.
12 changes: 8 additions & 4 deletions mira/metamodel/ops.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,8 @@

from .template_model import TemplateModel, Initial, Parameter
from .templates import *
from .units import Unit, dimensionless_units
from .units import Unit
from .utils import SympyExprStr


__all__ = [
Expand Down Expand Up @@ -438,7 +439,8 @@ def counts_to_dimensionless(tm: TemplateModel,
# If the exponent is other than zero then normalization is needed
if exponent:
concept.units.expression = \
concept.units.expression.args[0] / (counts_unit_symbol ** exponent)
SympyExprStr(concept.units.expression.args[0] /
(counts_unit_symbol ** exponent))
# We not try to see if there is a corresponding initial condition
# for the concept and if so, we normalize it as well
if concept.name in tm.initials and concept.name not in initials_normalized:
Expand All @@ -447,7 +449,8 @@ def counts_to_dimensionless(tm: TemplateModel,
init.value /= (norm_factor ** exponent)
if init.concept.units:
init.concept.units.expression = \
init.concept.units.expression.args[0] / (counts_unit_symbol ** exponent)
SympyExprStr(init.concept.units.expression.args[0] /
(counts_unit_symbol ** exponent))
initials_normalized.add(concept.name)
# Now we do the same for parameters
for p_name, p in tm.parameters.items():
Expand All @@ -456,7 +459,8 @@ def counts_to_dimensionless(tm: TemplateModel,
p.units.expression.args[0].as_coeff_exponent(counts_unit_symbol)
if exponent:
p.units.expression = \
p.units.expression.args[0] / (counts_unit_symbol ** exponent)
SympyExprStr(p.units.expression.args[0] /
(counts_unit_symbol ** exponent))
p.value /= (norm_factor ** exponent)

return tm
6 changes: 3 additions & 3 deletions tests/test_ops.py
Original file line number Diff line number Diff line change
Expand Up @@ -343,14 +343,14 @@ def test_counts_to_dimensionless():
tm = counts_to_dimensionless(tm, 'person', 1e5)
for template in tm.templates:
for concept in template.get_concepts():
assert concept.units.expression.equals(1), concept.units
assert concept.units.expression.args[0].equals(1), concept.units

assert tm.parameters['beta'].units.expression.equals(1/sympy.Symbol('day'))
assert tm.parameters['beta'].units.expression.args[0].equals(1/sympy.Symbol('day'))
assert tm.parameters['beta'].value == old_beta*1e5

assert tm.initials['susceptible_population'].value == (1e5-1)/1e5
assert tm.initials['infected_population'].value == 1/1e5
assert tm.initials['immune_population'].value == 0

for initial in tm.initials.values():
assert initial.concept.units.expression.equals(1)
assert initial.concept.units.expression.args[0].equals(1)

0 comments on commit 81cad49

Please sign in to comment.