package org.osmtools.ra.traverse;
import static org.junit.Assert.*;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import org.junit.Test;
import org.osmtools.api.Section;
import org.osmtools.ra.TestBase;
import org.osmtools.ra.TestUtils;
import org.osmtools.ra.context.AnalyzerContext;
import org.osmtools.ra.data.Node;
import org.osmtools.ra.export.SectionContainer;
import org.osmtools.ra.graph.Graph;
import org.osmtools.ra.graph.IntersectionNode;
import org.osmtools.ra.segment.ConnectableSegment;
import org.springframework.beans.factory.annotation.Autowired;
public class TraverseServiceTest extends TestBase {
@Autowired
private TraverseService traverseService;
@Test
public void testTraverse() throws Exception {
long relationId = TestUtils.RELATION_12320_NECKARTAL_WEG;
AnalyzerContext analyzerContext = helperService.createGraphContext(relationId);
Graph intersectionWeb = analyzerContext.getGraphs().get(0);
Iterator<IntersectionNode> it = intersectionWeb.getLeaves().iterator();
IntersectionNode startNode = it.next();
IntersectionNode endNode = it.next();
List<Node> traverse = traverseService.traverse(intersectionWeb, startNode, endNode);
List<Section> sections = new ArrayList<Section>();
SectionContainer sectionContainer = new SectionContainer("test");
sectionContainer.addCoordinates(traverse);
sections.add(sectionContainer);
}
@Test
public void testFillInNodes() throws Exception {
List<Node> list = TestUtils.asNodes(1, 3, 1);
List<ConnectableSegment> segments = TestUtils
.asSegments(TestUtils.asNodes(1, 2, 3), TestUtils.asNodes(3, 4, 1));
List<Node> nodes = traverseService.fillInNodes(list, segments);
for (int x = 1; x <= 4; x++)
assertTrue("should contain node id: " + x, nodes.contains(TestUtils.getNode(x)));
}
}