private String resultToString(Result result) {
    StringBuilder sb = new StringBuilder();
    sb.append("cells=");
    if (result.isEmpty()) {
      sb.append("NONE");
      return sb.toString();
    }
    sb.append("{");
    boolean moreThanOne = false;
    for (Cell cell : result.listCells()) {
      if (moreThanOne) {
        sb.append(", ");
      } else {
        moreThanOne = true;
      }
      sb.append(CellUtil.toString(cell, true));
    }
    sb.append("}");
    return sb.toString();
  }
Verifies the result from get or scan using the dataGenerator (that was presumably also used to
generate said result).
@param verifyValues               verify that values in the result make sense for row/cf/column
                                  combination
@param verifyCfAndColumnIntegrity verify that cf/column set in the result is complete. Note
                                  that to use this multiPut should be used, or verification has
                                  to happen after writes, otherwise there can be races.
@return true if the values of row result makes sense for row/cf/column combination and true if
        the cf/column set in the result is complete, false otherwise.
hbase-diagnostics/src/main/java/org/apache/hadoop/hbase/util/MultiThreadedAction.java