pyrates

PyRates.tests

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

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

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.

Backend Simulations Tests

Test suite for basic backend simulation functionalities.

tests.test_backend_simulations.nmrse(x: numpy.ndarray, y: numpy.ndarray) → Union[float, numpy.ndarray][source]

Calculates the normalized root mean squared error of two vectors of equal length. :param x,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 NumpyBackend.

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.

Frontend YAML Parser Tests

Pre-defined Models Tests

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

tests.test_implemented_models.nmrse(x: numpy.ndarray, y: numpy.ndarray) → Union[float, numpy.ndarray][source]

Calculates the normalized root mean squared error of two vectors of equal length. :param x,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.