14#include <catch2/generators/catch_generators_adapters.hpp>
16#include "quest/include/quest.h"
23using listpair = std::tuple<vector<int>,vector<int>>;
24using listtrio = std::tuple<vector<int>,vector<int>,vector<int>>;
27vector<int> getRange(
int start,
int endExcl);
28vector<int> getRange(
int endExcl);
29vector<int> getComplement(vector<int> listA, vector<int> listB);
30vector<int> getSublist(vector<int> list,
int start,
int len);
31vector<qcomp> getSublist(vector<qcomp> list,
int start,
int len);
34template<
class T>
using CatchGen = Catch::Generators::GeneratorWrapper<T>;
35CatchGen<vector<int>> sublists(CatchGen<int>&& gen,
int sublen);
36CatchGen<listpair> disjointsublists(CatchGen<int>&& gen,
int sublen1,
int sublen2);
39vector<int> GENERATE_TARGS(
int numQubits,
int numTargs);
40listpair GENERATE_CTRLS_AND_TARGS(
int numQubits,
int numCtrls,
int numTargs);