ColumnStore implements ColumnIterable { public int deepHashCode() { int hash = 3; hash = 11 * hash + (this.elementType != null ? this.elementType.hashCode() : 0); ColumnStoreIterator itr = new ColumnStoreIterator(); while (itr.hasNext()) { hash = 11 * hash + itr.next().deepHashCode(); } return hash; } ColumnStore(Class<T> elementType, boolean indexed);  ColumnStore(GraphStore graphStore, Class<T> elementType, boolean indexed); void addColumn(final Column column); void removeColumn(final Column column); void removeColumn(final String key); int getColumnIndex(final String key); Column getColumnByIndex(final int index); Column getColumn(final String key); boolean hasColumn(String key); @Override Iterator<Column> iterator(); @Override ColumnImpl[] toArray(); @Override List<Column> toList(); @Override void doBreak(); Set<String> getColumnKeys(); void clear(); int size(); boolean deepEquals(ColumnStore<T> obj); int deepHashCode();  }
@Test public void testDeepHashCodeEmpty() { ColumnStore<Node> store1 = new ColumnStore<Node>(Node.class, false); Assert.assertEquals(store1.deepHashCode(), store1.deepHashCode()); ColumnStore<Node> store2 = new ColumnStore<Node>(Node.class, false); Assert.assertEquals(store1.deepHashCode(), store2.deepHashCode()); ColumnStore<Edge> store3 = new ColumnStore<Edge>(Edge.class, false); Assert.assertNotEquals(store1.deepHashCode(), store3.deepHashCode()); }
@Test public void testDeepHashCode() { ColumnStore<Node> store1 = new ColumnStore<Node>(Node.class, false); ColumnImpl col1 = new ColumnImpl("0", Integer.class, null, null, Origin.DATA, false, false); store1.addColumn(col1); ColumnStore<Node> store2 = new ColumnStore<Node>(Node.class, false); ColumnImpl col2 = new ColumnImpl("0", Integer.class, null, null, Origin.DATA, false, false); store2.addColumn(col2); Assert.assertEquals(store1.deepHashCode(), store2.deepHashCode()); ColumnStore<Node> store3 = new ColumnStore<Node>(Node.class, false); ColumnImpl col3 = new ColumnImpl("0", String.class, null, null, Origin.DATA, false, false); store3.addColumn(col3); Assert.assertNotEquals(store1.deepHashCode(), store3.deepHashCode()); }