diff --git a/model/src/main/java/lcsb/mapviewer/model/map/model/ModelComparator.java b/model/src/main/java/lcsb/mapviewer/model/map/model/ModelComparator.java index 2cbb637eb904b5c1cce28d186b455995dcb48403..8295ce7a1587454b694caa77a7aa99a76fe086f1 100644 --- a/model/src/main/java/lcsb/mapviewer/model/map/model/ModelComparator.java +++ b/model/src/main/java/lcsb/mapviewer/model/map/model/ModelComparator.java @@ -13,6 +13,8 @@ import lcsb.mapviewer.common.comparator.DoubleComparator; import lcsb.mapviewer.common.comparator.IntegerComparator; import lcsb.mapviewer.common.comparator.SetComparator; import lcsb.mapviewer.common.comparator.StringComparator; +import lcsb.mapviewer.model.map.MiriamData; +import lcsb.mapviewer.model.map.MiriamDataComparator; import lcsb.mapviewer.model.map.kinetics.SbmlFunction; import lcsb.mapviewer.model.map.kinetics.SbmlFunctionComparator; import lcsb.mapviewer.model.map.kinetics.SbmlParameter; @@ -148,6 +150,17 @@ public class ModelComparator extends Comparator<Model> { logger.debug("parameters different"); return status; } + + SetComparator<MiriamData> miriamDataSetComparator = new SetComparator<>(new MiriamDataComparator()); + + status = miriamDataSetComparator.compare(arg0.getMiriamData(), arg1.getMiriamData()); + if (status != 0) { + logger.debug("miriam data different"); + logger.debug(arg0.getMiriamData()); + logger.debug(arg1.getMiriamData()); + return status; + } + return 0; } diff --git a/model/src/main/java/lcsb/mapviewer/model/map/reaction/ReactionComparator.java b/model/src/main/java/lcsb/mapviewer/model/map/reaction/ReactionComparator.java index 91900fa4e99a5b758c56f5136743fc122da92887..9635897c8ac447d1b1c91654ea7cdf8b5c564eee 100644 --- a/model/src/main/java/lcsb/mapviewer/model/map/reaction/ReactionComparator.java +++ b/model/src/main/java/lcsb/mapviewer/model/map/reaction/ReactionComparator.java @@ -1,8 +1,5 @@ package lcsb.mapviewer.model.map.reaction; -import java.util.HashSet; -import java.util.Set; - import org.apache.log4j.Logger; import lcsb.mapviewer.common.Comparator; @@ -13,7 +10,6 @@ import lcsb.mapviewer.common.comparator.IntegerComparator; import lcsb.mapviewer.common.comparator.SetComparator; import lcsb.mapviewer.common.comparator.StringComparator; import lcsb.mapviewer.common.comparator.StringListComparator; -import lcsb.mapviewer.common.comparator.StringSetComparator; import lcsb.mapviewer.model.map.MiriamData; import lcsb.mapviewer.model.map.MiriamDataComparator; import lcsb.mapviewer.model.map.kinetics.SbmlKineticsComparator; diff --git a/model/src/test/java/lcsb/mapviewer/model/map/model/ModelComparatorTest.java b/model/src/test/java/lcsb/mapviewer/model/map/model/ModelComparatorTest.java index c2baa22270230d405a116b002cf837cab7840cfb..878adb6632dc51e8a98e1667bd437468c509d746 100644 --- a/model/src/test/java/lcsb/mapviewer/model/map/model/ModelComparatorTest.java +++ b/model/src/test/java/lcsb/mapviewer/model/map/model/ModelComparatorTest.java @@ -415,4 +415,21 @@ public class ModelComparatorTest { } } + @Test + public void testCompareAnnotations() throws Exception { + try { + Model model1 = getModel(); + Model model2 = getModel(); + model1.addMiriamData(new MiriamData(MiriamType.CHEBI, "CHEBI:12345")); + assertTrue("Models have different annotations", comparator.compare(model1, model2) != 0); + assertTrue(comparator.compare(model2, model1) != 0); + model2.addMiriamData(new MiriamData(MiriamType.CHEBI, "CHEBI:12345")); + assertEquals(0, comparator.compare(model1, model2)); + assertEquals(0, comparator.compare(model2, model1)); + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + } + }