public List<Tuple> buildTuples(int tupleSize, boolean permute, boolean regression) {
    List<Tuple> listOfTuples = new ArrayList<>();
    if (regression) {
      // only add 1 placeholder tuple
      listOfTuples.add(new Tuple());
    } else {

      List<Client> clientList = this.configHandler.getClientList();

      List<Client> focusedList = new ArrayList<>();
      for (Client client : clientList) {
        if (! client.isExclude()) {
          focusedList.add(client);
        }
      }

      listOfTuples = recursivelyBuildTuples(tupleSize, 0, clientList, (new Tuple()).getClients(), permute);

      List<Tuple> tempListOfTuples = new ArrayList<>(listOfTuples);
      for (Tuple tuple : tempListOfTuples) {
        if (Collections.disjoint(tuple.getClients(), focusedList)
            || (skipSame && tuple.getClients().stream().distinct().limit(2).count() <= 1)) {
          listOfTuples.remove(tuple);
        }
      }
      for (Tuple t :listOfTuples) {
        logger.debug("Tuple = " + t.getId());
      }      
    }
    return listOfTuples;
  }
Creates a matrix of browser tuples.

@param tupleSize  tuple size
@param permute    the permute
@param regression the regression

@return a matrix of browser tuples as List<Tuple>
KITE-Engine/src/main/java/org/webrtc/kite/config/Configurator.java