Пример #1
0
 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;
         }
     }
 }
Пример #2
0
        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);
        }