public void DeberiaAgregarEnlace() { Grafo g = new Grafo(); Nodo n = new Nodo("colo"); Nodo b = new Nodo("pepe"); Enlace e = new Enlace(55, n, b); g.AgregarNodo(n); g.AgregarNodo(b); bool cargo = g.AgregarEnlace(e); Assert.IsTrue(cargo); }
public void DeberiaBorrarEnlace() { Grafo g = new Grafo(); Nodo n = new Nodo("colo"); Nodo b = new Nodo("colo1"); Enlace e = new Enlace(55, n, b); g.AgregarNodo(n); g.AgregarNodo(b); g.AgregarEnlace(e); bool borro = g.BorrarEnlace(e); Assert.IsTrue(borro); }
public void NoDeberiaAgregarNodosConElMismoNombre() { Grafo g = new Grafo(); Nodo n = new Nodo("colo"); Nodo b = new Nodo("colo"); bool cargo = g.AgregarNodo(n); cargo = g.AgregarNodo(b); Assert.IsFalse(cargo); }
public void DeberiaRetornarListaCon1NodoSiElGrafoTiene1Nodo() { var g = new Grafo(); var n1 = new Nodo("N1"); var n2 = new Nodo("N2"); g.AgregarNodo(n1); g.AgregarNodo(n2); var e1 = new Enlace(2, n1, n2); g.AgregarEnlace(e1); var l = Kruskal.Ejecutar(g); Assert.IsNotNull(l); Assert.AreEqual(1, l.Count); }
public void DeberiaRetornarTruePorqueTodosLosNodosFueronVisitados() { Grafo g = new Grafo(); Nodo n1 = new Nodo("n1"); Nodo n2 = new Nodo("n2"); Enlace e = new Enlace(55, n1, n2); g.AgregarNodo(n1); g.AgregarNodo(n2); n1.visitado = true; n2.visitado = true; bool visitados = g.TodosVisitados(); Assert.IsTrue(visitados); }
public void DeberiaAgregarNodo() { Grafo g = new Grafo(); Nodo n = new Nodo("colo"); bool cargo = g.AgregarNodo(n); Assert.IsTrue(cargo); }
private void AgregaNodo(NodoVisual n) { g.AgregarNodo(n); this.nodos.Add(n); Desde.Items.Add(n.nombre); Hasta.Items.Add(n.nombre); }
// = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = // Agregar nodo // = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = private void btnNewNodo_Click(object sender, EventArgs e) { string cadena = txtNewNodo.Text; if (cadena.Trim() == "") { MessageBox.Show("El nodo no puede tener un nombre vacío."); return; } if (grafo.Buscar(cadena) != null) { MessageBox.Show("Ya existe un nodo con ese nombre."); return; } grafo.AgregarNodo(new Nodo(cadena)); ActualizarListasNodos(); }
public void DeberiaRetornarELEnlaceDeMenorPeso() { var g = new Grafo(); var n1 = new Nodo("N1"); var n2 = new Nodo("N2"); var n3 = new Nodo("N3"); var n4 = new Nodo("N4"); var n5 = new Nodo("N5"); var n6 = new Nodo("N6"); g.AgregarNodo(n1); g.AgregarNodo(n2); g.AgregarNodo(n3); g.AgregarNodo(n4); g.AgregarNodo(n5); g.AgregarNodo(n6); var e1 = new Enlace(2, n1, n2); var e2 = new Enlace(7, n2, n3); var e3 = new Enlace(3, n1, n3); var e4 = new Enlace(20, n1, n6); var e5 = new Enlace(5, n3, n6); var e6 = new Enlace(9, n1, n5); var e7 = new Enlace(3, n5, n4); g.AgregarEnlace(e1); g.AgregarEnlace(e2); g.AgregarEnlace(e3); g.AgregarEnlace(e4); g.AgregarEnlace(e5); g.AgregarEnlace(e6); g.AgregarEnlace(e7); n1.visitado = true; n2.visitado = true; var enlaces = g.GetEnlaces(n1); Enlace eMenor = Prim.EnlaceMenorPeso(enlaces); Assert.IsNotNull(eMenor); Assert.AreNotEqual(eMenor, e1); Assert.AreEqual(eMenor, e3); }
public void DeberiaDevolverLaListaDeEnlacesDe1NodoSiNoSeVisitoElOtroNodo() { Grafo g = new Grafo(); var n1 = new Nodo("N1"); var n2 = new Nodo("N2"); var n3 = new Nodo("N3"); var n4 = new Nodo("N4"); var n5 = new Nodo("N5"); var n6 = new Nodo("N6"); g.AgregarNodo(n1); g.AgregarNodo(n2); g.AgregarNodo(n3); g.AgregarNodo(n4); g.AgregarNodo(n5); g.AgregarNodo(n6); var e1 = new Enlace(2, n1, n2); var e2 = new Enlace(7, n2, n3); var e3 = new Enlace(3, n1, n3); var e4 = new Enlace(20, n1, n6); var e5 = new Enlace(5, n3, n6); var e6 = new Enlace(9, n1, n5); var e7 = new Enlace(3, n5, n4); g.AgregarEnlace(e1); g.AgregarEnlace(e2); g.AgregarEnlace(e3); g.AgregarEnlace(e4); g.AgregarEnlace(e5); g.AgregarEnlace(e6); g.AgregarEnlace(e7); n1.visitado = true; n2.visitado = true; List <Enlace> enlaces = g.GetEnlaces(n1); Assert.IsFalse(enlaces.Contains(e1)); // Esta visitado Assert.IsTrue(enlaces.Contains(e3)); Assert.IsTrue(enlaces.Contains(e4)); Assert.IsTrue(enlaces.Contains(e6)); Assert.IsFalse(enlaces.Contains(e7)); Assert.IsFalse(enlaces.Contains(e2)); Assert.IsFalse(enlaces.Contains(e5)); }
public void DeberiaDevolverLaListaDeEnlacesOrdenada() { Grafo g = new Grafo(); var n1 = new Nodo("N1"); var n2 = new Nodo("N2"); var n3 = new Nodo("N3"); var n4 = new Nodo("N4"); var n5 = new Nodo("N5"); var n6 = new Nodo("N6"); g.AgregarNodo(n1); g.AgregarNodo(n2); g.AgregarNodo(n3); g.AgregarNodo(n4); g.AgregarNodo(n5); g.AgregarNodo(n6); var e1 = new Enlace(2, n1, n2); var e2 = new Enlace(7, n2, n3); var e3 = new Enlace(3, n1, n3); var e4 = new Enlace(20, n1, n6); var e5 = new Enlace(5, n3, n6); var e6 = new Enlace(9, n1, n5); var e7 = new Enlace(3, n5, n4); g.AgregarEnlace(e1); g.AgregarEnlace(e2); g.AgregarEnlace(e3); g.AgregarEnlace(e4); g.AgregarEnlace(e5); g.AgregarEnlace(e6); g.AgregarEnlace(e7); List <Enlace> enlaces = g.GetEnlacesDeMenorAMayor(); Assert.AreEqual(2, enlaces[0].Peso); Assert.AreEqual(3, enlaces[1].Peso); Assert.AreEqual(3, enlaces[2].Peso); Assert.AreEqual(5, enlaces[3].Peso); Assert.AreEqual(7, enlaces[4].Peso); Assert.AreEqual(9, enlaces[5].Peso); Assert.AreEqual(20, enlaces[6].Peso); }
public void DeberiaRetornarARMGrafo() { var g = new Grafo(); var n1 = new Nodo("N1"); var n2 = new Nodo("N2"); var n3 = new Nodo("N3"); var n4 = new Nodo("N4"); var n5 = new Nodo("N5"); var n6 = new Nodo("N6"); g.AgregarNodo(n1); g.AgregarNodo(n2); g.AgregarNodo(n3); g.AgregarNodo(n4); g.AgregarNodo(n5); g.AgregarNodo(n6); var e1 = new Enlace(2, n1, n2); var e2 = new Enlace(7, n2, n3); var e3 = new Enlace(3, n1, n3); var e4 = new Enlace(20, n1, n6); var e5 = new Enlace(5, n3, n6); var e6 = new Enlace(9, n1, n5); var e7 = new Enlace(3, n5, n4); g.AgregarEnlace(e1); g.AgregarEnlace(e2); g.AgregarEnlace(e3); g.AgregarEnlace(e4); g.AgregarEnlace(e5); g.AgregarEnlace(e6); g.AgregarEnlace(e7); var l = Kruskal.Ejecutar(g); Assert.IsNotNull(l); Assert.AreEqual(5, l.Count); Assert.AreEqual(e1, l[0]); Assert.AreEqual(e3, l[1]); Assert.AreEqual(e7, l[2]); Assert.AreEqual(e5, l[3]); Assert.AreEqual(e6, l[4]); }
public void DeberiaDevolverLaListaDeEnlacesOrdenada() { Grafo g = new Grafo(); var n1 = new Nodo("N1"); var n2 = new Nodo("N2"); var n3 = new Nodo("N3"); var n4 = new Nodo("N4"); var n5 = new Nodo("N5"); var n6 = new Nodo("N6"); g.AgregarNodo(n1); g.AgregarNodo(n2); g.AgregarNodo(n3); g.AgregarNodo(n4); g.AgregarNodo(n5); g.AgregarNodo(n6); var e1 = new Enlace(2, n1, n2); var e2 = new Enlace(7, n2, n3); var e3 = new Enlace(3, n1, n3); var e4 = new Enlace(20, n1, n6); var e5 = new Enlace(5, n3, n6); var e6 = new Enlace(9, n1, n5); var e7 = new Enlace(3, n5, n4); g.AgregarEnlace(e1); g.AgregarEnlace(e2); g.AgregarEnlace(e3); g.AgregarEnlace(e4); g.AgregarEnlace(e5); g.AgregarEnlace(e6); g.AgregarEnlace(e7); List<Enlace> enlaces = g.GetEnlacesDeMenorAMayor(); Assert.AreEqual(2, enlaces[0].Peso); Assert.AreEqual(3, enlaces[1].Peso); Assert.AreEqual(3, enlaces[2].Peso); Assert.AreEqual(5, enlaces[3].Peso); Assert.AreEqual(7, enlaces[4].Peso); Assert.AreEqual(9, enlaces[5].Peso); Assert.AreEqual(20, enlaces[6].Peso); }
private void btnGrafo3_Click(object sender, EventArgs e) // crea grafo de 3 nodos { this.Reset(); var n1 = new NodoVisual(); n1.Center = new Point(13, 13); n1.nombre = "N1"; var n2 = new NodoVisual(); n2.Center = new Point(300, 200); n2.nombre = "N2"; var n3 = new NodoVisual(); n3.Center = new Point(450, 13); n3.nombre = "N3"; g.AgregarNodo(n1); g.AgregarNodo(n2); g.AgregarNodo(n3); this.nodos.Add(n1); this.nodos.Add(n2); this.nodos.Add(n3); var e1 = new EnlaceVisual(2, n1, n2); var e2 = new EnlaceVisual(7, n2, n3); var e3 = new EnlaceVisual(3, n1, n3); g.AgregarEnlace(e1); g.AgregarEnlace(e2); g.AgregarEnlace(e3); this.enlaces.Add(e1); this.enlaces.Add(e2); this.enlaces.Add(e3); this.Dibujar(); }
public void DeberiaDevolverLaListaDeEnlacesDe1NodoSiNoSeVisitoElOtroNodo() { Grafo g = new Grafo(); var n1 = new Nodo("N1"); var n2 = new Nodo("N2"); var n3 = new Nodo("N3"); var n4 = new Nodo("N4"); var n5 = new Nodo("N5"); var n6 = new Nodo("N6"); g.AgregarNodo(n1); g.AgregarNodo(n2); g.AgregarNodo(n3); g.AgregarNodo(n4); g.AgregarNodo(n5); g.AgregarNodo(n6); var e1 = new Enlace(2, n1, n2); var e2 = new Enlace(7, n2, n3); var e3 = new Enlace(3, n1, n3); var e4 = new Enlace(20, n1, n6); var e5 = new Enlace(5, n3, n6); var e6 = new Enlace(9, n1, n5); var e7 = new Enlace(3, n5, n4); g.AgregarEnlace(e1); g.AgregarEnlace(e2); g.AgregarEnlace(e3); g.AgregarEnlace(e4); g.AgregarEnlace(e5); g.AgregarEnlace(e6); g.AgregarEnlace(e7); n1.visitado = true; n2.visitado = true; List<Enlace> enlaces = g.GetEnlaces(n1); Assert.IsFalse(enlaces.Contains(e1)); // Esta visitado Assert.IsTrue(enlaces.Contains(e3)); Assert.IsTrue(enlaces.Contains(e4)); Assert.IsTrue(enlaces.Contains(e6)); Assert.IsFalse(enlaces.Contains(e7)); Assert.IsFalse(enlaces.Contains(e2)); Assert.IsFalse(enlaces.Contains(e5)); }