added recursive test case generator