internal void AddEdge(GrafData data) { foreach (var circle in _circleList) { if (_checkedVertex.Count == 0) { if (circle.Check) { _checkedVertex.Add(circle); return; } } if (circle.Check && circle != _checkedVertex[0]) { _checkedVertex.Add(circle); foreach (var line in _lineList) { if (data.CheckEdgeRoute) { if (line.NumStartVertex == _checkedVertex[0].Number && line.NumFinishVertex == _checkedVertex[1].Number) { return; } } else { if (line.NumStartVertex == _checkedVertex[0].Number && line.NumFinishVertex == _checkedVertex[1].Number || line.NumStartVertex == _checkedVertex[1].Number && line.NumFinishVertex == _checkedVertex[0].Number) { return; } } } _graf.AddEdge(_checkedVertex[0].Number, _checkedVertex[1].Number, data.Weight, data.CheckEdgeRoute); _lineList.Add(new LineDrawer ( _checkedVertex[0].Point, _checkedVertex[1].Point, data.Weight, _checkedVertex[0].Number, _checkedVertex[1].Number) ); _checkedVertex.Clear(); foreach (var circle2 in _circleList) { circle2.Check = false; } return; } } }
public void BreadthFirstSearch_0_7_returned_7() { _graf.AddEdge(0, 1); _graf.AddEdge(0, 2); _graf.AddEdge(0, 7); _graf.AddEdge(1, 4); _graf.AddEdge(2, 3); _graf.AddEdge(2, 4); _graf.AddEdge(3, 5); _graf.AddEdge(3, 6); _graf.AddEdge(6, 7); int startNode = 0; int value = 7; int expected = 7; int actual = _graf.BreadthFirstSearch(startNode, value); Assert.AreEqual(expected, actual); }