Running the Tests

We have a number of tests checking the equivariance of representations constructed in different ways (.T, *, +) for the groups that have been implemented (Z(n),S(n),D(k),SO(n), O(n),Sp(n),SO13(),O13(),SU(n)). We use pytest and some of the tests are automatically generated. Because there is a large amount of tests and it can take quite some time to run them all (about 15 minutes), you can run a subset using pytests built in features to filter by the matches on the name of the testcase using the -k argument.

For example to run test_prod with all the groups you can run pytest tests/equivariance_tests.py -k "test_prod"

To run the test case for a specific group could use the filter -k "test_prod and SO3" and to run all tests with that group you could run pytest tests/equivariance_tests.py -k "SO3"

Due to pytest parsing limitations, all parenthesis in the test names are stripped. To list all available tests, (or those that match certain -k arguments) use --co (for collect only).

The usual pytest command line arguments apply (like -v for verbose).

Similarly, you can find tests for “mixed” representations containing sub-representations from different groups in emlp/tests/product_groups_tests.py.