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
        }
Ejemplo n.º 2
0
        /// <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);
        }
Ejemplo n.º 3
0
        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");
        }
Ejemplo n.º 4
0
 /// <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");
            }
        }
Ejemplo n.º 7
0
        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
        }
Ejemplo n.º 10
0
        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");
        }
Ejemplo n.º 11
0
        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");
              }
        }
Ejemplo n.º 13
0
        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");
            }
        }