public void PruebaProcesarTodo() { #region Preparación. // Crea el objeto a probar. IEscuchadorDeEstatus escuchadorDeEstatus = new EscuchadorDeEstatusPorOmisión(); ManejadorDeMapa manejadorDeMapa = new ManejadorDeMapa(escuchadorDeEstatus); ManejadorDePdis objectoDePrueba = new ManejadorDePdis(manejadorDeMapa, new List <Pdi>(), escuchadorDeEstatus); // Caso de prueba. Caso[] casos = new[] { // Tipo, Nombre Original, Nombre Corregido new Caso("0x2a06", "RES. LA COMIDA", "RESTAURANTE LA COMIDA"), // Cambia Nombre. new Caso("0x2a07", "RES LA COMIDA", "RESTAURANTE LA COMIDA"), // Cambia nombre y elimina espacios. new Caso("0x9999", "RES LA COMIDA", "RES LA COMIDA"), // Este no debería cambiar porque el tipo no está en el rango. new Caso("0x6402", "CONJ. RESD. LAS TORRES", "CONJUNTO RESIDENCIAL LAS TORRES"), // Cambia Nombre. }; // Crea los PDIs originales. IList <Pdi> pdis = objectoDePrueba.Elementos; const string clase = "POI"; for (int i = 0; i < casos.Length; ++i) { Caso caso = casos[i]; List <Campo> campos = new List <Campo> { new CampoNombre(caso.NombreOriginal), new CampoTipo(caso.Tipo) }; Pdi pdi = new Pdi(manejadorDeMapa, i, clase, campos); pdis.Add(pdi); } // Crea los PDIs finales. IList <Pdi> pdisEsperados = new List <Pdi>(pdis.Count); for (int i = 0; i < pdis.Count; ++i) { Pdi pdiEsperado = (Pdi)pdis[i].Clone(); string nombreEsperado = casos[i].NombreCorregido; if (pdiEsperado.Nombre != nombreEsperado) { pdiEsperado.ActualizaNombre(nombreEsperado, ""); } pdisEsperados.Add(pdiEsperado); } #endregion // Llama al método bajo prueba. objectoDePrueba.ProcesarTodo(); #region Prueba propiedades. // Prueba propiedad Elementos. for (int i = 0; i < objectoDePrueba.Elementos.Count; ++i) { Assert.That(objectoDePrueba.Elementos[i].Nombre, Is.EqualTo(pdisEsperados[i].Nombre), "Elementos[" + i + "].Nombre"); } #endregion }
/// <summary> /// Procesa todo lo que se puede procesar. /// </summary> /// <returns>El número de cambios.</returns> public int ProcesarTodo() { int númeroDeProblemas = 0; númeroDeProblemas += ManejadorDePdis.ProcesarTodo(); númeroDeProblemas += ManejadorDeVías.ProcesarTodo(); EscuchadorDeEstatus.Estatus = string.Format("Se detectaron {0} problemas", númeroDeProblemas); return(númeroDeProblemas); }
public void PruebaConstructor() { // Preparación. IEscuchadorDeEstatus escuchadorDeEstatus = new EscuchadorDeEstatusPorOmisión(); ManejadorDeMapa manejadorDeMapa = new ManejadorDeMapa(escuchadorDeEstatus); ManejadorDePdis manejadorDePdis = new ManejadorDePdis(manejadorDeMapa, new List <Pdi>(), escuchadorDeEstatus); // Llama al contructor bajo prueba. var objectoDePrueba = new BuscadorDeErrores(manejadorDePdis, escuchadorDeEstatus); // Prueba propiedades. Assert.That(objectoDePrueba.NúmeroDeElementos, Is.EqualTo(0), "NúmeroDeElementos"); Assert.That(objectoDePrueba.NúmeroDeProblemasDetectados, Is.EqualTo(0), "NúmeroDeProblemasDetectados"); }
/// <summary> /// Constructor. /// </summary> /// <param name="elEscuchadorDeEstatus">El escuchador de estatus.</param> /// <param name="elServicioDiálogoAbrirArchivos">El servicio de diálogo para abrir archivos.</param> public ManejadorDeMapa( IEscuchadorDeEstatus elEscuchadorDeEstatus, IOpenFileDialogService elServicioDiálogoAbrirArchivos) { Trace.WriteLine("Inicializando ManejadorDeMapa"); EscuchadorDeEstatus = elEscuchadorDeEstatus; ManejadorDeElementos = new ManejadorDeElementos(this, misElementos, elEscuchadorDeEstatus); ManejadorDePdis = new ManejadorDePdis(this, misPdis, elEscuchadorDeEstatus); ManejadorDeVías = new ManejadorDeVías(this, misVías, elEscuchadorDeEstatus, elServicioDiálogoAbrirArchivos); Polígonos = new List <Polígono>(); Polilíneas = new List <Polilínea>(); Ciudades = new List <Ciudad>(); NodosRuteables = new Dictionary <int, IList <Nodo> >(); }
public void PruebaConstructor() { // Preparación. IEscuchadorDeEstatus escuchadorDeEstatus = new EscuchadorDeEstatusPorOmisión(); ManejadorDeMapa manejadorDeMapa = new ManejadorDeMapa(escuchadorDeEstatus); IList <Pdi> pdis = new List <Pdi>(); // Llama al contructor bajo prueba. ManejadorDePdis objectoDePrueba = new ManejadorDePdis(manejadorDeMapa, pdis, escuchadorDeEstatus); // Prueba propiedades. Assert.That(objectoDePrueba.Elementos, Is.EqualTo(pdis), "Elementos"); Assert.That(objectoDePrueba.EscuchadorDeEstatus, Is.EqualTo(escuchadorDeEstatus), "EscuchadorDeEstatus"); Assert.That(objectoDePrueba.ManejadorDeMapa, Is.EqualTo(manejadorDeMapa), "ManejadorDeMapa"); }
public void PruebaProcesa() { #region Preparación. // Crea el objeto a probar. IEscuchadorDeEstatus escuchadorDeEstatus = new EscuchadorDeEstatusPorOmisión(); ManejadorDeMapa manejadorDeMapa = new ManejadorDeMapa(escuchadorDeEstatus); ManejadorDePdis manejadorDePdis = new ManejadorDePdis(manejadorDeMapa, new List <Pdi>(), escuchadorDeEstatus); ArregladorGeneral objectoDePrueba = new ArregladorGeneral(manejadorDePdis, escuchadorDeEstatus); // Caso de prueba. Caso[] casos = new[] { // Tipo, Nombre Original, Nombre Corregido new Caso("0x2a06", "RES LA COMIDA", "RESTAURANTE LA COMIDA"), // Cambia Nombre. new Caso("0x2a07", "RES LA COMIDA", "RESTAURANTE LA COMIDA"), // Cambia nombre y elimina espacios. new Caso("0x9999", "RES LA COMIDA", "RES LA COMIDA"), // Este no debería cambiar porque el tipo no está en el rango. new Caso("0x6402", "CONJ RES LAS TORRES", "CONJUNTO RESIDENCIAL LAS TORRES"), // Cambia Nombre. }; const int númeroDeProblemasDetectados = 6; // Crea los elementos. IList <Pdi> pdis = manejadorDePdis.Elementos; const string clase = "POI"; for (int i = 0; i < casos.Length; ++i) { Caso caso = casos[i]; List <Campo> campos = new List <Campo> { new CampoNombre(caso.NombreOriginal), new CampoTipo(caso.Tipo) }; Pdi pdi = new Pdi(manejadorDeMapa, i, clase, campos); pdis.Add(pdi); } #endregion // Llama al método bajo prueba. objectoDePrueba.Procesa(); // Prueba propiedades. Assert.That(objectoDePrueba.NúmeroDeElementos, Is.EqualTo(pdis.Count), "NúmeroDeElementos"); Assert.That(objectoDePrueba.NúmeroDeProblemasDetectados, Is.EqualTo(númeroDeProblemasDetectados), "NúmeroDeProblemasDetectados"); // Prueba los nobres de los PDIs. for (int i = 0; i < casos.Length; ++i) { Assert.That(pdis[i].Nombre, Is.EqualTo(casos[i].NombreCorregido), "PDI[" + i + "].Nombre"); } }
public void PruebaProcesaCaso1() { #region Preparación. // Crea el objeto a probar. IEscuchadorDeEstatus escuchadorDeEstatus = new EscuchadorDeEstatusPorOmisión(); ManejadorDeMapa manejadorDeMapa = new ManejadorDeMapa(escuchadorDeEstatus); ManejadorDePdis manejadorDePdis = new ManejadorDePdis(manejadorDeMapa, new List <Pdi>(), escuchadorDeEstatus); var objectoDePrueba = new BuscadorDeErrores(manejadorDePdis, escuchadorDeEstatus); // Crea los elementos. IList <Pdi> pdis = manejadorDePdis.Elementos; const string clase = "POI"; var campoCoordenadas = new CampoCoordenadas("Data", 0, new[] { new Coordenadas(10.16300, -66.00000), new Coordenadas(10.16199, -65.99850), new Coordenadas(10.16010, -65.99591), }); var pdiNoCiudad = new Pdi(manejadorDeMapa, 1, clase, new List <Campo> { new CampoTipo("0x001"), campoCoordenadas }); pdis.Add(pdiNoCiudad); var pdiCiudadCorrecta = new Pdi(manejadorDeMapa, 1, clase, new List <Campo> { new CampoTipo("0xb00"), new CampoEsCiudad(true), new CampoIndiceDeCiudad(79), campoCoordenadas }); pdis.Add(pdiCiudadCorrecta); var pdiSinCampoEsCiudad = new Pdi(manejadorDeMapa, 1, clase, new List <Campo> { new CampoTipo("0xc00"), new CampoIndiceDeCiudad(79), campoCoordenadas }); pdis.Add(pdiSinCampoEsCiudad); var pdiSinIndiceDeCiudad = new Pdi(manejadorDeMapa, 1, clase, new List <Campo> { new CampoTipo("0xd00"), new CampoEsCiudad(true), campoCoordenadas }); pdis.Add(pdiSinIndiceDeCiudad); var pdiSinIndiceDeCiudadYConAttributo = new Pdi(manejadorDeMapa, 1, clase, new List <Campo> { new CampoTipo("0xf00"), new CampoAtributo(BuscadorDeErrores.AtributoIgnorarCamposCityYCityIdx), campoCoordenadas }); pdis.Add(pdiSinIndiceDeCiudadYConAttributo); var pdiSinIndiceDeCiudadYSinCampoEsCiudad = new Pdi(manejadorDeMapa, 1, clase, new List <Campo> { new CampoTipo("0xe00"), campoCoordenadas }); pdis.Add(pdiSinIndiceDeCiudadYSinCampoEsCiudad); // Deberian haber 3 errores: // - 1 por el PDI sin campo de Ciudad. // - 1 por el PDI sin índice de Ciudad. // - 2 por el PDI sin campo de Ciudad y sin índice de Ciudad. const int númeroDeProblemasDetectados = 4; #endregion // Llama al método bajo prueba. objectoDePrueba.Procesa(); // Prueba propiedades. Assert.That(objectoDePrueba.NúmeroDeElementos, Is.EqualTo(pdis.Count), "NúmeroDeElementos"); Assert.That(objectoDePrueba.NúmeroDeProblemasDetectados, Is.EqualTo(númeroDeProblemasDetectados), "NúmeroDeProblemasDetectados"); Assert.That(objectoDePrueba.Errores.Count, Is.EqualTo(númeroDeProblemasDetectados), "Errores.Count"); Assert.That( objectoDePrueba.Errores[pdiSinCampoEsCiudad], Text.StartsWith("E004"), "Errores[pdiSinCampoEsCiudad]"); Assert.That( objectoDePrueba.Errores[pdiSinIndiceDeCiudad], Text.StartsWith("E005"), "Errores[pdiSinIndiceDeCiudad]"); Assert.That( objectoDePrueba.Errores[pdiSinIndiceDeCiudadYSinCampoEsCiudad], Text.StartsWith("E004"), "Errores[pdiSinIndiceDeCiudadYSinCampoEsCiudad]"); Assert.That( objectoDePrueba.Errores[pdiSinIndiceDeCiudadYSinCampoEsCiudad], Text.Contains("E005"), "Errores[pdiSinIndiceDeCiudadYSinCampoEsCiudad]"); Assert.That( objectoDePrueba.Errores.ContainsKey(pdiSinIndiceDeCiudadYConAttributo), Is.False, "Errores.ContainsKey(pdiSinIndiceDeCiudadYConAttributo)"); Assert.That( objectoDePrueba.Errores.ContainsKey(pdiCiudadCorrecta), Is.False, "Errores.ContainsKey(pdiCiudadCorrecta)"); }
public void PruebaConstructor() { // Preparación. IEscuchadorDeEstatus escuchadorDeEstatus = new EscuchadorDeEstatusPorOmisión(); ManejadorDeMapa manejadorDeMapa = new ManejadorDeMapa(escuchadorDeEstatus); IList<Pdi> pdis = new List<Pdi>(); // Llama al contructor bajo prueba. ManejadorDePdis objectoDePrueba = new ManejadorDePdis(manejadorDeMapa, pdis, escuchadorDeEstatus); // Prueba propiedades. Assert.That(objectoDePrueba.Elementos, Is.EqualTo(pdis), "Elementos"); Assert.That(objectoDePrueba.EscuchadorDeEstatus, Is.EqualTo(escuchadorDeEstatus), "EscuchadorDeEstatus"); Assert.That(objectoDePrueba.ManejadorDeMapa, Is.EqualTo(manejadorDeMapa), "ManejadorDeMapa"); }
public void PruebaProcesarTodo() { #region Preparación. // Crea el objeto a probar. IEscuchadorDeEstatus escuchadorDeEstatus = new EscuchadorDeEstatusPorOmisión(); ManejadorDeMapa manejadorDeMapa = new ManejadorDeMapa(escuchadorDeEstatus); ManejadorDePdis objectoDePrueba = new ManejadorDePdis(manejadorDeMapa, new List<Pdi>(), escuchadorDeEstatus); // Caso de prueba. Caso[] casos = new[] { // Tipo, Nombre Original, Nombre Corregido new Caso ("0x2a06", "RES. LA COMIDA", "RESTAURANTE LA COMIDA"), // Cambia Nombre. new Caso ("0x2a07", "RES LA COMIDA", "RESTAURANTE LA COMIDA"), // Cambia nombre y elimina espacios. new Caso ("0x9999", "RES LA COMIDA", "RES LA COMIDA"), // Este no debería cambiar porque el tipo no está en el rango. new Caso ("0x6402", "CONJ. RESD. LAS TORRES", "CONJUNTO RESIDENCIAL LAS TORRES"), // Cambia Nombre. }; // Crea los PDIs originales. IList<Pdi> pdis = objectoDePrueba.Elementos; const string clase = "POI"; for (int i = 0; i < casos.Length; ++i) { Caso caso = casos[i]; List<Campo> campos = new List<Campo> { new CampoNombre (caso.NombreOriginal), new CampoTipo (caso.Tipo) }; Pdi pdi = new Pdi(manejadorDeMapa, i, clase, campos); pdis.Add(pdi); } // Crea los PDIs finales. IList<Pdi> pdisEsperados = new List<Pdi>(pdis.Count); for (int i = 0; i < pdis.Count; ++i) { Pdi pdiEsperado = (Pdi)pdis[i].Clone(); string nombreEsperado = casos[i].NombreCorregido; if (pdiEsperado.Nombre != nombreEsperado) { pdiEsperado.ActualizaNombre(nombreEsperado, ""); } pdisEsperados.Add(pdiEsperado); } #endregion // Llama al método bajo prueba. objectoDePrueba.ProcesarTodo(); #region Prueba propiedades. // Prueba propiedad Elementos. for (int i = 0; i < objectoDePrueba.Elementos.Count; ++i) { Assert.That(objectoDePrueba.Elementos[i].Nombre, Is.EqualTo(pdisEsperados[i].Nombre), "Elementos[" + i + "].Nombre"); } #endregion }
public void PruebaConstructor() { // Preparación. IEscuchadorDeEstatus escuchadorDeEstatus = new EscuchadorDeEstatusPorOmisión(); ManejadorDeMapa manejadorDeMapa = new ManejadorDeMapa(escuchadorDeEstatus); ManejadorDePdis manejadorDePdis = new ManejadorDePdis(manejadorDeMapa, new List<Pdi>(), escuchadorDeEstatus); // Llama al contructor bajo prueba. var objectoDePrueba = new BuscadorDeErrores(manejadorDePdis, escuchadorDeEstatus); // Prueba propiedades. Assert.That(objectoDePrueba.NúmeroDeElementos, Is.EqualTo(0), "NúmeroDeElementos"); Assert.That(objectoDePrueba.NúmeroDeProblemasDetectados, Is.EqualTo(0), "NúmeroDeProblemasDetectados"); }
public void PruebaProcesaCaso1() { #region Preparación. // Crea el objeto a probar. IEscuchadorDeEstatus escuchadorDeEstatus = new EscuchadorDeEstatusPorOmisión(); ManejadorDeMapa manejadorDeMapa = new ManejadorDeMapa(escuchadorDeEstatus); ManejadorDePdis manejadorDePdis = new ManejadorDePdis(manejadorDeMapa, new List<Pdi>(), escuchadorDeEstatus); var objectoDePrueba = new BuscadorDeErrores(manejadorDePdis, escuchadorDeEstatus); // Crea los elementos. IList<Pdi> pdis = manejadorDePdis.Elementos; const string clase = "POI"; var campoCoordenadas = new CampoCoordenadas("Data", 0, new[] { new Coordenadas(10.16300,-66.00000), new Coordenadas(10.16199,-65.99850), new Coordenadas(10.16010,-65.99591), }); var pdiNoCiudad = new Pdi(manejadorDeMapa, 1, clase, new List<Campo> { new CampoTipo("0x001"), campoCoordenadas}); pdis.Add(pdiNoCiudad); var pdiCiudadCorrecta = new Pdi(manejadorDeMapa, 1, clase, new List<Campo> { new CampoTipo("0xb00"), new CampoEsCiudad(true), new CampoIndiceDeCiudad(79), campoCoordenadas}); pdis.Add(pdiCiudadCorrecta); var pdiSinCampoEsCiudad = new Pdi(manejadorDeMapa, 1, clase, new List<Campo> { new CampoTipo("0xc00"), new CampoIndiceDeCiudad(79), campoCoordenadas}); pdis.Add(pdiSinCampoEsCiudad); var pdiSinIndiceDeCiudad = new Pdi(manejadorDeMapa, 1, clase, new List<Campo> { new CampoTipo("0xd00"), new CampoEsCiudad(true), campoCoordenadas}); pdis.Add(pdiSinIndiceDeCiudad); var pdiSinIndiceDeCiudadYConAttributo = new Pdi(manejadorDeMapa, 1, clase, new List<Campo> { new CampoTipo("0xf00"), new CampoAtributo(BuscadorDeErrores.AtributoIgnorarCamposCityYCityIdx), campoCoordenadas}); pdis.Add(pdiSinIndiceDeCiudadYConAttributo); var pdiSinIndiceDeCiudadYSinCampoEsCiudad = new Pdi(manejadorDeMapa, 1, clase, new List<Campo> { new CampoTipo("0xe00"), campoCoordenadas}); pdis.Add(pdiSinIndiceDeCiudadYSinCampoEsCiudad); // Deberian haber 3 errores: // - 1 por el PDI sin campo de Ciudad. // - 1 por el PDI sin índice de Ciudad. // - 2 por el PDI sin campo de Ciudad y sin índice de Ciudad. const int númeroDeProblemasDetectados = 4; #endregion // Llama al método bajo prueba. objectoDePrueba.Procesa(); // Prueba propiedades. Assert.That(objectoDePrueba.NúmeroDeElementos, Is.EqualTo(pdis.Count), "NúmeroDeElementos"); Assert.That(objectoDePrueba.NúmeroDeProblemasDetectados, Is.EqualTo(númeroDeProblemasDetectados), "NúmeroDeProblemasDetectados"); Assert.That(objectoDePrueba.Errores.Count, Is.EqualTo(númeroDeProblemasDetectados), "Errores.Count"); Assert.That( objectoDePrueba.Errores[pdiSinCampoEsCiudad], Text.StartsWith("E004"), "Errores[pdiSinCampoEsCiudad]"); Assert.That( objectoDePrueba.Errores[pdiSinIndiceDeCiudad], Text.StartsWith("E005"), "Errores[pdiSinIndiceDeCiudad]"); Assert.That( objectoDePrueba.Errores[pdiSinIndiceDeCiudadYSinCampoEsCiudad], Text.StartsWith("E004"), "Errores[pdiSinIndiceDeCiudadYSinCampoEsCiudad]"); Assert.That( objectoDePrueba.Errores[pdiSinIndiceDeCiudadYSinCampoEsCiudad], Text.Contains("E005"), "Errores[pdiSinIndiceDeCiudadYSinCampoEsCiudad]"); Assert.That( objectoDePrueba.Errores.ContainsKey(pdiSinIndiceDeCiudadYConAttributo), Is.False, "Errores.ContainsKey(pdiSinIndiceDeCiudadYConAttributo)"); Assert.That( objectoDePrueba.Errores.ContainsKey(pdiCiudadCorrecta), Is.False, "Errores.ContainsKey(pdiCiudadCorrecta)"); }
public void PruebaProcesa() { #region Preparación. // Crea el objeto a probar. IEscuchadorDeEstatus escuchadorDeEstatus = new EscuchadorDeEstatusPorOmisión(); ManejadorDeMapa manejadorDeMapa = new ManejadorDeMapa(escuchadorDeEstatus); ManejadorDePdis manejadorDePdis = new ManejadorDePdis(manejadorDeMapa, new List<Pdi>(), escuchadorDeEstatus); BuscadorDeDuplicados objectoDePrueba = new BuscadorDeDuplicados(manejadorDePdis, escuchadorDeEstatus); // Caso de prueba. Caso[] casos = new[] { // Tipo, Nombre , Latitud, Longitud, Indice de Duplicados , Es Eliminado, Descripción. new Caso ("0x2a06", "El PUNTO" , 10.00000, 20.00000, new[] {2,3,6,7,9} , false , "PDI#1"), new Caso ("0x2a06", "El PUNTO" , 10.00000, 20.00000, null , true , "Idéntico: Mismos nombre, tipo, y coordenada de PDI#1 : es eliminado."), new Caso ("0x2a05", "El PUNTO" , 10.00000, 20.00000, null , false , "Mismo tipo principal: Mismo nombre, tipo principal, y coordenada de PDI#1: es duplicado."), new Caso ("0x2a06", "El PUNTO" , 10.00001, 20.00000, null , false , "Cercano: Mismo nombre y tipo de PDI#1, coordenadas cercanas: es duplicado."), new Caso ("0x2a06", "El PUNTO" , 10.00000, 20.02000, null , false , "Lejano: Mismo nombre y tipo de PDI#1, coordenadas lejanas: no es duplicado."), new Caso ("0x2b06", "El PUNTO" , 10.00000, 20.00000, null , false , "Diferente tipo principal: Mismo nombre y coordenada de PDI#1, diferente tipo principal: no es duplicado."), new Caso ("0x2a06", "EP" , 10.00000, 20.00000, null , false , "Siglas de PDI#1, misma coordenada de PDI#1: es duplicado."), new Caso ("0x2a06", "EP" , 10.00000, 20.00000, null , false , "Siglas de PDI#1, coordenadas cercanas: es duplicado."), new Caso ("0x2a06", " EP " , 10.00000, 20.00000, null , false , "Siglas de PDI#1 con espacios en blanco, coordenadas cercanas: no es duplicado."), new Caso ("0x2a06", "El PUMTO" , 10.00000, 20.00000, null , false , "Nombre similar a PDI#1, coordenadas cercanas: es duplicado."), new Caso ("0x2a06", "EOP" , 15.00000, 20.00000, new[] { 11 } , false , "PDI#2"), new Caso ("0x2a06", "EL OTRO PUNTO", 15.00000, 20.00000, null , false , "PDI#2 es las siglas, misma coordenadas: es duplicado."), }; const int númeroDeDuplicadosDetectados = 2; // Crea los elementos. IList<Pdi> elementos = manejadorDePdis.Elementos; const string clase = "POI"; for (int i = 0; i < casos.Length; ++i) { Caso caso = casos[i]; List<Campo> campos = new List<Campo> { new CampoNombre (caso.Nombre), new CampoTipo (caso.Tipo), new CampoCoordenadas ( CampoCoordenadas.IdentificadorDeCoordenadas, 0, new Coordenadas (caso.Latitud, caso.Longitud)) }; Pdi pdi = new Pdi(manejadorDeMapa, i, clase, campos); elementos.Add(pdi); } // Crea los duplicados. Dictionary<Pdi, IList<Pdi>> duplicados = new Dictionary<Pdi, IList<Pdi>>(); for (int i = 0; i < casos.Length; ++i) { Caso caso = casos[i]; if (caso.IndicesDeLosDuplicados != null) { List<Pdi> pdisDuplicados = new List<Pdi>(); foreach (int j in caso.IndicesDeLosDuplicados) { pdisDuplicados.Add(elementos[j]); } Pdi pdi = elementos[i]; duplicados.Add(pdi, pdisDuplicados); } } #endregion // Llama al método bajo prueba. objectoDePrueba.Procesa(); // Prueba propiedades. AseguraDuplicadosSonIguales(duplicados, objectoDePrueba.GruposDeDuplicados, "GruposDeDuplicados"); Assert.AreEqual(elementos.Count, objectoDePrueba.NúmeroDeElementos, "NúmeroDeElementos"); Assert.AreEqual(númeroDeDuplicadosDetectados, objectoDePrueba.NúmeroDeProblemasDetectados, "NúmeroDeProblemasDetectados"); // Prueba que se hayan eliminados los PDIs idénticos. for (int i = 0; i < casos.Length; ++i) { Assert.AreEqual(casos[i].EsEliminado, elementos[i].FuéEliminado, "Elemento[" + i + "].FuéEliminado"); } }
public void PruebaProcesa() { #region Preparación. // Crea el objeto a probar. IEscuchadorDeEstatus escuchadorDeEstatus = new EscuchadorDeEstatusPorOmisión(); ManejadorDeMapa manejadorDeMapa = new ManejadorDeMapa(escuchadorDeEstatus); ManejadorDePdis manejadorDePdis = new ManejadorDePdis(manejadorDeMapa, new List<Pdi>(), escuchadorDeEstatus); ArregladorGeneral objectoDePrueba = new ArregladorGeneral(manejadorDePdis, escuchadorDeEstatus); // Caso de prueba. Caso[] casos = new[] { // Tipo, Nombre Original, Nombre Corregido new Caso ("0x2a06", "RES LA COMIDA", "RESTAURANTE LA COMIDA"), // Cambia Nombre. new Caso ("0x2a07", "RES LA COMIDA", "RESTAURANTE LA COMIDA"), // Cambia nombre y elimina espacios. new Caso ("0x9999", "RES LA COMIDA", "RES LA COMIDA"), // Este no debería cambiar porque el tipo no está en el rango. new Caso ("0x6402", "CONJ RES LAS TORRES", "CONJUNTO RESIDENCIAL LAS TORRES"), // Cambia Nombre. }; const int númeroDeProblemasDetectados = 6; // Crea los elementos. IList<Pdi> pdis = manejadorDePdis.Elementos; const string clase = "POI"; for (int i = 0; i < casos.Length; ++i) { Caso caso = casos[i]; List<Campo> campos = new List<Campo> { new CampoNombre (caso.NombreOriginal), new CampoTipo (caso.Tipo) }; Pdi pdi = new Pdi(manejadorDeMapa, i, clase, campos); pdis.Add(pdi); } #endregion // Llama al método bajo prueba. objectoDePrueba.Procesa(); // Prueba propiedades. Assert.That(objectoDePrueba.NúmeroDeElementos, Is.EqualTo(pdis.Count), "NúmeroDeElementos"); Assert.That(objectoDePrueba.NúmeroDeProblemasDetectados, Is.EqualTo(númeroDeProblemasDetectados), "NúmeroDeProblemasDetectados"); // Prueba los nobres de los PDIs. for (int i = 0; i < casos.Length; ++i) { Assert.That(pdis[i].Nombre, Is.EqualTo(casos[i].NombreCorregido), "PDI[" + i + "].Nombre"); } }
public void PruebaProcesa() { #region Preparación. // Crea el objeto a probar. IEscuchadorDeEstatus escuchadorDeEstatus = new EscuchadorDeEstatusPorOmisión(); ManejadorDeMapa manejadorDeMapa = new ManejadorDeMapa(escuchadorDeEstatus); ManejadorDePdis manejadorDePdis = new ManejadorDePdis(manejadorDeMapa, new List <Pdi>(), escuchadorDeEstatus); BuscadorDeDuplicados objectoDePrueba = new BuscadorDeDuplicados(manejadorDePdis, escuchadorDeEstatus); // Caso de prueba. Caso[] casos = new[] { // Tipo, Nombre , Latitud, Longitud, Indice de Duplicados , Es Eliminado, Descripción. new Caso("0x2a06", "El PUNTO", 10.00000, 20.00000, new[] { 2, 3, 6, 7, 9 }, false, "PDI#1"), new Caso("0x2a06", "El PUNTO", 10.00000, 20.00000, null, true, "Idéntico: Mismos nombre, tipo, y coordenada de PDI#1 : es eliminado."), new Caso("0x2a05", "El PUNTO", 10.00000, 20.00000, null, false, "Mismo tipo principal: Mismo nombre, tipo principal, y coordenada de PDI#1: es duplicado."), new Caso("0x2a06", "El PUNTO", 10.00001, 20.00000, null, false, "Cercano: Mismo nombre y tipo de PDI#1, coordenadas cercanas: es duplicado."), new Caso("0x2a06", "El PUNTO", 10.00000, 20.02000, null, false, "Lejano: Mismo nombre y tipo de PDI#1, coordenadas lejanas: no es duplicado."), new Caso("0x2b06", "El PUNTO", 10.00000, 20.00000, null, false, "Diferente tipo principal: Mismo nombre y coordenada de PDI#1, diferente tipo principal: no es duplicado."), new Caso("0x2a06", "EP", 10.00000, 20.00000, null, false, "Siglas de PDI#1, misma coordenada de PDI#1: es duplicado."), new Caso("0x2a06", "EP", 10.00000, 20.00000, null, false, "Siglas de PDI#1, coordenadas cercanas: es duplicado."), new Caso("0x2a06", " EP ", 10.00000, 20.00000, null, false, "Siglas de PDI#1 con espacios en blanco, coordenadas cercanas: no es duplicado."), new Caso("0x2a06", "El PUMTO", 10.00000, 20.00000, null, false, "Nombre similar a PDI#1, coordenadas cercanas: es duplicado."), new Caso("0x2a06", "EOP", 15.00000, 20.00000, new[] { 11 }, false, "PDI#2"), new Caso("0x2a06", "EL OTRO PUNTO", 15.00000, 20.00000, null, false, "PDI#2 es las siglas, misma coordenadas: es duplicado."), }; const int númeroDeDuplicadosDetectados = 2; // Crea los elementos. IList <Pdi> elementos = manejadorDePdis.Elementos; const string clase = "POI"; for (int i = 0; i < casos.Length; ++i) { Caso caso = casos[i]; List <Campo> campos = new List <Campo> { new CampoNombre(caso.Nombre), new CampoTipo(caso.Tipo), new CampoCoordenadas( CampoCoordenadas.IdentificadorDeCoordenadas, 0, new Coordenadas(caso.Latitud, caso.Longitud)) }; Pdi pdi = new Pdi(manejadorDeMapa, i, clase, campos); elementos.Add(pdi); } // Crea los duplicados. Dictionary <Pdi, IList <Pdi> > duplicados = new Dictionary <Pdi, IList <Pdi> >(); for (int i = 0; i < casos.Length; ++i) { Caso caso = casos[i]; if (caso.IndicesDeLosDuplicados != null) { List <Pdi> pdisDuplicados = new List <Pdi>(); foreach (int j in caso.IndicesDeLosDuplicados) { pdisDuplicados.Add(elementos[j]); } Pdi pdi = elementos[i]; duplicados.Add(pdi, pdisDuplicados); } } #endregion // Llama al método bajo prueba. objectoDePrueba.Procesa(); // Prueba propiedades. AseguraDuplicadosSonIguales(duplicados, objectoDePrueba.GruposDeDuplicados, "GruposDeDuplicados"); Assert.AreEqual(elementos.Count, objectoDePrueba.NúmeroDeElementos, "NúmeroDeElementos"); Assert.AreEqual(númeroDeDuplicadosDetectados, objectoDePrueba.NúmeroDeProblemasDetectados, "NúmeroDeProblemasDetectados"); // Prueba que se hayan eliminados los PDIs idénticos. for (int i = 0; i < casos.Length; ++i) { Assert.AreEqual(casos[i].EsEliminado, elementos[i].FuéEliminado, "Elemento[" + i + "].FuéEliminado"); } }