From 192acafbffd3f642e1b5192fd03ba81426ad8ed4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Euzenat?= <Jerome.Euzenat@inria.fr> Date: Wed, 10 Mar 2010 10:54:28 +0000 Subject: [PATCH] - Suppressed all occurence of Parameters (but in BasicParameters) --- .../webcontent/OntologyAlignmentImpl.java | 4 +- .../align/plugin/webcontent/WSInterface.java | 37 +++++------ .../exmo/align/impl/BasicAlignment.java | 8 +-- .../exmo/align/impl/BasicParameters.java | 18 ++--- .../exmo/align/impl/ObjectAlignment.java | 1 - .../inrialpes/exmo/align/impl/ObjectCell.java | 1 - .../exmo/align/impl/URIAlignment.java | 1 - .../exmo/align/impl/edoal/EDOALAlignment.java | 2 - .../align/impl/eval/SemPRecEvaluator.java | 8 +-- .../renderer/HTMLMetadataRendererVisitor.java | 2 - .../service/jade/JadeFIPAAServProfile.java | 4 +- src/org/semanticweb/owl/align/Parameters.java | 8 +-- test/src/BasicAlignmentTest.java | 66 ++++++++++++++++++- 13 files changed, 104 insertions(+), 56 deletions(-) diff --git a/plugins/webcontent/src/fr/inrialpes/exmo/align/plugin/webcontent/OntologyAlignmentImpl.java b/plugins/webcontent/src/fr/inrialpes/exmo/align/plugin/webcontent/OntologyAlignmentImpl.java index c00962e2..069f6d18 100644 --- a/plugins/webcontent/src/fr/inrialpes/exmo/align/plugin/webcontent/OntologyAlignmentImpl.java +++ b/plugins/webcontent/src/fr/inrialpes/exmo/align/plugin/webcontent/OntologyAlignmentImpl.java @@ -1,7 +1,7 @@ /* * $Id$ * - * Copyright (C) INRIA Rh�ne-Alpes, 2007-2009 + * Copyright (C) INRIA, 2007-2010 * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by @@ -58,8 +58,6 @@ import fr.inrialpes.exmo.align.impl.BasicAlignment; import fr.inrialpes.exmo.align.impl.URIAlignment; import fr.inrialpes.exmo.align.impl.ObjectAlignment; - -import org.semanticweb.owl.align.Parameters; import org.semanticweb.owl.align.Alignment; import org.semanticweb.owl.align.AlignmentProcess; import org.semanticweb.owl.align.AlignmentVisitor; diff --git a/plugins/webcontent/src/fr/inrialpes/exmo/align/plugin/webcontent/WSInterface.java b/plugins/webcontent/src/fr/inrialpes/exmo/align/plugin/webcontent/WSInterface.java index 84fe470f..6e7a393b 100644 --- a/plugins/webcontent/src/fr/inrialpes/exmo/align/plugin/webcontent/WSInterface.java +++ b/plugins/webcontent/src/fr/inrialpes/exmo/align/plugin/webcontent/WSInterface.java @@ -1,7 +1,7 @@ /* * $Id$ * - * Copyright (C) INRIA Rh�ne-Alpes, 2007-2008, 2010 + * Copyright (C) INRIA, 2007-2008, 2010 * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by @@ -43,7 +43,6 @@ import java.util.zip.ZipInputStream; import javax.swing.JOptionPane; -import org.semanticweb.owl.align.Parameters; import org.w3c.dom.Document; import org.w3c.dom.Node; import org.w3c.dom.NodeList; @@ -96,7 +95,7 @@ public class WSInterface { String answer = null; try { - Parameters params = new BasicParameters(); + BasicParameters params = new BasicParameters(); params.setParameter( "host", HOST ); //params.setParameter( "http", PORT ); //params.setParameter( "wsdl", WSDL ); @@ -144,7 +143,7 @@ public class WSInterface { try { // Read parameters - Parameters params = new BasicParameters(); + BasicParameters params = new BasicParameters(); params.setParameter( "host", HOST ); params.setParameter( "command","trim"); @@ -192,7 +191,7 @@ public class WSInterface { try { // Read parameters - Parameters params = new BasicParameters(); + BasicParameters params = new BasicParameters(); params.setParameter( "host", HOST ); params.setParameter( "command","list"); @@ -233,7 +232,7 @@ public class WSInterface { try { // Read parameters - Parameters params = new BasicParameters(); + BasicParameters params = new BasicParameters(); params.setParameter( "host", HOST ); params.setParameter( "command","find"); @@ -271,7 +270,7 @@ public class WSInterface { try { // Read parameters - Parameters params = new BasicParameters(); + BasicParameters params = new BasicParameters(); params.setParameter( "host", HOST ); //params.setParameter( "http", PORT ); //params.setParameter( "wsdl", WSDL ); @@ -321,7 +320,7 @@ public class WSInterface { //System.out.println("Uri 1="+ onto1); //System.out.println("Uri 2="+ onto2); - Parameters params = new BasicParameters(); + BasicParameters params = new BasicParameters(); params.setParameter( "host", HOST ); //params.setParameter( "http", PORT ); //params.setParameter( "wsdl", WSDL ); @@ -375,7 +374,7 @@ public class WSInterface { //retrieve alignment for storing in OWL file - Parameters params = new BasicParameters(); + BasicParameters params = new BasicParameters(); params.setParameter( "host", HOST ); //params.setParameter( "http", PORT ); //params.setParameter( "wsdl", WSDL ); @@ -387,7 +386,7 @@ public class WSInterface { try { // Read parameters - //Parameters params = ws.readParameters( aservArgRetrieve ); + //BasicParameters params = ws.readParameters( aservArgRetrieve ); // Create the SOAP message String message = createMessage( params ); @@ -434,7 +433,7 @@ public class WSInterface { //retrieve alignment for storing in OWL file - Parameters params = new BasicParameters(); + BasicParameters params = new BasicParameters(); params.setParameter( "host", HOST ); //params.setParameter( "http", PORT ); //params.setParameter( "wsdl", WSDL ); @@ -446,7 +445,7 @@ public class WSInterface { try { // Read parameters - //Parameters params = ws.readParameters( aservArgRetrieve ); + //BasicParameters params = ws.readParameters( aservArgRetrieve ); // Create the SOAP message String message = createMessage( params ); @@ -480,7 +479,7 @@ public class WSInterface { public String render(String alignId, String method) { - Parameters params = new BasicParameters(); + BasicParameters params = new BasicParameters(); params.setParameter( "host", HOST ); //params.setParameter( "http", PORT ); //params.setParameter( "wsdl", WSDL ); @@ -492,7 +491,7 @@ public class WSInterface { try { // Read parameters - //Parameters params = ws.readParameters( aservArgRetrieve ); + //BasicParameters params = ws.readParameters( aservArgRetrieve ); // Create the SOAP message String message = createMessage( params ); @@ -528,7 +527,7 @@ public class WSInterface { //retrieve alignment for displaying - Parameters params = new BasicParameters(); + BasicParameters params = new BasicParameters(); params.setParameter( "host", HOST ); //params.setParameter( "http", PORT ); //params.setParameter( "wsdl", WSDL ); @@ -540,7 +539,7 @@ public class WSInterface { try { // Read parameters - //Parameters params = ws.readParameters( aservArgRetrieve ); + //BasicParameters params = ws.readParameters( aservArgRetrieve ); // Create the SOAP message String message = createMessage( params ); @@ -734,7 +733,7 @@ public class WSInterface { } - public String createMessage( Parameters params ) throws Exception { + public String createMessage( BasicParameters params ) throws Exception { String messageBegin = "<SOAP-ENV:Envelope xmlns:SOAP-ENV=\'http://schemas.xmlsoap.org/soap/envelope/\' " + "xmlns:xsi=\'http://www.w3.org/1999/XMLSchema-instance\' " + "xmlns:xsd=\'http://www.w3.org/1999/XMLSchema\'>" + @@ -879,7 +878,7 @@ public class WSInterface { return message; } - public String sendMessage( String message, Parameters param ) { + public String sendMessage( String message, BasicParameters param ) { // Create the connection byte[] b = message.getBytes(); @@ -935,7 +934,7 @@ public class WSInterface { return answer; } - public String sendFile( String message, Parameters param ) { + public String sendFile( String message, BasicParameters param ) { // Create the connection //byte[] b = message.getBytes(); diff --git a/src/fr/inrialpes/exmo/align/impl/BasicAlignment.java b/src/fr/inrialpes/exmo/align/impl/BasicAlignment.java index 46894fba..08a21437 100644 --- a/src/fr/inrialpes/exmo/align/impl/BasicAlignment.java +++ b/src/fr/inrialpes/exmo/align/impl/BasicAlignment.java @@ -28,6 +28,7 @@ import java.util.Enumeration; import java.util.Iterator; import java.util.Collections; import java.util.Collection; +import java.util.Properties; import java.util.List; import java.util.Set; import java.util.ArrayList; @@ -41,7 +42,6 @@ import org.semanticweb.owl.align.AlignmentVisitor; import org.semanticweb.owl.align.AlignmentProcess; import org.semanticweb.owl.align.Cell; import org.semanticweb.owl.align.Relation; -import org.semanticweb.owl.align.Parameters; import fr.inrialpes.exmo.ontowrap.Ontology; import fr.inrialpes.exmo.ontowrap.BasicOntology; @@ -115,8 +115,8 @@ public class BasicAlignment implements Alignment { } } - public static Parameters getParameters() { - return (Parameters)null; + public static Properties getParameters() { + return (Properties)null; } public int nbCells() { @@ -188,7 +188,7 @@ public class BasicAlignment implements Alignment { return extensions.getExtension( uri, label ); }; - public Parameters getXNamespaces(){ return namespaces; } + public BasicParameters getXNamespaces(){ return namespaces; } public void setXNamespace( String label, String uri ) { namespaces.setParameter( label, uri ); diff --git a/src/fr/inrialpes/exmo/align/impl/BasicParameters.java b/src/fr/inrialpes/exmo/align/impl/BasicParameters.java index 84d82275..00a51037 100644 --- a/src/fr/inrialpes/exmo/align/impl/BasicParameters.java +++ b/src/fr/inrialpes/exmo/align/impl/BasicParameters.java @@ -54,6 +54,10 @@ import org.semanticweb.owl.align.Parameters; * But propertyNames returns Enumeration and not Enumeration<String> * Using keySet will not change anything, because it will be Set<Object> * Java 6 introduces Set<String> stringPropertyNames() !! + * + * [JE:2010] This class implements Parameters for compatibility purposes. + * Parameters is only "morally" deprecated in the Alignment API, but it is + * not used anymore. * * @author Jérôme Euzenat * @version $Id$ @@ -63,9 +67,6 @@ public class BasicParameters extends Properties implements Parameters, Cloneable static final long serialVersionUID = 400L; - /** The list of unlinked out XML_Port */ - //Hashtable<String,Object> parameters = null; - public BasicParameters() {} @SuppressWarnings( "unchecked" ) @@ -77,24 +78,19 @@ public class BasicParameters extends Properties implements Parameters, Cloneable } public void setParameter( String name, String value ){ - //parameters.put(name,value); setProperty( name, value ); } public void unsetParameter( String name ){ - //parameters.remove(name); setProperty( name, (String)null ); } - // JE2009: returns a string... public String getParameter( String name ){ - //return parameters.get(name); return getProperty( name ); } @SuppressWarnings( "unchecked" ) public Enumeration<String> getNames(){ - //return parameters.keys(); return (Enumeration<String>)propertyNames(); //[W:unchecked] } @@ -125,11 +121,11 @@ public class BasicParameters extends Properties implements Parameters, Cloneable } } - public static Parameters read( String filename ){ - return read(new BasicParameters(), filename); + public static BasicParameters read( String filename ){ + return read( new BasicParameters(), filename ); } - public static Parameters read( Parameters p, String filename ){ + public static BasicParameters read( BasicParameters p, String filename ){ try { // open the stream DocumentBuilderFactory docBuilderFactory = diff --git a/src/fr/inrialpes/exmo/align/impl/ObjectAlignment.java b/src/fr/inrialpes/exmo/align/impl/ObjectAlignment.java index 0e9844e2..d9dd9f46 100644 --- a/src/fr/inrialpes/exmo/align/impl/ObjectAlignment.java +++ b/src/fr/inrialpes/exmo/align/impl/ObjectAlignment.java @@ -38,7 +38,6 @@ import org.semanticweb.owl.align.AlignmentException; import org.semanticweb.owl.align.AlignmentVisitor; import org.semanticweb.owl.align.Cell; import org.semanticweb.owl.align.Relation; -import org.semanticweb.owl.align.Parameters; import fr.inrialpes.exmo.ontowrap.OntologyFactory; import fr.inrialpes.exmo.ontowrap.Ontology; diff --git a/src/fr/inrialpes/exmo/align/impl/ObjectCell.java b/src/fr/inrialpes/exmo/align/impl/ObjectCell.java index b78e7fe9..42bf209f 100644 --- a/src/fr/inrialpes/exmo/align/impl/ObjectCell.java +++ b/src/fr/inrialpes/exmo/align/impl/ObjectCell.java @@ -31,7 +31,6 @@ import org.semanticweb.owl.align.AlignmentException; import org.semanticweb.owl.align.AlignmentVisitor; import org.semanticweb.owl.align.Cell; import org.semanticweb.owl.align.Relation; -import org.semanticweb.owl.align.Parameters; import fr.inrialpes.exmo.ontowrap.LoadedOntology; import fr.inrialpes.exmo.ontowrap.OntowrapException; diff --git a/src/fr/inrialpes/exmo/align/impl/URIAlignment.java b/src/fr/inrialpes/exmo/align/impl/URIAlignment.java index 48f27c3d..7352438a 100644 --- a/src/fr/inrialpes/exmo/align/impl/URIAlignment.java +++ b/src/fr/inrialpes/exmo/align/impl/URIAlignment.java @@ -42,7 +42,6 @@ import org.semanticweb.owl.align.AlignmentException; import org.semanticweb.owl.align.AlignmentVisitor; import org.semanticweb.owl.align.Cell; import org.semanticweb.owl.align.Relation; -import org.semanticweb.owl.align.Parameters; import fr.inrialpes.exmo.ontowrap.Ontology; diff --git a/src/fr/inrialpes/exmo/align/impl/edoal/EDOALAlignment.java b/src/fr/inrialpes/exmo/align/impl/edoal/EDOALAlignment.java index 00601408..0c0bb4fb 100644 --- a/src/fr/inrialpes/exmo/align/impl/edoal/EDOALAlignment.java +++ b/src/fr/inrialpes/exmo/align/impl/edoal/EDOALAlignment.java @@ -31,13 +31,11 @@ import org.semanticweb.owl.align.AlignmentException; import org.semanticweb.owl.align.Alignment; import org.semanticweb.owl.align.Cell; import org.semanticweb.owl.align.Relation; -import org.semanticweb.owl.align.Parameters; import fr.inrialpes.exmo.ontowrap.Ontology; import fr.inrialpes.exmo.align.impl.Annotations; import fr.inrialpes.exmo.align.impl.Namespace; import fr.inrialpes.exmo.align.impl.BasicAlignment; -import fr.inrialpes.exmo.align.impl.BasicParameters; import fr.inrialpes.exmo.align.impl.Extensions; /** diff --git a/src/fr/inrialpes/exmo/align/impl/eval/SemPRecEvaluator.java b/src/fr/inrialpes/exmo/align/impl/eval/SemPRecEvaluator.java index 7123844b..bc7e7c1a 100644 --- a/src/fr/inrialpes/exmo/align/impl/eval/SemPRecEvaluator.java +++ b/src/fr/inrialpes/exmo/align/impl/eval/SemPRecEvaluator.java @@ -1,7 +1,7 @@ /* * $Id$ * - * Copyright (C) INRIA, 2009 + * Copyright (C) INRIA, 2009-2010 * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by @@ -23,7 +23,6 @@ package fr.inrialpes.exmo.align.impl.eval; import org.semanticweb.owl.align.Alignment; import org.semanticweb.owl.align.AlignmentException; import org.semanticweb.owl.align.Cell; -import org.semanticweb.owl.align.Parameters; import org.semanticweb.owl.align.Evaluator; import fr.inrialpes.exmo.align.impl.BasicEvaluator; @@ -35,6 +34,7 @@ import fr.inrialpes.exmo.align.impl.eval.PRecEvaluator; import fr.inrialpes.exmo.iddl.IDDLReasoner; import fr.inrialpes.exmo.iddl.conf.Semantics; +import java.util.Properties; import java.util.Enumeration; import java.util.Iterator; import java.util.Set; @@ -94,8 +94,8 @@ public class SemPRecEvaluator //extends BasicEvaluator * * This takes semantivs as a parameter which should be a litteral of fr.inrialpes.exmo.iddl.conf.Semantics */ - public double eval( Parameters params, Object cache ) throws AlignmentException { - init( params.getParameter( "semantics" ) ); + public double eval( Properties params, Object cache ) throws AlignmentException { + init( params.getProperty( "semantics" ) ); nbfound = align2.nbCells(); nbexpected = align1.nbCells(); diff --git a/src/fr/inrialpes/exmo/align/impl/renderer/HTMLMetadataRendererVisitor.java b/src/fr/inrialpes/exmo/align/impl/renderer/HTMLMetadataRendererVisitor.java index 474df9cb..f35aae4c 100644 --- a/src/fr/inrialpes/exmo/align/impl/renderer/HTMLMetadataRendererVisitor.java +++ b/src/fr/inrialpes/exmo/align/impl/renderer/HTMLMetadataRendererVisitor.java @@ -30,11 +30,9 @@ import org.semanticweb.owl.align.Visitable; import org.semanticweb.owl.align.Alignment; import org.semanticweb.owl.align.AlignmentVisitor; import org.semanticweb.owl.align.AlignmentException; -import org.semanticweb.owl.align.Parameters; import fr.inrialpes.exmo.align.impl.Annotations; import fr.inrialpes.exmo.align.impl.Namespace; -import fr.inrialpes.exmo.align.impl.BasicParameters; import fr.inrialpes.exmo.align.impl.BasicAlignment; import fr.inrialpes.exmo.ontowrap.LoadedOntology; diff --git a/src/fr/inrialpes/exmo/align/service/jade/JadeFIPAAServProfile.java b/src/fr/inrialpes/exmo/align/service/jade/JadeFIPAAServProfile.java index d2c6cad3..9432c97a 100755 --- a/src/fr/inrialpes/exmo/align/service/jade/JadeFIPAAServProfile.java +++ b/src/fr/inrialpes/exmo/align/service/jade/JadeFIPAAServProfile.java @@ -2,7 +2,7 @@ * $Id$ * * Copyright (C) Orange R&D, 2006-2007 - * Copyright (C) INRIA, 2006-2007, 2009 + * Copyright (C) INRIA, 2006-2007, 2009-2010 * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public License @@ -29,8 +29,6 @@ import jade.wrapper.AgentContainer; import jade.wrapper.AgentController; import jade.wrapper.ControllerException; -import org.semanticweb.owl.align.Parameters; - import fr.inrialpes.exmo.align.service.AServException; import fr.inrialpes.exmo.align.service.AServProtocolManager; import fr.inrialpes.exmo.align.service.AlignmentServiceProfile; diff --git a/src/org/semanticweb/owl/align/Parameters.java b/src/org/semanticweb/owl/align/Parameters.java index ffd44310..7d12208b 100644 --- a/src/org/semanticweb/owl/align/Parameters.java +++ b/src/org/semanticweb/owl/align/Parameters.java @@ -1,7 +1,7 @@ /* * $Id$ * - * Copyright (C) INRIA, 2004, 2008, 2009 + * Copyright (C) INRIA, 2004, 2008, 2009-2010 * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public License @@ -36,17 +36,17 @@ import java.util.Enumeration; * * @author Jérôme Euzenat * @version $Id$ + * + * This interface is morally deprecated in version 4.0 to the advantage of java.util.Properties + * //@deprecated */ public interface Parameters { - //public void setParameter(String name, Object value); public void setParameter(String name, String value); public void unsetParameter(String name); public String getParameter(String name); public Enumeration<String> getNames(); public void write(); - //public static Parameters read(String filename); - //public static Parameters read(Parameters params, String filename); } diff --git a/test/src/BasicAlignmentTest.java b/test/src/BasicAlignmentTest.java index 36ae7438..ffece5dc 100644 --- a/test/src/BasicAlignmentTest.java +++ b/test/src/BasicAlignmentTest.java @@ -1,7 +1,8 @@ /* * $Id$ * - * Copyright (C) INRIA, 2008-2009 + * Copyright (C) INRIA, 2008-2010 + * Copyright (C) FZI/Juergen Bock, 2010 * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by @@ -25,18 +26,26 @@ import static org.testng.Assert.assertNotNull; import static org.testng.Assert.assertTrue; import static org.testng.Assert.assertNull; import org.testng.annotations.BeforeClass; +import org.testng.annotations.AfterClass; import org.testng.annotations.Configuration; import org.testng.annotations.Test; //import org.testng.annotations.*; +import java.net.URI; + import fr.inrialpes.exmo.align.impl.BasicAlignment; +import fr.inrialpes.exmo.align.impl.BasicCell; +import fr.inrialpes.exmo.align.impl.BasicRelation; import fr.inrialpes.exmo.align.impl.URIAlignment; import fr.inrialpes.exmo.align.parser.AlignmentParser; import org.semanticweb.owl.align.Alignment; +import org.semanticweb.owl.align.Cell; +import org.semanticweb.owl.align.Relation; import org.semanticweb.owl.align.AlignmentException; public class BasicAlignmentTest { + private Alignment alignment = null; @BeforeClass(groups = { "full", "raw" }) @@ -62,5 +71,60 @@ public class BasicAlignmentTest { assertEquals( result.nbCells(), 1, "Alignment should contain 1 cell" ); } + private static Cell cell1, cell2, cell3, cell4, cell5; + /** + * @throws java.lang.Exception + */ + @BeforeClass(groups = { "full", "raw" }) + public static void setUpBeforeClass() throws Exception { + URI cls1 = URI.create( "http://example.org/test#cls1" ); + URI cls2 = URI.create( "http://example.org/test#cls2" ); + URI cls3 = URI.create( "http://example.org/test#cls3" ); + Relation rel1 = new BasicRelation( "=" ); + Relation rel2 = new BasicRelation( "<" ); + cell1 = new BasicCell( "1", cls1, cls2, rel1, 0); + cell2 = new BasicCell( "2", cls1, cls2, rel1, 0); + cell3 = new BasicCell( "3", cls1, cls3, rel1, 0); + cell4 = new BasicCell( "4", cls1, cls2, rel2, 0); + cell5 = new BasicCell( "5", cls1, cls2, rel1, .5); + } + + /** + * @throws java.lang.Exception + */ + @AfterClass(groups = { "raw", "full" }, alwaysRun = true ) + public static void tearDownAfterClass() throws Exception { + cell1 = cell2 = cell3 = cell4 = cell5 = null; + } + + @Test(groups = { "full", "raw" }) + public void testEquals() { + assertTrue( cell1.equals( cell1 ) ); // 1 == 1 + assertTrue( cell1.equals( cell2 ) ); // 1 == 2 + assertTrue( cell2.equals( cell1 ) ); // 2 == 1 + assertTrue( !cell1.equals( null ) ); // 1 != null + assertTrue( !cell1.equals( cell3 ) ); // 1 != 3 + assertTrue( !cell1.equals( cell4 ) ); // 1 != 4 + assertTrue( !cell1.equals( cell5 ) ); // 1 != 5 + } + + @Test(groups = { "full", "raw" }) + public void testEqualsObject() { + assertTrue( cell1.equals( (Object) cell1 ) ); // 1 == 1 + assertTrue( cell1.equals( (Object) cell2 ) ); // 1 == 2 + assertTrue( cell2.equals( (Object) cell1 ) ); // 2 == 1 + assertTrue( !cell1.equals( (Object) null ) ); // 1 != null + assertTrue( !cell1.equals( (Object) cell3 ) ); // 1 != 3 + assertTrue( !cell1.equals( (Object) cell4 ) ); // 1 != 4 + assertTrue( !cell1.equals( (Object) cell5 ) ); // 1 != 5 + } + + @Test(groups = { "full", "raw" }) + public void testHashCodeEquals() { + assertTrue( cell1.equals( cell2 ) && cell1.hashCode() == cell2.hashCode() ); + assertTrue( cell1.equals( cell1 ) && cell1.hashCode() == cell1.hashCode() ); + assertTrue( cell2.equals( cell1 ) && cell2.hashCode() == cell1.hashCode() ); + } + } -- GitLab