v3.1.0
Overview
This release introduces rigorous unit testing of the QuEST API, sets-up continuous-intergration, improves validation, and gives the documentation a face-lift. We thank Fergus Cooper for setting up QuEST's CI.
Unit tests
tests/
now contains a suite of hardware-agnostic unit tests which rigorously check every inch of the QuEST API. We compare the optimised calculations that QuEST performs, against slow, unoptimised but provably correct calculation. We check every possible, meaningfully distinct input to every QuEST function (for example, all possible arrangements of control and target qubits) gives the correct behaviour.
With these tests, we have almost absolute assurance that the QuEST API does what it says on the tin.
These tests can be run with
mkdir build && cd build
cmake .. -DTESTING=ON
make
make test
Read more about the new tests in this PR, and view the tests in the doc.
Validation
QuEST will now report if it is being initialised incorrectly. For example, trying to distribute QuEST over a non-power-of-2 number of nodes will fail gracefully, with an error message. It will also report if it cannot fit an attemptedly-created Qureg
in memory, if for example it is too large, or too small to distribute.
Doc
Finally, the documentation has been restyled.