#include "catch.hpp" #include "QuEST.h" #include "utilities.hpp" /* allows concise use of Contains in catch's REQUIRE_THROWS_WITH */ using Catch::Matchers::Contains; /** @sa applyPauliSum * @ingroup unittest * @author Tyson Jones */ TEST_CASE( "applyPauliSum", "[operators]" ) { Qureg vecIn = createQureg(NUM_QUBITS, QUEST_ENV); Qureg vecOut = createQureg(NUM_QUBITS, QUEST_ENV); Qureg matIn = createDensityQureg(NUM_QUBITS, QUEST_ENV); Qureg matOut = createDensityQureg(NUM_QUBITS, QUEST_ENV); initDebugState(vecIn); initDebugState(matIn); SECTION( "correctness" ) { int numTerms = GENERATE( 1, 2, 10, 15); int numPaulis = numTerms * NUM_QUBITS; // each test will use random coefficients qreal coeffs[numTerms]; for (int i=0; i