code: private List<TestCaseDef> extendBaseCases( FunctionInputDef inputDef, VarTupleSet validTuples, Iterator<TestCaseDef> baseCases)
      {
      List<TestCaseDef> testCases = new ArrayList<TestCaseDef>();
      
      // For each base test case...
      while( baseCases.hasNext())
        {
        TestCaseDef testCase = baseCases.next();
        logger_.debug( "Extending base test case={}", testCase);
  
        // Complete all variable bindings.
        if( makeComplete( testCase, validTuples, getVarsRemaining( inputDef, testCase)))
          {
          logger_.debug( "Completed test case={}", testCase);
          validTuples.used( testCase);
          testCases.add( testCase);
          }
        else
          {
          logger_.debug( "Can't complete test case={}", testCase);
          }
        }
  
      return testCases;
     }
docs: Returns a set of valid {@link TestCaseDef test case definitions} that extend the given base test cases.