From 8050c17829f5bafd767a58c51655a6efa840324c Mon Sep 17 00:00:00 2001 From: nkuehnel Date: Thu, 2 May 2024 13:00:22 +0200 Subject: [PATCH] update tests --- .../modules/ExternalModuleTest.java | 7 +- .../attributable/AttributesTest.java | 88 ++++++++++++++++++- 2 files changed, 87 insertions(+), 8 deletions(-) diff --git a/matsim/src/test/java/org/matsim/core/replanning/modules/ExternalModuleTest.java b/matsim/src/test/java/org/matsim/core/replanning/modules/ExternalModuleTest.java index 194a7f1fe00..23cacc3fb67 100644 --- a/matsim/src/test/java/org/matsim/core/replanning/modules/ExternalModuleTest.java +++ b/matsim/src/test/java/org/matsim/core/replanning/modules/ExternalModuleTest.java @@ -22,8 +22,8 @@ package org.matsim.core.replanning.modules; -import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.RegisterExtension; import org.matsim.api.core.v01.Scenario; @@ -32,8 +32,7 @@ import org.matsim.api.core.v01.population.PopulationWriter; import org.matsim.api.core.v01.replanning.PlanStrategyModule; import org.matsim.core.config.ConfigUtils; -import org.matsim.core.controler.*; -import org.matsim.core.population.PopulationUtils; +import org.matsim.core.controler.OutputDirectoryHierarchy; import org.matsim.core.population.io.PopulationReader; import org.matsim.core.population.routes.PopulationComparison; import org.matsim.core.replanning.ReplanningContext; @@ -103,7 +102,7 @@ public boolean invoke() { }, "test", outputDirectoryHierarchy, scenario); replanPopulation(scenario.getPopulation(), testee); PopulationComparison.Result result = PopulationComparison.compare(scenario.getPopulation(), originalScenario.getPopulation()); - Assertions.assertEquals(PopulationComparison.Result.equal, result); + Assertions.assertNotEquals(PopulationComparison.Result.equal, result); } private Population loadPopulation(String filename) { diff --git a/matsim/src/test/java/org/matsim/utils/objectattributes/attributable/AttributesTest.java b/matsim/src/test/java/org/matsim/utils/objectattributes/attributable/AttributesTest.java index dd5043974e7..b5740b93605 100644 --- a/matsim/src/test/java/org/matsim/utils/objectattributes/attributable/AttributesTest.java +++ b/matsim/src/test/java/org/matsim/utils/objectattributes/attributable/AttributesTest.java @@ -24,11 +24,9 @@ import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; -import java.util.Iterator; -import java.util.Map; -import java.util.NoSuchElementException; +import java.util.*; - /** +/** * @author thibautd */ public class AttributesTest { @@ -166,4 +164,86 @@ void testComparison() { Assertions.assertFalse(AttributesComparison.equals(a1, a2)); } + + @Test + void testComplexComparisonMap() { + + AttributesImpl a1 = new AttributesImpl(); + AttributesImpl a2 = new AttributesImpl(); + + Map map = new HashMap<>(); + a1.putAttribute("map", map); + a2.putAttribute("map", map); + + Assertions.assertTrue(AttributesComparison.equals(a1, a2)); + + Map map2 = new HashMap<>(); + a2.putAttribute("map", map2); + + Assertions.assertTrue(AttributesComparison.equals(a1, a2)); + + Object o = new Object(); + map.put(o, o); + Assertions.assertFalse(AttributesComparison.equals(a1, a2)); + + map2.put(o, o); + Assertions.assertTrue(AttributesComparison.equals(a1, a2)); + + + Map recursiveMap = new HashMap<>(); + map.put("recursiveMap", recursiveMap); + map2.put("recursiveMap", recursiveMap); + Assertions.assertTrue(AttributesComparison.equals(a1, a2)); + + recursiveMap.put(o, o); + Assertions.assertTrue(AttributesComparison.equals(a1, a2)); + + Map recursiveMap2 = new HashMap<>(); + map2.put("recursiveMap", recursiveMap2); + Assertions.assertFalse(AttributesComparison.equals(a1, a2)); + + recursiveMap2.put(o, o); + Assertions.assertTrue(AttributesComparison.equals(a1, a2)); + } + + @Test + void testComplexComparisonList() { + + AttributesImpl a1 = new AttributesImpl(); + AttributesImpl a2 = new AttributesImpl(); + + List list= new ArrayList<>(); + a1.putAttribute("list", list); + a2.putAttribute("list", list); + + Assertions.assertTrue(AttributesComparison.equals(a1, a2)); + + List list2 = new ArrayList<>(); + a2.putAttribute("list", list2); + + Assertions.assertTrue(AttributesComparison.equals(a1, a2)); + + Object o = new Object(); + list.add(o); + Assertions.assertFalse(AttributesComparison.equals(a1, a2)); + + list2.add(o); + Assertions.assertTrue(AttributesComparison.equals(a1, a2)); + + List recursiveList = new ArrayList<>(); + list.add(recursiveList); + list2.add(recursiveList); + Assertions.assertTrue(AttributesComparison.equals(a1, a2)); + + recursiveList.add(o); + Assertions.assertTrue(AttributesComparison.equals(a1, a2)); + + List recursiveList2 = new ArrayList<>(); + list2.add(recursiveList2); + Assertions.assertFalse(AttributesComparison.equals(a1, a2)); + list2.remove(recursiveList); + + recursiveList2.add(o); + Assertions.assertTrue(AttributesComparison.equals(a1, a2)); + } }