I often find myself wanting to generate a lot of negative test cases by mutating a known good set of inputs.
Let's say I have a function that will accept (a, b, c) as an expected valid input for a function. I have sample invalid values for each parameter: {a1, a2}, {b1}, {c1, c2, c3}. For my negative test cases, I would then want to send the mutated tuples: (a1, b, c) (a2, b, c) (a, b1, c) (a, b, c1) (a, b, c2) (a, b, c3)
Is there a name for such an operation? Are there libraries that make this simple?