@Test
public void testEquals() {

  Column c1 = new Column("f1", "q1");
  Column c2 = new Column("f2", "q1");
  Column c3 = new Column("f1", "q2");
  Column c4 = new Column("f2", "q2");
  ColumnValue cv = new ColumnValue(c1, "v1");
  Assert.assertEquals(cv, cv);
  Assert.assertEquals(cv.hashCode(), cv.hashCode());
  Assert.assertEquals(new ColumnValue(c1, "v1"), cv);
  Assert.assertEquals(new ColumnValue(c1, "v1").hashCode(), cv.hashCode());
  Assert.assertNotEquals(new ColumnValue(c1, "v2"), cv);
  Assert.assertNotEquals(new ColumnValue(c1, "v2").hashCode(), cv.hashCode());
  for (Column c : Arrays.asList(c2, c3, c4)) {
    for (String v : Arrays.asList("v1", "v2")) {
      ColumnValue ocv = new ColumnValue(c, v);
      Assert.assertNotEquals(ocv, cv);
      Assert.assertNotEquals(ocv.hashCode(), cv.hashCode());
    }
  }
  Assert.assertNotEquals(cv, c1);
  Assert.assertNotEquals(cv, "v1");
}