### Question:
SparkTable implements org.apache.spark.sql.connector.catalog.Table,
    SupportsRead, SupportsWrite, SupportsDelete { @Override public String name() { return icebergTable.toString(); } SparkTable(Table icebergTable, boolean refreshEagerly);  SparkTable(Table icebergTable, StructType requestedSchema, boolean refreshEagerly); Table table(); @Override String name(); @Override StructType schema(); @Override Transform[] partitioning(); @Override Map<String, String> properties(); @Override Set<TableCapability> capabilities(); @Override ScanBuilder newScanBuilder(CaseInsensitiveStringMap options); @Override WriteBuilder newWriteBuilder(LogicalWriteInfo info); @Override void deleteWhere(Filter[] filters); @Override String toString(); @Override boolean equals(Object other); @Override int hashCode();  }### Answer:
@Test public void testTableEquality() throws NoSuchTableException { CatalogManager catalogManager = spark.sessionState().catalogManager(); TableCatalog catalog = (TableCatalog) catalogManager.catalog(catalogName); Identifier identifier = Identifier.of(tableIdent.namespace().levels(), tableIdent.name()); SparkTable table1 = (SparkTable) catalog.loadTable(identifier); SparkTable table2 = (SparkTable) catalog.loadTable(identifier); Assert.assertNotSame("References must be different", table1, table2); Assert.assertEquals("Tables must be equivalent", table1, table2); }