source: josm/test/org/openstreetmap/josm/data/osm/visitor/AllNodesVisitorTest.java@ 146

Last change on this file since 146 was 146, checked in by imi, 18 years ago
  • added "Align nodes in a circle" patch from Matthew Newton.
  • added a couple of unit tests
File size: 1.6 KB
Line 
1package org.openstreetmap.josm.data.osm.visitor;
2
3import java.util.Collection;
4import java.util.Iterator;
5import java.util.LinkedList;
6
7import org.openstreetmap.josm.data.osm.Node;
8import org.openstreetmap.josm.data.osm.OsmPrimitive;
9import org.openstreetmap.josm.data.osm.Segment;
10import org.openstreetmap.josm.data.osm.Way;
11import org.openstreetmap.josm.testframework.MotherObject;
12
13public class AllNodesVisitorTest extends MotherObject {
14
15 private AllNodesVisitor v;
16
17 @Override protected void setUp() throws Exception {
18 super.setUp();
19 v = new AllNodesVisitor();
20 }
21
22 public void testVisitNode() {
23 Node node = createNode();
24 node.visit(v);
25 assertEquals(1, v.nodes.size());
26 assertSame(node, v.nodes.iterator().next());
27 }
28
29 public void testVisitSegment() {
30 Segment s = createSegment();
31 s.visit(v);
32 assertEquals(2, v.nodes.size());
33 Iterator<Node> it = v.nodes.iterator();
34 assertSame(s.from, it.next());
35 assertSame(s.to, it.next());
36 }
37
38 public void testVisitWay() {
39 Way w = createWay(createSegment());
40 w.visit(v);
41 int numberOfNodes = 2*w.segments.size();
42 assertEquals(numberOfNodes, v.nodes.size());
43 Iterator<Node> itNodes = v.nodes.iterator();
44 Iterator<Segment> it = w.segments.iterator();
45 for (int i = 0; i < numberOfNodes; ++i)
46 assertSame(i%2==0?it.next().from:it.next().to, itNodes.next());
47 }
48
49 public void testGetAllNodes() {
50 Collection<OsmPrimitive> all = new LinkedList<OsmPrimitive>();
51 all.add(createNode());
52 all.add(createSegment());
53 Collection<Node> nodes = AllNodesVisitor.getAllNodes(all);
54
55 assertEquals(3, nodes.size());
56 }
57
58}
Note: See TracBrowser for help on using the repository browser.