docs: public static TableFactor fromDelimitedFile(List<VariableNumMap> variables, 
        List<? extends Function<String, ?>> inputConverters, Iterable<String> lines, String delimiter,
        boolean ignoreInvalidAssignments, TensorFactory tensorFactory) {
      int numVars = variables.size();
      VariableNumMap allVars = VariableNumMap.unionAll(variables);
      TableFactorBuilder builder = new TableFactorBuilder(allVars, tensorFactory);
      for (String line : lines) {
        // Ignore blank lines.
        if (line.trim().length() == 0) {
          continue;
        }
        
        String[] parts = line.split(delimiter);
        Preconditions.checkState(parts.length == (numVars + 1), "\"%s\" is incorrectly formatted", line);
        Assignment assignment = Assignment.EMPTY;
        for (int i = 0; i < numVars; i++) {
          Object value = inputConverters.get(i).apply(parts[i].intern());
          assignment = assignment.union(variables.get(i).outcomeArrayToAssignment(value));
        }
  
        // Check if the assignment is valid, if its not, then don't add it to the
        // feature set
        Preconditions.checkState(ignoreInvalidAssignments || allVars.isValidAssignment(assignment),
            "Invalid assignment: %s", assignment);
        if (!allVars.isValidAssignment(assignment)) {
          continue;
        }
  
        double weight = Double.parseDouble(parts[numVars]);
        builder.setWeight(assignment, weight);
      }
  
      return builder.build();
    }