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.
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.
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.
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.
See also
-
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.
See also
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.
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.