private int testRecordResultCompute(String[][] wordresults) {
    int nbDuplicateFound = 0;

    // prepare wordresults
    List<List<WordResult>> wordResults = new ArrayList<List<WordResult>>();
    for (String[] elts : wordresults) {
      List<WordResult> wrs = new ArrayList<WordResult>();
      for (String elt : elts) {
        WordResult wr = new WordResult();
        wr.input = "input " + elt;
        wr.word = "word " + elt;
        wr.score = Integer.valueOf(elt);
        wrs.add(wr);
      }
      wordResults.add(wrs);
    }

    // --- compute output results as a list
    RecordResult recRes = new RecordResult();
    recRes.record = initializeRecordToSearch(wordresults);
    recRes.wordResults.addAll(wordResults);

    List<OutputRecord> expectedOutputRows = null;
    expectedOutputRows = new ArrayList<OutputRecord>();
    SynonymRecordSearcher.RecordResult.computeOutputRows(
        wordresults.length, new ArrayList<WordResult>(), recRes.wordResults, expectedOutputRows);
    for (OutputRecord outputRecord : expectedOutputRows) {
      System.out.println(outputRecord);
    }

    // --- test that duplicates are removed when using a set instead of a list
    Set<OutputRecord> uniques = new HashSet<OutputRecord>();
    uniques.addAll(expectedOutputRows);
    Assert.assertTrue(uniques.size() <= expectedOutputRows.size());
    if (uniques.size() < expectedOutputRows.size()) {
      nbDuplicateFound++;
    }

    List<OutputRecord> outputRows = recRes.computeOutputRows();

    // --- check some assertions

    // verify number of results
    int expectedNbOutput = 1;
    for (String[] in : wordresults) {
      expectedNbOutput *= Math.max(in.length, 1);
    }

    Assert.assertEquals(expectedNbOutput, expectedOutputRows.size());
    Assert.assertTrue(expectedOutputRows.size() >= outputRows.size());

    for (OutputRecord outputRecord : outputRows) {
      boolean found = false;
      for (OutputRecord expectedRecord : expectedOutputRows) {
        if (expectedRecord.equals(outputRecord)) {
          found = true;
          break;
        }
      }
      Assert.assertTrue("Record not found: " + outputRecord, found);
    }
    return nbDuplicateFound;
  }