Tests

Tests are an inherent requirement of any serious software development project. STREAM is especially dependent on tests (specifically analytic and unit tests) since nuclear reactor thermohydraulic experiments are difficult and scarce, and many existing commercial software projects (e.g. RELAP) are notoriously user-variable and themselves cannot fully simulate core behaviors.

For this reason, the entire test suite is included in the documentation, except for doctests, which are part of the documentation and included therein.

Running the Test Suite

We use Pytest and Hypothesis to run our tests. To run all tests, in the tests directory simply run:

pytest

To avoid running tests marked slow, one can run:

pytest -k 'not slow'

Controlling the Number of Generated Examples

Hypothesis generates examples to run against many of our tests. As a matter of convenience, two profile are defined, controlling the number of examples: fast and thorough. Run them using:

pytest --hypothesis-profile=thorough

which can be mixed and matched with other pytest options.