Ticket #22504: 0001-Add-circularize-selected-ways-unit-test.patch
| File 0001-Add-circularize-selected-ways-unit-test.patch, 11.0 KB (added by , 3 years ago) |
|---|
-
new file test/data/alignCircleBuildingsAfter.osm
From f54075f5222e0222aa666e214d133dd28e21df1d Mon Sep 17 00:00:00 2001 From: Jiri Vlasak <jiri.hubacek@gmail.com> Date: Wed, 16 Nov 2022 23:02:34 +0100 Subject: [PATCH 1/3] Add circularize selected ways unit test --- test/data/alignCircleBuildingsAfter.osm | 69 +++++++++++++++++++ test/data/alignCircleBuildingsBefore.osm | 69 +++++++++++++++++++ .../josm/actions/AlignInCircleActionTest.java | 64 +++++++++++++++++ 3 files changed, 202 insertions(+) create mode 100644 test/data/alignCircleBuildingsAfter.osm create mode 100644 test/data/alignCircleBuildingsBefore.osm diff --git a/test/data/alignCircleBuildingsAfter.osm b/test/data/alignCircleBuildingsAfter.osm new file mode 100644 index 0000000000..16b8bfc149
- + 1 <?xml version='1.0' encoding='UTF-8'?> 2 <osm version='0.6' generator='JOSM'> 3 <node id='-201' action='modify' visible='true' lat='8.18118921225' lon='32.15483196352' /> 4 <node id='-202' action='modify' visible='true' lat='8.18119339651' lon='32.15483624212' /> 5 <node id='-203' action='modify' visible='true' lat='8.1811987769' lon='32.15483881688' /> 6 <node id='-204' action='modify' visible='true' lat='8.18120470447' lon='32.15483937724' /> 7 <node id='-205' action='modify' visible='true' lat='8.18121046427' lon='32.15483785561' /> 8 <node id='-206' action='modify' visible='true' lat='8.18121536158' lon='32.15483443553' /> 9 <node id='-207' action='modify' visible='true' lat='8.18121880571' lon='32.15482952951' /> 10 <node id='-208' action='modify' visible='true' lat='8.18122038125' lon='32.15482372927' /> 11 <node id='-209' action='modify' visible='true' lat='8.18121989817' lon='32.15481773443' /> 12 <node id='-210' action='modify' visible='true' lat='8.18121741473' lon='32.15481226805' /> 13 <node id='-211' action='modify' visible='true' lat='8.18121323048' lon='32.15480798944' /> 14 <node id='-212' action='modify' visible='true' lat='8.18120785009' lon='32.15480541468' /> 15 <node id='-213' action='modify' visible='true' lat='8.18120192252' lon='32.15480485432' /> 16 <node id='-214' action='modify' visible='true' lat='8.18119616272' lon='32.15480637595' /> 17 <node id='-215' action='modify' visible='true' lat='8.18119126541' lon='32.15480979603' /> 18 <node id='-216' action='modify' visible='true' lat='8.18118782128' lon='32.15481470206' /> 19 <node id='-217' action='modify' visible='true' lat='8.18118624574' lon='32.15482050229' /> 20 <node id='-218' action='modify' visible='true' lat='8.18118672882' lon='32.15482649713' /> 21 <node id='-101' action='modify' visible='true' lat='8.18124542497' lon='32.15480713489' /> 22 <node id='-102' action='modify' visible='true' lat='8.18125347379' lon='32.15481337498' /> 23 <node id='-103' action='modify' visible='true' lat='8.18126361593' lon='32.1548136437' /> 24 <node id='-104' action='modify' visible='true' lat='8.18127197743' lon='32.1548078384' /> 25 <node id='-105' action='modify' visible='true' lat='8.18127536449' lon='32.15479817652' /> 26 <node id='-106' action='modify' visible='true' lat='8.18127248336' lon='32.15478834856' /> 27 <node id='-107' action='modify' visible='true' lat='8.18126443454' lon='32.15478210847' /> 28 <node id='-108' action='modify' visible='true' lat='8.18125429241' lon='32.15478183976' /> 29 <node id='-109' action='modify' visible='true' lat='8.1812459309' lon='32.15478764505' /> 30 <node id='-110' action='modify' visible='true' lat='8.18124254385' lon='32.15479730693' /> 31 <way id='-200' action='modify' visible='true'> 32 <nd ref='-201' /> 33 <nd ref='-202' /> 34 <nd ref='-203' /> 35 <nd ref='-204' /> 36 <nd ref='-205' /> 37 <nd ref='-206' /> 38 <nd ref='-207' /> 39 <nd ref='-208' /> 40 <nd ref='-209' /> 41 <nd ref='-210' /> 42 <nd ref='-211' /> 43 <nd ref='-212' /> 44 <nd ref='-213' /> 45 <nd ref='-214' /> 46 <nd ref='-215' /> 47 <nd ref='-216' /> 48 <nd ref='-217' /> 49 <nd ref='-218' /> 50 <nd ref='-201' /> 51 <tag k='building' v='yes' /> 52 <tag k='test' v='second' /> 53 </way> 54 <way id='-100' action='modify' visible='true'> 55 <nd ref='-101' /> 56 <nd ref='-102' /> 57 <nd ref='-103' /> 58 <nd ref='-104' /> 59 <nd ref='-105' /> 60 <nd ref='-106' /> 61 <nd ref='-107' /> 62 <nd ref='-108' /> 63 <nd ref='-109' /> 64 <nd ref='-110' /> 65 <nd ref='-101' /> 66 <tag k='building' v='yes' /> 67 <tag k='test' v='first' /> 68 </way> 69 </osm> -
new file test/data/alignCircleBuildingsBefore.osm
diff --git a/test/data/alignCircleBuildingsBefore.osm b/test/data/alignCircleBuildingsBefore.osm new file mode 100644 index 0000000000..d10e42839c
- + 1 <?xml version='1.0' encoding='UTF-8'?> 2 <osm version='0.6' generator='JOSM'> 3 <node id='-201' action='modify' visible='true' lat='8.18118921225' lon='32.15483196352' /> 4 <node id='-202' action='modify' visible='true' lat='8.18118681129' lon='32.1548268042' /> 5 <node id='-203' action='modify' visible='true' lat='8.18118619859' lon='32.15482113682' /> 6 <node id='-204' action='modify' visible='true' lat='8.18118744056' lon='32.15481557553' /> 7 <node id='-205' action='modify' visible='true' lat='8.18119040259' lon='32.15481072297' /> 8 <node id='-206' action='modify' visible='true' lat='8.18119476373' lon='32.154807105' /> 9 <node id='-207' action='modify' visible='true' lat='8.18120005137' lon='32.15480511368' /> 10 <node id='-208' action='modify' visible='true' lat='8.1812056925' lon='32.15480496481' /> 11 <node id='-209' action='modify' visible='true' lat='8.18121107584' lon='32.1548066745' /> 12 <node id='-210' action='modify' visible='true' lat='8.18121561801' lon='32.1548100575' /> 13 <node id='-211' action='modify' visible='true' lat='8.1812188268' lon='32.1548147472' /> 14 <node id='-212' action='modify' visible='true' lat='8.18122035447' lon='32.15482023541' /> 15 <node id='-213' action='modify' visible='true' lat='8.18122003548' lon='32.15482592737' /> 16 <node id='-214' action='modify' visible='true' lat='8.18121790441' lon='32.1548312063' /> 17 <node id='-215' action='modify' visible='true' lat='8.18120930109' lon='32.15483834355' /> 18 <node id='-216' action='modify' visible='true' lat='8.18120376113' lon='32.15483942844' /> 19 <node id='-217' action='modify' visible='true' lat='8.18119817269' lon='32.15483863724' /> 20 <node id='-218' action='modify' visible='true' lat='8.18119314131' lon='32.15483605568' /> 21 <node id='-101' action='modify' visible='true' lat='8.18124560591' lon='32.15480700927' /> 22 <node id='-102' action='modify' visible='true' lat='8.18125370049' lon='32.15481306718' /> 23 <node id='-103' action='modify' visible='true' lat='8.18126443735' lon='32.15481416717' /> 24 <node id='-104' action='modify' visible='true' lat='8.18127197775' lon='32.15480725579' /> 25 <node id='-105' action='modify' visible='true' lat='8.18127517917' lon='32.15479760626' /> 26 <node id='-106' action='modify' visible='true' lat='8.18127215504' lon='32.15478789853' /> 27 <node id='-107' action='modify' visible='true' lat='8.18126406047' lon='32.15478184063' /> 28 <node id='-108' action='modify' visible='true' lat='8.18125398734' lon='32.15478174647' /> 29 <node id='-109' action='modify' visible='true' lat='8.1812457832' lon='32.15478765201' /> 30 <node id='-110' action='modify' visible='true' lat='8.18124258179' lon='32.15479730155' /> 31 <way id='-200' action='modify' visible='true'> 32 <nd ref='-201' /> 33 <nd ref='-202' /> 34 <nd ref='-203' /> 35 <nd ref='-204' /> 36 <nd ref='-205' /> 37 <nd ref='-206' /> 38 <nd ref='-207' /> 39 <nd ref='-208' /> 40 <nd ref='-209' /> 41 <nd ref='-210' /> 42 <nd ref='-211' /> 43 <nd ref='-212' /> 44 <nd ref='-213' /> 45 <nd ref='-214' /> 46 <nd ref='-215' /> 47 <nd ref='-216' /> 48 <nd ref='-217' /> 49 <nd ref='-218' /> 50 <nd ref='-201' /> 51 <tag k='building' v='yes' /> 52 <tag k='test' v='second' /> 53 </way> 54 <way id='-100' action='modify' visible='true'> 55 <nd ref='-101' /> 56 <nd ref='-102' /> 57 <nd ref='-103' /> 58 <nd ref='-104' /> 59 <nd ref='-105' /> 60 <nd ref='-106' /> 61 <nd ref='-107' /> 62 <nd ref='-108' /> 63 <nd ref='-109' /> 64 <nd ref='-110' /> 65 <nd ref='-101' /> 66 <tag k='building' v='yes' /> 67 <tag k='test' v='first' /> 68 </way> 69 </osm> -
test/unit/org/openstreetmap/josm/actions/AlignInCircleActionTest.java
diff --git a/test/unit/org/openstreetmap/josm/actions/AlignInCircleActionTest.java b/test/unit/org/openstreetmap/josm/actions/AlignInCircleActionTest.java index 5f33504bbb..1643bb4568 100644
a b final class AlignInCircleActionTest { 181 181 } 182 182 } 183 183 } 184 185 /** 186 * Test case: Circularize a batch of (two) buildings. 187 * @throws Exception if an error occurs 188 */ 189 @Test 190 void testMultipleWaysSelected() throws Exception 191 { 192 DataSet before = OsmReader.parseDataSet(Files.newInputStream(Paths.get(TestUtils.getTestDataRoot(), "alignCircleBuildingsBefore.osm")), null); 193 Way firstBefore = null; 194 Way secondBefore = null; 195 196 for (Way w : before.getWays()) { 197 if ("first".equals(w.get("test"))) { 198 firstBefore = w; 199 } else if ("second".equals(w.get("test"))) { 200 secondBefore = w; 201 } else { 202 assertTrue(false); // must not be possible 203 } 204 } 205 206 assertNotNull(firstBefore); 207 assertNotNull(secondBefore); 208 209 before.clearSelection(); 210 before.addSelected(firstBefore); 211 before.addSelected(secondBefore); 212 213 Command c = AlignInCircleAction.buildCommand(before); 214 c.executeCommand(); 215 216 DataSet after = OsmReader.parseDataSet(Files.newInputStream(Paths.get(TestUtils.getTestDataRoot(), "alignCircleBuildingsAfter.osm")), null); 217 Way firstAfter = null; 218 Way secondAfter = null; 219 220 for (Way w : after.getWays()) { 221 if ("first".equals(w.get("test"))) { 222 firstAfter = w; 223 } else if ("second".equals(w.get("test"))) { 224 secondAfter = w; 225 } else { 226 assertTrue(false); // must not be possible 227 } 228 } 229 230 assertNotNull(firstAfter); 231 assertEquals(firstAfter.getNodesCount(), firstBefore.getNodesCount()); 232 for (int i = 0; i < firstAfter.getNodesCount(); i++) { 233 Node bn = firstBefore.getNode(i); 234 Node an = firstAfter.getNode(i); 235 assertEquals(bn.lat(), an.lat(), 1e-5); 236 assertEquals(bn.lon(), an.lon(), 1e-5); 237 } 238 239 assertNotNull(secondAfter); 240 assertEquals(secondAfter.getNodesCount(), secondBefore.getNodesCount()); 241 for (int i = 0; i < secondAfter.getNodesCount(); i++) { 242 Node bn = secondBefore.getNode(i); 243 Node an = secondAfter.getNode(i); 244 assertEquals(bn.lat(), an.lat(), 1e-5); 245 assertEquals(bn.lon(), an.lon(), 1e-5); 246 } 247 } 184 248 }
