MCPcopy Create free account
hub / github.com/QuEST-Kit/QuEST / SequenceGenerator

Class SequenceGenerator

tests/deprecated/test_utilities.cpp:1683–1719  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1681/// @private
1682template <typename T>
1683class SequenceGenerator : public Catch::Generators::IGenerator<T*> {
1684 T* digits;
1685 int len;
1686 T maxDigit;
1687 int ind;
1688 int seqLen;
1689public:
1690 SequenceGenerator(T maxDigit_, int numDigits) {
1691 ind = 0;
1692 len = numDigits;
1693 maxDigit = maxDigit_;
1694 seqLen = (int) pow(1 + (int) maxDigit, len);
1695 digits = (T*) malloc(numDigits * sizeof *digits);
1696 for (int i=0; i<numDigits; i++)
1697 digits[i] = (T) 0;
1698 ind++;
1699 }
1700
1701 T* const& get() const override {
1702 return digits;
1703 }
1704
1705 bool next() override {
1706 bool isNext = (ind++) < seqLen;
1707 if (isNext) {
1708 int i=0;
1709 while (digits[i] == maxDigit)
1710 digits[i++] = (T) 0;
1711 digits[i] = (T) ((int) digits[i] + 1);
1712 }
1713 return isNext;
1714 }
1715
1716 ~SequenceGenerator() {
1717 free(digits);
1718 }
1719};
1720Catch::Generators::GeneratorWrapper<int*> bitsets(int numBits) {
1721 return Catch::Generators::GeneratorWrapper<int*>(
1722 Catch::Detail::make_unique<SequenceGenerator<int>>(1, numBits));

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected