Skip to content

v3.1.0

Compare
Choose a tag to compare
@TysonRayJones TysonRayJones released this 29 Feb 00:12
· 195 commits to master since this release

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.