I'm writing some test case generators and, for the umpteenth
time, having to craft combination and permutation generation loops.
I see that there is a "permutation iterator" that
scrambles ranges. That's a good and useful tool but it isn't enough for
what I have in mind.
I'd like a set of tools that will provide both exhaustive and
random combinations and permutations of N items from M item sets or multisets
(represented in a variety of concrete ways and with M >= N). Admitting
multisets moves the problem from first-year to second- or third-year
level. I like to keep things interesting ;-)
Any suggestions?
I am putting some effort into generalizing the interface to the
code I'm hacking on now but I doubt my management will permit me to contribute
it to boost. Maybe, since it is used only for testing. We'll see.
But if somebody else started the ball rolling I could take pot shots at their
work.
-swn
PS: The specification above could be expanded to include a
pairwise test case generator, or that could be considered another library
suggestion. These things are usually needed at a utility level rather than
inside a compiled test driver but there are exceptions. See http://www.pairwise.org/tools.asp
.