public void GetWorstRipTest()
 {
     // "тяжелое" ребро состоит из двух вершин:
     Rib badRib = new Rib(1, 3, 8);
     Rib actual = _track.GetWorstRib();
     Assert.IsTrue(actual == badRib);
 }
 public void GetBestRipTest()
 {
     // "легкое" ребро состоит из двух вершин:
     Rib bestRib = new Rib(0, 2, 5);
     Rib actual = _track.GetBestRib();
     Assert.IsTrue(actual == bestRib);
 }
 public UndirectedConnectedGraph(int[,] ribs, double[] weights)
 {
     CountOfNode = ribs[weights.Length - 1, 1];
     CountOfRibs = weights.Length;
     _ribs = new Rib[weights.Length];
     for (int i = 0; i < CountOfRibs; i++)
     {
         _ribs[i] = new Rib(ribs[i, 0], ribs[i, 1], weights[i]);
     }
 }
 public UndirectedConnectedGraph(int defaultCountOfNode)
 {
     CountOfNode = defaultCountOfNode;
     CountOfRibs = (defaultCountOfNode * defaultCountOfNode - defaultCountOfNode) / 2;
     _ribs = new Rib[CountOfRibs];
     int k = 0;
     for (int i = 0; i < defaultCountOfNode; i++)
     {
         for (int j = i + 1; j < defaultCountOfNode; j++)
         {
             _ribs[k] = new Rib(i, j, 1);
             k++;
         }
     }
 }
 public override Rib GetBestRib()
 {
     Rib[] ribs = new Rib[Genotype.Length - 1];
     for (int i = 0; i < ribs.Length; i++)
     {
         ribs[i] = _graph.GetRibByNodes(Genotype[i], Genotype[i + 1]);
     }
     double min = ribs[0].Weight;
     int j = 0;
     for (int i = 0; i < ribs.Length; i++)
     {
         if (min > ribs[i].Weight)
         {
             min = ribs[i].Weight;
             j = i;
         }
     }
     return ribs[j];
 }
 public void SetRib(int index, Rib newRib)
 {
     if (_ribs.Count() <= index || 0 > index)
         throw new UnexistingRibException();
     _ribs[index] = newRib;
 }
 public UndirectedConnectedGraph(Rib[] ribs)
 {
     CountOfNode = ribs[ribs.Length - 1].EndNode + 1;
     CountOfRibs = ribs.Length;
     _ribs = ribs;
 }
 public override Rib GetWorstRib()
 {
     Rib[] ribs = new Rib[Genotype.Length];
     for (int i = 0; i < ribs.Length - 1; i++)
     {
         ribs[i] = _graph.GetRibByNodes(Genotype[i], Genotype[i + 1]);
     }
     ribs[ribs.Length - 1] = _graph.GetRibByNodes(Genotype[0], Genotype[Genotype.Length - 1]);
     double max = ribs[0].Weight;
     int j = 0;
     for (int i = 0; i < Genotype.Length; i++)
     {
         if (max < ribs[i].Weight)
         {
             max = ribs[i].Weight;
             j = i;
         }
     }
     return ribs[j];
 }