code: private List<TestCaseDef> getBaseFailureCases( FunctionInputDef inputDef, VarTupleSet validTuples, VarTupleSet failureTuples, List<TestCaseDef> baseCases)
      {
      logger_.debug( "{}: Extending base failure test cases", inputDef);
  
      Iterator<TestCaseDef> failureBaseCases =
        IteratorUtils.filteredIterator(
          baseCases.iterator(),
          testCase -> testCase.getInvalidVar() != null);
  
      List<TestCaseDef> testCases = extendBaseCases( inputDef, validTuples, failureBaseCases);
  
      // Consume all failure values used.
      for( TestCaseDef testCase : testCases)
        {
        VarDef failureVar = testCase.getInvalidVar();
        failureTuples.used( new Tuple( new VarBindingDef( failureVar, testCase.getValue( failureVar))));
        }
  
      logger_.info( "{}: Extended {} base failure test cases", inputDef, testCases.size());
      return testCases;
     }
docs: Returns a set of failure {@link TestCaseDef test case definitions} that extend the given base test cases.