@Test
  public void testCreateKey() {
    byte[] row = Bytes.toBytes("myRow");
    byte[] qualifier = Bytes.toBytes("myQualifier");
    // Mimic what Storefile.createBloomKeyValue() does
    byte[] rowKey =
      KeyValueUtil.createFirstOnRow(row, 0, row.length, new byte[0], 0, 0, row, 0, 0).getKey();
    byte[] rowColKey = KeyValueUtil
      .createFirstOnRow(row, 0, row.length, new byte[0], 0, 0, qualifier, 0, qualifier.length)
      .getKey();
    KeyValue rowKV = KeyValueUtil.createKeyValueFromKey(rowKey);
    KeyValue rowColKV = KeyValueUtil.createKeyValueFromKey(rowColKey);
    assertEquals(rowKV.getTimestamp(), rowColKV.getTimestamp());
    assertEquals(
      Bytes.toStringBinary(rowKV.getRowArray(), rowKV.getRowOffset(), rowKV.getRowLength()), Bytes
        .toStringBinary(rowColKV.getRowArray(), rowColKV.getRowOffset(), rowColKV.getRowLength()));
    assertEquals(0, rowKV.getQualifierLength());
  }
Validates the false positive ratio by computing its z-value and comparing it to the provided
threshold.
@param falsePosRate   experimental positive rate
@param nTrials        the number of Bloom filter checks
@param zValueBoundary z-value boundary, positive for an upper bound and negative for a lower
                      bound
@param cbf            the compound Bloom filter we are using
@param additionalMsg  additional message to include in log output and assertion failures
hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestCompoundBloomFilter.java