1) separate instances are used by different entities (submodels, species population) so changes in the behavior of one doesn't influence the behavior of another
2) simulations can be restarted from checkpoints containing the random state
When this has been done, TestDynamicModel.do_test_expression_dependency_dynamics() no longer needs to temporarily suspend rounding by DynamicSpeciesState.get_population() so that it doesn't use the RandomState it shares with submodels
RandomState should be managed so that:
1) separate instances are used by different entities (submodels, species population) so changes in the behavior of one doesn't influence the behavior of another 2) simulations can be restarted from checkpoints containing the random state
When this has been done, TestDynamicModel.do_test_expression_dependency_dynamics() no longer needs to temporarily suspend rounding by DynamicSpeciesState.get_population() so that it doesn't use the RandomState it shares with submodels