public void testValueFilter() throws IOException {
  long expectedRows=this.numRows / 2;
  long expectedKeys=this.colsPerRow;
  Filter f=new ValueFilter(CompareOp.EQUAL,new BinaryComparator(Bytes.toBytes("testValueOne")));
  Scan s=new Scan();
  s.setFilter(f);
  verifyScanNoEarlyOut(s,expectedRows,expectedKeys);
  expectedRows=this.numRows / 2;
  expectedKeys=this.colsPerRow;
  f=new ValueFilter(CompareOp.EQUAL,new BinaryComparator(Bytes.toBytes("testValueTwo")));
  s=new Scan();
  s.setFilter(f);
  verifyScanNoEarlyOut(s,expectedRows,expectedKeys);
  expectedRows=this.numRows;
  expectedKeys=this.colsPerRow;
  f=new ValueFilter(CompareOp.EQUAL,new RegexStringComparator("testValue((One)|(Two))"));
  s=new Scan();
  s.setFilter(f);
  verifyScanNoEarlyOut(s,expectedRows,expectedKeys);
  expectedRows=this.numRows / 2;
  expectedKeys=this.colsPerRow;
  f=new ValueFilter(CompareOp.LESS,new BinaryComparator(Bytes.toBytes("testValueTwo")));
  s=new Scan();
  s.setFilter(f);
  verifyScanNoEarlyOut(s,expectedRows,expectedKeys);
  expectedRows=this.numRows;
  expectedKeys=this.colsPerRow;
  f=new ValueFilter(CompareOp.LESS_OR_EQUAL,new BinaryComparator(Bytes.toBytes("testValueTwo")));
  s=new Scan();
  s.setFilter(f);
  verifyScanNoEarlyOut(s,expectedRows,expectedKeys);
  expectedRows=this.numRows / 2;
  expectedKeys=this.colsPerRow;
  f=new ValueFilter(CompareOp.LESS_OR_EQUAL,new BinaryComparator(Bytes.toBytes("testValueOne")));
  s=new Scan();
  s.setFilter(f);
  verifyScanNoEarlyOut(s,expectedRows,expectedKeys);
  expectedRows=this.numRows / 2;
  expectedKeys=this.colsPerRow;
  f=new ValueFilter(CompareOp.NOT_EQUAL,new BinaryComparator(Bytes.toBytes("testValueOne")));
  s=new Scan();
  s.setFilter(f);
  verifyScanNoEarlyOut(s,expectedRows,expectedKeys);
  expectedRows=this.numRows;
  expectedKeys=this.colsPerRow;
  f=new ValueFilter(CompareOp.GREATER_OR_EQUAL,new BinaryComparator(Bytes.toBytes("testValueOne")));
  s=new Scan();
  s.setFilter(f);
  verifyScanNoEarlyOut(s,expectedRows,expectedKeys);
  expectedRows=this.numRows / 2;
  expectedKeys=this.colsPerRow;
  f=new ValueFilter(CompareOp.GREATER,new BinaryComparator(Bytes.toBytes("testValueOne")));
  s=new Scan();
  s.setFilter(f);
  verifyScanNoEarlyOut(s,expectedRows,expectedKeys);
  f=new ValueFilter(CompareOp.NOT_EQUAL,new BinaryComparator(Bytes.toBytes("testValueOne")));
  s=new Scan();
  s.setFilter(f);
  KeyValue[] kvs={new KeyValue(ROWS_TWO[0],FAMILIES[0],QUALIFIERS_TWO[0],VALUES[1]),new KeyValue(ROWS_TWO[0],FAMILIES[0],QUALIFIERS_TWO[2],VALUES[1]),new KeyValue(ROWS_TWO[0],FAMILIES[0],QUALIFIERS_TWO[3],VALUES[1]),new KeyValue(ROWS_TWO[0],FAMILIES[1],QUALIFIERS_TWO[0],VALUES[1]),new KeyValue(ROWS_TWO[0],FAMILIES[1],QUALIFIERS_TWO[2],VALUES[1]),new KeyValue(ROWS_TWO[0],FAMILIES[1],QUALIFIERS_TWO[3],VALUES[1]),new KeyValue(ROWS_TWO[2],FAMILIES[0],QUALIFIERS_TWO[0],VALUES[1]),new KeyValue(ROWS_TWO[2],FAMILIES[0],QUALIFIERS_TWO[2],VALUES[1]),new KeyValue(ROWS_TWO[2],FAMILIES[0],QUALIFIERS_TWO[3],VALUES[1]),new KeyValue(ROWS_TWO[2],FAMILIES[1],QUALIFIERS_TWO[0],VALUES[1]),new KeyValue(ROWS_TWO[2],FAMILIES[1],QUALIFIERS_TWO[2],VALUES[1]),new KeyValue(ROWS_TWO[2],FAMILIES[1],QUALIFIERS_TWO[3],VALUES[1]),new KeyValue(ROWS_TWO[3],FAMILIES[0],QUALIFIERS_TWO[0],VALUES[1]),new KeyValue(ROWS_TWO[3],FAMILIES[0],QUALIFIERS_TWO[2],VALUES[1]),new KeyValue(ROWS_TWO[3],FAMILIES[0],QUALIFIERS_TWO[3],VALUES[1]),new KeyValue(ROWS_TWO[3],FAMILIES[1],QUALIFIERS_TWO[0],VALUES[1]),new KeyValue(ROWS_TWO[3],FAMILIES[1],QUALIFIERS_TWO[2],VALUES[1]),new KeyValue(ROWS_TWO[3],FAMILIES[1],QUALIFIERS_TWO[3],VALUES[1])};
  verifyScanFull(s,kvs);
}
