### Question:
Schema implements ProtoObject<SchemaProto>, Cloneable, GsonObject { public synchronized Schema addColumn(String name, Type type) { if (type == Type.CHAR) { return addColumn(name, CatalogUtil.newDataTypeWithLen(type, 1)); } return addColumn(name, CatalogUtil.newSimpleDataType(type)); } Schema();  Schema(SchemaProto proto);  Schema(Schema schema);  Schema(Column [] columns); void setQualifier(String qualifier); int size(); Column getColumn(int id); Column getColumn(Column column); Column getColumn(String name); int getColumnId(String name); int getColumnIdByName(String colName); List<Column> getColumns(); boolean contains(String name); boolean contains(Column column); boolean containsByQualifiedName(String qualifiedName); boolean containsByName(String colName); boolean containsAll(Collection<Column> columns); synchronized Schema addColumn(String name, Type type); synchronized Schema addColumn(String name, Type type, int length); synchronized Schema addColumn(String name, DataType dataType); synchronized void addColumn(Column column); synchronized void addColumns(Schema schema); @Override int hashCode(); @Override boolean equals(Object o); @Override Object clone(); @Override SchemaProto getProto(); String toString(); @Override String toJson(); Column [] toArray();  }### Answer:
@Test public final void testEqualsObject() { Schema schema2 = new Schema(); schema2.addColumn("name", Type.TEXT); schema2.addColumn("age", Type.INT4); schema2.addColumn("addr", Type.TEXT); assertEquals(schema, schema2); }
@Test(expected = AlreadyExistsFieldException.class) public final void testAddExistColumn() { Schema schema = new Schema(); schema.addColumn("abc", Type.FLOAT8); schema.addColumn("bbc", Type.FLOAT8); schema.addColumn("abc", Type.INT4); }