3. PyRates.tests

Documentation of all test functions that are included in PyRates. YAML-based model definitions are loaded from model_templates.test_resources.

3.1. Notes on Testing

Static type checking

MyPy is used to statically check types. To test, if everything works out, run:

MYPYPATH=./stubs/ mypy –strict-optional –ignore-missing-imports core

If you get no output, all type checks are successful. Some issues are ignored using the comment tag

# type: ignore

These issues may be too complicated for mypy to recognise them properly - or too complicated to fix immediately, but might need fixing, nevertheless.

Running tests with py.test

We use py.test for testing.

Make sure you have pytest installed.

Usage:

  • from within PyCharm
    • select py.test as default testing framework

    • right-click on tests and select “run py.test in tests”

  • from the console
    • navigate to the PyRates base directory

    • run pytest tests

3.2. Backend Parser Tests

Test suite for basic parser module functionality.

tests.test_backend_parser.setup_module()[source]
tests.test_backend_parser.test_1_1_expression_parser_init()[source]

Testing initializations of different expression parsers:

See also

ExpressionParser

Detailed documentation of expression parser attributes and methods.

NPExpressionParser

Documentation of the numpy-based expression parser

tests.test_backend_parser.test_1_2_expression_parser_parsing_exceptions()[source]

Testing error handling of different erroneous parser instantiations:

See also

ExpressionParser

Detailed documentation of expression parser attributes and methods.

LambdaExpressionParser

Documentation of a non-symbolic expression parser.

tests.test_backend_parser.test_1_3_expression_parser_math_ops()[source]

Testing handling of mathematical operations by expression parsers:

See also

ExpressionParser

Detailed documentation of expression parser attributes and methods.

LambdaExpressionParser

Documentation of a non-symbolic expression parser.

tests.test_backend_parser.test_1_4_expression_parser_funcs()[source]

Testing handling of function calls by expression parsers:

See also

ExpressionParser

Detailed documentation of expression parser attributes and methods.

LambdaExpressionParser

Documentation of a non-symbolic expression parser.

tests.test_backend_parser.test_1_5_expression_parser_indexing()[source]

Testing handling of indexing operations by expression parsers:

See also

ExpressionParser

Detailed documentation of expression parser attributes and methods.

LambdaExpressionParser

Documentation of a non-symbolic expression parser.

tests.test_backend_parser.test_1_7_equation_parsing()[source]

Tests equation parsing functionalities.

See also

parse_equation()

Detailed documentation of parse_equation arguments.

3.3. Backend Simulations Tests

Test suite for basic backend simulation functionalities.

tests.test_backend_simulations.nmrse(x: ndarray, y: ndarray) float | ndarray[source]

Calculates the normalized root mean squared error of two vectors of equal length. :param x: Arrays to calculate the nmrse between. :param y: Arrays to calculate the nmrse between.

Returns:

Normalized root mean squared error.

Return type:

float

tests.test_backend_simulations.setup_module()[source]
tests.test_backend_simulations.test_2_1_operator()[source]

Testing operator functionality of compute graph class:

See also

:method:`add_operator`

Detailed documentation of method for adding operations to instance of ComputeGraph.

tests.test_backend_simulations.test_2_2_node()[source]

Testing node functionality of compute graph class.

See also

:method:`add_node`

Detailed documentation of method for adding nodes to instance of ComputeGraph.

tests.test_backend_simulations.test_2_3_edge()[source]

Testing edge functionality of compute graph class.

See also

:method:`add_edge`

Detailed documentation of add_edge method of `ComputeGraph`class.

tests.test_backend_simulations.test_2_4_solver()[source]

Testing different numerical solvers of pyrates.

See also

:method:`_solve`

Detailed documentation of how to numerical integration is performed by the NumpyBackend.

:method:`run`

Detailed documentation of the method that needs to be called to solve differential equations in the

None

tests.test_backend_simulations.test_2_5_inputs_outputs()[source]

Tests the input-output interface of the run method in circuits of different hierarchical depth.

tests.test_backend_simulations.test_2_6_vectorization()[source]

Tests whether a Jansen-Rit-based circuit with and without vectorization of mathematical operations yields identical results.

tests.test_backend_simulations.test_2_7_backends()[source]

Tests the whether different backends produce comparable results when simulating the dynamics of different models.

3.4. Frontend YAML Parser Tests

3.5. Pre-defined Models Tests

Test suite for accurate behavior of models provided under pyrates.model_templates

tests.test_implemented_models.nmrse(x: ndarray, y: ndarray) float | ndarray[source]

Calculates the normalized root mean squared error of two vectors of equal length. :param x: Arrays to calculate the nmrse between. :param y: Arrays to calculate the nmrse between.

Returns:

Normalized root mean squared error.

Return type:

float

tests.test_implemented_models.setup_module()[source]
tests.test_implemented_models.test_3_1_jansenrit()[source]

Testing accuracy of Jansen-Rit model implementations:

tests.test_implemented_models.test_3_2_qif_theta()[source]

Testing accuracy of mean-field representation of QIF population and theta neuron model.

tests.test_implemented_models.test_3_3_wilson_cowan()[source]

Test accuracy of wilson cowan neural mass model implementation.

tests.test_implemented_models.test_3_4_kuramoto()[source]

Tests accurate behavior of kuramoto oscillator model.