@Test
  public void testEquals() {
    TupleDesc singleInt = new TupleDesc(new Type[] {Type.INT_TYPE});
    TupleDesc singleInt2 = new TupleDesc(new Type[] {Type.INT_TYPE});
    TupleDesc intString = new TupleDesc(new Type[] {Type.INT_TYPE, Type.STRING_TYPE});

    // .equals() with null should return false
    assertFalse(singleInt.equals(null));

    // .equals() with the wrong type should return false
    assertFalse(singleInt.equals(new Object()));

    assertTrue(singleInt.equals(singleInt));
    assertTrue(singleInt.equals(singleInt2));
    assertTrue(singleInt2.equals(singleInt));
    assertTrue(intString.equals(intString));

    assertFalse(singleInt.equals(intString));
    assertFalse(singleInt2.equals(intString));
    assertFalse(intString.equals(singleInt));
    assertFalse(intString.equals(singleInt2));
  }