public void PathConnectionSplitEmptyTest1() { var pathConnection = new PathConnections(); pathConnection.Split(0, 0, 0, true); Assert.IsTrue(pathConnection.IsEmpty()); }
public void PathConnectionComplexTest1() { var pathConnection = new PathConnections(); pathConnection.Add(0, 4); var pathConnectionTracker = new PathConnectionsChecksTracker(pathConnection); pathConnection.Split(0, 5, 1, true); Assert.IsTrue(pathConnectionTracker.HasConnection(0, 5)); Assert.IsTrue(pathConnectionTracker.HasConnection(1, 5)); Assert.IsTrue(pathConnectionTracker.HasConnection(5, 4)); Assert.IsTrue(pathConnectionTracker.AllConnectionsChecked()); pathConnection.Split(5, 6, 2, false); Assert.IsTrue(pathConnectionTracker.HasConnection(0, 5)); Assert.IsTrue(pathConnectionTracker.HasConnection(1, 5)); Assert.IsTrue(pathConnectionTracker.HasConnection(5, 6)); Assert.IsTrue(pathConnectionTracker.HasConnection(5, 2)); Assert.IsTrue(pathConnectionTracker.HasConnection(6, 4)); Assert.IsTrue(pathConnectionTracker.AllConnectionsChecked()); pathConnection.Split(6, 7, 3, true); Assert.IsTrue(pathConnectionTracker.HasConnection(0, 5)); Assert.IsTrue(pathConnectionTracker.HasConnection(1, 5)); Assert.IsTrue(pathConnectionTracker.HasConnection(5, 6)); Assert.IsTrue(pathConnectionTracker.HasConnection(5, 2)); Assert.IsTrue(pathConnectionTracker.HasConnection(6, 7)); Assert.IsTrue(pathConnectionTracker.HasConnection(3, 7)); Assert.IsTrue(pathConnectionTracker.HasConnection(7, 4)); Assert.IsTrue(pathConnectionTracker.AllConnectionsChecked()); }
public void PathConnectionSplitBasicOutTest1() { var pathConnection = new PathConnections(); pathConnection.Add(1, 2); pathConnection.Split(1, 4, 3, false); Assert.IsTrue(pathConnection.HasConnection(1, 4)); Assert.IsTrue(pathConnection.HasConnection(1, 3)); Assert.IsTrue(pathConnection.HasConnection(4, 2)); }
public void PathConnectionRemovePathIdTest1() { var pathConnection = new PathConnections(); pathConnection.Add(1, 3); pathConnection.Add(3, 1); pathConnection.Add(3, 4); pathConnection.RemovePathId(1); Assert.IsFalse(pathConnection.HasConnection(1, 3)); Assert.IsFalse(pathConnection.HasConnection(3, 1)); Assert.IsTrue(pathConnection.HasConnection(3, 4)); }
public void PathConnectionSplitBasicInTest2() { var pathConnection = new PathConnections(); pathConnection.Add(1, 3); pathConnection.Add(2, 3); pathConnection.Add(3, 4); pathConnection.Split(1, 6, 5, true); Assert.IsTrue(pathConnection.HasConnection(1, 6)); Assert.IsTrue(pathConnection.HasConnection(5, 6)); Assert.IsTrue(pathConnection.HasConnection(6, 3)); Assert.IsTrue(pathConnection.HasConnection(2, 3)); Assert.IsTrue(pathConnection.HasConnection(3, 4)); }
public void DuplicateRoadFilterNothingToRemoveTest1() { var filter = new DuplicateRoadFilter(10); var paths = PointUtils.CreateFromPoints( new List <GpsCoordinate>() { new GpsCoordinate() { x = 0 }, new GpsCoordinate() { x = 1 }, new GpsCoordinate() { x = 2 }, new GpsCoordinate() { x = 140 }, new GpsCoordinate() { x = 141 }, new GpsCoordinate() { x = 142 }, }, 2); var connections = new PathConnections(); filter.Process(paths, connections); var pathList = (List <PathData>)paths; Assert.AreEqual(2, pathList.Count); Assert.AreEqual(3, pathList[0].Points.Count); Assert.AreEqual(3, pathList[1].Points.Count); Assert.IsTrue(connections.IsEmpty()); }
public void PathConnectionBasicTest1() { var pathConnection = new PathConnections(); Assert.IsFalse(pathConnection.HasConnection(0, 0)); pathConnection.Add(0, 0); Assert.IsTrue(pathConnection.HasConnection(0, 0)); Assert.IsFalse(pathConnection.HasConnection(0, 1)); Assert.IsFalse(pathConnection.HasConnection(1, 0)); pathConnection.Add(0, 1); Assert.IsTrue(pathConnection.HasConnection(0, 1)); }
public void DuplicateRoadFilterSimpleConnectionTest2() { var pathsData = PointUtils.CreateFromPoints( new List <GpsCoordinate>() { new GpsCoordinate() { x = 0 }, new GpsCoordinate() { x = 1 }, new GpsCoordinate() { x = 2 }, new GpsCoordinate() { x = 0, y = 1 }, new GpsCoordinate() { x = 1, y = 1 }, new GpsCoordinate() { x = 2, y = 2 }, }, 2); var filter = new DuplicateRoadFilter(1); var connections = new PathConnections(); filter.Process(pathsData, connections); var pathList = (List <PathData>)pathsData; Assert.AreEqual(2, pathList.Count); Assert.IsFalse(connections.IsEmpty()); Assert.IsTrue(connections.HasConnection(0, 1)); Assert.IsTrue(!connections.HasConnection(1, 0)); }
public void PathConnectionRemoveTest1() { var pathConnection = new PathConnections(); Assert.IsFalse(pathConnection.HasConnection(0, 0)); pathConnection.Add(0, 0); Assert.IsFalse(pathConnection.IsEmpty()); Assert.IsTrue(pathConnection.HasConnection(0, 0)); Assert.IsFalse(pathConnection.HasConnection(0, 1)); Assert.IsFalse(pathConnection.Remove(0, 1)); Assert.IsTrue(pathConnection.Remove(0, 0)); Assert.IsTrue(pathConnection.IsEmpty()); }
public PathConnectionsChecksTracker(PathConnections connections) { m_connections = connections; m_checkedConnections = new Dictionary <int, HashSet <int> >(); }
public void DuplicateRoadFilter_V_NoParallelPointsTest1() { var pathsData = PointUtils.CreateFromPoints( new List <GpsCoordinate>() { new GpsCoordinate() { x = 0 }, new GpsCoordinate() { x = 1 }, new GpsCoordinate() { x = 2 }, new GpsCoordinate() { x = 3 }, new GpsCoordinate() { x = 4 }, new GpsCoordinate() { x = 5 }, new GpsCoordinate() { x = 0, y = 2 }, new GpsCoordinate() { x = 1, y = 1 }, new GpsCoordinate() { x = 2, y = 0 }, new GpsCoordinate() { x = 3, y = 0 }, new GpsCoordinate() { x = 4, y = 1 }, new GpsCoordinate() { x = 5, y = 2 }, }, 1.5f); var filter = new DuplicateRoadFilter(1); var connections = new PathConnections(); filter.Process(pathsData, connections); var pathList = (List <PathData>)pathsData; Assert.AreEqual(2, pathList.Count); Assert.AreEqual(6, pathList[0].Points.Count); Assert.AreEqual(0, pathList[0].Points[0].x); Assert.AreEqual(1, pathList[0].Points[1].x); Assert.AreEqual(2, pathList[0].Points[2].x); Assert.AreEqual(3, pathList[0].Points[3].x); Assert.AreEqual(4, pathList[0].Points[4].x); Assert.AreEqual(5, pathList[0].Points[5].x); Assert.AreEqual(6, pathList[1].Points.Count); Assert.AreEqual(2, pathList[1].Points[0].y); Assert.AreEqual(1, pathList[1].Points[1].y); Assert.AreEqual(0, pathList[1].Points[2].y); Assert.AreEqual(0, pathList[1].Points[3].y); Assert.AreEqual(1, pathList[1].Points[4].y); Assert.AreEqual(2, pathList[1].Points[5].y); Assert.IsTrue(connections.IsEmpty()); }
public void DuplicateRoadFilterRemovalAndSplitTest1() { var pathsData = PointUtils.CreateFromPoints( new List <GpsCoordinate>() { new GpsCoordinate() { x = 30 }, //0 new GpsCoordinate() { x = 35 }, new GpsCoordinate() { x = 46 }, //1 new GpsCoordinate() { x = 48 }, new GpsCoordinate() { x = 20 }, //2 new GpsCoordinate() { x = 25 }, new GpsCoordinate() { x = 27 }, new GpsCoordinate() { x = 31 }, //- new GpsCoordinate() { x = 34 }, //- new GpsCoordinate() { x = 36 }, //- new GpsCoordinate() { x = 37 }, //3 new GpsCoordinate() { x = 40 }, new GpsCoordinate() { x = 43 }, new GpsCoordinate() { x = 47 }, //- new GpsCoordinate() { x = 49 }, //- new GpsCoordinate() { x = 50 }, //4 new GpsCoordinate() { x = 51 }, }, 5); var filter = new DuplicateRoadFilter(1); var connections = new PathConnections(); filter.Process(pathsData, connections); var pathList = (List <PathData>)pathsData; Assert.AreEqual(5, pathList.Count); Assert.AreEqual(2, pathList[0].Points.Count); Assert.AreEqual(30, pathList[0].Points[0].x); Assert.AreEqual(35, pathList[0].Points[1].x); Assert.AreEqual(2, pathList[1].Points.Count); Assert.AreEqual(46, pathList[1].Points[0].x); Assert.AreEqual(48, pathList[1].Points[1].x); Assert.AreEqual(3, pathList[2].Points.Count); Assert.AreEqual(20, pathList[2].Points[0].x); Assert.AreEqual(25, pathList[2].Points[1].x); Assert.AreEqual(27, pathList[2].Points[2].x); Assert.AreEqual(3, pathList[3].Points.Count); Assert.AreEqual(37, pathList[3].Points[0].x); Assert.AreEqual(40, pathList[3].Points[1].x); Assert.AreEqual(43, pathList[3].Points[2].x); Assert.AreEqual(2, pathList[4].Points.Count); Assert.AreEqual(50, pathList[4].Points[0].x); Assert.AreEqual(51, pathList[4].Points[1].x); var connectionsChecker = new PathConnectionsChecksTracker(connections); Assert.IsFalse(connectionsChecker.IsEmpty()); Assert.IsTrue(connectionsChecker.HasConnection(2, 0)); Assert.IsTrue(connectionsChecker.HasConnection(0, 3)); Assert.IsTrue(connectionsChecker.HasConnection(3, 1)); Assert.IsTrue(connectionsChecker.HasConnection(1, 4)); Assert.IsTrue(connectionsChecker.AllConnectionsChecked()); }
public void RoadSplitterComplexConnectionTest1() { var paths = PointUtils.CreateFromPoints( new List <GpsCoordinate>() { new GpsCoordinate() { x = 0 }, // 0 new GpsCoordinate() { x = 1 }, new GpsCoordinate() { x = 2 }, new GpsCoordinate() { x = 3 }, new GpsCoordinate() { x = 4 }, new GpsCoordinate() { x = 5 }, new GpsCoordinate() { x = 6 }, new GpsCoordinate() { x = 1, y = 2 }, // 1 new GpsCoordinate() { x = 1, y = 1 }, new GpsCoordinate() { x = 1, y = 0.1 }, new GpsCoordinate() { x = 3, y = -0.1 }, // 2 new GpsCoordinate() { x = 3, y = -1 }, new GpsCoordinate() { x = 3, y = -2 }, new GpsCoordinate() { x = 5, y = 2 }, // 3 new GpsCoordinate() { x = 5, y = 1 }, new GpsCoordinate() { x = 5, y = 0.1 }, new GpsCoordinate() { x = 6.1 }, //4 new GpsCoordinate() { x = 7 }, new GpsCoordinate() { x = -2 }, // 5 new GpsCoordinate() { x = -1 }, new GpsCoordinate() { x = -0.1 }, }, 1); var pathConnections = new PathConnections(); pathConnections.Add(0, 4); pathConnections.Add(1, 0); pathConnections.Add(0, 2); pathConnections.Add(3, 0); pathConnections.Add(5, 0); var splitter = new RoadSplitter(0.5f, pathConnections); splitter.Process(paths); var connectionsTracker = new PathConnectionsChecksTracker(pathConnections); Assert.IsTrue(connectionsTracker.HasConnection(5, 0)); Assert.IsTrue(connectionsTracker.HasConnection(0, 6)); Assert.IsTrue(connectionsTracker.HasConnection(1, 6)); Assert.IsTrue(connectionsTracker.HasConnection(6, 7)); Assert.IsTrue(connectionsTracker.HasConnection(6, 2)); Assert.IsTrue(connectionsTracker.HasConnection(3, 8)); Assert.IsTrue(connectionsTracker.HasConnection(7, 8)); Assert.IsTrue(connectionsTracker.HasConnection(8, 4)); Assert.IsTrue(connectionsTracker.AllConnectionsChecked()); }