source: josm/trunk/test/unit/org/openstreetmap/josm/data/osm/SimplePrimitiveIdTest.groovy@ 9130

Last change on this file since 9130 was 8496, checked in by simon04, 9 years ago

fix #11505 - Download objects: load a range of OSM objects (modified patch by windu.2b)

  • Property svn:eol-style set to native
File size: 4.2 KB
Line 
1package org.openstreetmap.josm.data.osm
2
3class SimplePrimitiveIdTest extends GroovyTestCase {
4
5 void testNode() {
6 assert SimplePrimitiveId.fromString("node/123") == new SimplePrimitiveId(123, OsmPrimitiveType.NODE)
7 assert SimplePrimitiveId.fromString("n123") == new SimplePrimitiveId(123, OsmPrimitiveType.NODE)
8 assert SimplePrimitiveId.fromString("node123") == new SimplePrimitiveId(123, OsmPrimitiveType.NODE)
9 assert SimplePrimitiveId.fromString("n123456789123456789") == new SimplePrimitiveId(123456789123456789, OsmPrimitiveType.NODE)
10 }
11
12 void testWay() {
13 assert SimplePrimitiveId.fromString("way/123") == new SimplePrimitiveId(123, OsmPrimitiveType.WAY)
14 assert SimplePrimitiveId.fromString("w123") == new SimplePrimitiveId(123, OsmPrimitiveType.WAY)
15 assert SimplePrimitiveId.fromString("way123") == new SimplePrimitiveId(123, OsmPrimitiveType.WAY)
16 assert SimplePrimitiveId.fromString("w123456789123456789") == new SimplePrimitiveId(123456789123456789, OsmPrimitiveType.WAY)
17 }
18
19 void testRelation() {
20 assert SimplePrimitiveId.fromString("relation/123") == new SimplePrimitiveId(123, OsmPrimitiveType.RELATION)
21 assert SimplePrimitiveId.fromString("r123") == new SimplePrimitiveId(123, OsmPrimitiveType.RELATION)
22 assert SimplePrimitiveId.fromString("rel123") == new SimplePrimitiveId(123, OsmPrimitiveType.RELATION)
23 assert SimplePrimitiveId.fromString("relation123") == new SimplePrimitiveId(123, OsmPrimitiveType.RELATION)
24 }
25
26 void testBad() {
27 shouldFail { SimplePrimitiveId.fromString("foobar") }
28 }
29
30 void testFuzzy() {
31 assert SimplePrimitiveId.fuzzyParse("foo relation/123 bar").toString() == "[relation 123]"
32 assert SimplePrimitiveId.fuzzyParse("foo relation/123 and way/345 but also node/789").toString() == "[relation 123, way 345, node 789]"
33 assert SimplePrimitiveId.fuzzyParse("foo relation/123-24 and way/345-346 but also node/789").toString() == "[relation 123, relation 124, way 345, way 346, node 789]"
34 }
35
36 void testFromCopyAction() {
37 assert SimplePrimitiveId.fromString("node 123") == new SimplePrimitiveId(123, OsmPrimitiveType.NODE)
38 assert SimplePrimitiveId.fromString("way 123") == new SimplePrimitiveId(123, OsmPrimitiveType.WAY)
39 assert SimplePrimitiveId.fromString("relation 123") == new SimplePrimitiveId(123, OsmPrimitiveType.RELATION)
40 }
41
42 void testMultipleIDs() {
43 assert SimplePrimitiveId.multipleFromString("node/234").toString() == "[node 234]"
44 assert SimplePrimitiveId.multipleFromString("node/234-234").toString() == "[node 234]"
45 assert SimplePrimitiveId.multipleFromString("node/2-1").toString() == "[]"
46 assert SimplePrimitiveId.multipleFromString("node/123-124").toString() == "[node 123, node 124]"
47 assert SimplePrimitiveId.multipleFromString("n/123-124").toString() == "[node 123, node 124]"
48 assert SimplePrimitiveId.multipleFromString("node123-126").toString() == "[node 123, node 124, node 125, node 126]"
49 assert SimplePrimitiveId.multipleFromString("way/123-123").toString() == "[way 123]"
50 assert SimplePrimitiveId.multipleFromString("w/123-127").toString() == "[way 123, way 124, way 125, way 126, way 127]"
51 assert SimplePrimitiveId.multipleFromString("way123-125").toString() == "[way 123, way 124, way 125]"
52 assert SimplePrimitiveId.multipleFromString("relation/123-125").toString() == "[relation 123, relation 124, relation 125]"
53 assert SimplePrimitiveId.multipleFromString("r/123-125").toString() == "[relation 123, relation 124, relation 125]"
54 assert SimplePrimitiveId.multipleFromString("relation123-125").toString() == "[relation 123, relation 124, relation 125]"
55 assert SimplePrimitiveId.multipleFromString("node/234-5").toString() == "[node 234, node 235]"
56 assert SimplePrimitiveId.multipleFromString("node/234-35").toString() == "[node 234, node 235]"
57 assert SimplePrimitiveId.multipleFromString("node/234-235").toString() == "[node 234, node 235]"
58 assert SimplePrimitiveId.multipleFromString("node/998-1001").toString() == "[node 998, node 999, node 1000, node 1001]"
59 shouldFail { SimplePrimitiveId.multipleFromString("foo node123 bar") }
60 }
61}
Note: See TracBrowser for help on using the repository browser.