/// <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);
        }
 /// <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> >();
 }
Example #3
0
        public void PruebaConstructor()
        {
            // Preparación.
            IEscuchadorDeEstatus escuchadorDeEstatus = new EscuchadorDeEstatusPorOmisión();
            ManejadorDeMapa      manejadorDeMapa     = new ManejadorDeMapa(escuchadorDeEstatus);
            ManejadorDeVías      manejadorDePdis     = new ManejadorDeVías(manejadorDeMapa, new List <Vía>(), escuchadorDeEstatus, null);

            // Llama al contructor bajo prueba.
            ArregladorGeneral objectoDePrueba = new ArregladorGeneral(manejadorDePdis, escuchadorDeEstatus);

            // Prueba propiedades.
            Assert.That(objectoDePrueba.NúmeroDeElementos, Is.EqualTo(0), "NúmeroDeElementos");
            Assert.That(objectoDePrueba.NúmeroDeProblemasDetectados, Is.EqualTo(0), "NúmeroDeElementosModificados");
        }
        public void PruebaConstructor()
        {
            // Preparación.
              IEscuchadorDeEstatus escuchadorDeEstatus = new EscuchadorDeEstatusPorOmisión();
              ManejadorDeMapa manejadorDeMapa = new ManejadorDeMapa(escuchadorDeEstatus);
              ManejadorDeVías manejadorDePdis = new ManejadorDeVías(manejadorDeMapa, new List<Vía>(), escuchadorDeEstatus, null);

              // Llama al contructor bajo prueba.
              ArregladorGeneral objectoDePrueba = new ArregladorGeneral(manejadorDePdis, escuchadorDeEstatus);

              // Prueba propiedades.
              Assert.That(objectoDePrueba.NúmeroDeElementos, Is.EqualTo(0), "NúmeroDeElementos");
              Assert.That(objectoDePrueba.NúmeroDeProblemasDetectados, Is.EqualTo(0), "NúmeroDeElementosModificados");
        }
        public void PruebaProcesaCaso1()
        {
            #region Preparación.
              // Crea el objeto a probar.
              IEscuchadorDeEstatus escuchadorDeEstatus = new EscuchadorDeEstatusPorOmisión();
              ManejadorDeMapa manejadorDeMapa = new ManejadorDeMapa(escuchadorDeEstatus);
              ManejadorDeVías manejadorDeVías = new ManejadorDeVías(manejadorDeMapa, new List<Vía>(), escuchadorDeEstatus, null);
              ArregladorGeneral objectoDePrueba = new ArregladorGeneral(manejadorDeVías, escuchadorDeEstatus);

              // Caso de prueba.
              Caso[] casos = new[] {
            //         Nombre, IndicadorDeDirección, UnSoloSentido, IndicadorDeDirecciónEsperado, UnSoloSentidoEsperado
            new Caso (    "A",                  "0",         false,                          "0",                 false), // Calle doble sentido.
            new Caso (    "B",                  "0",          true,                          "1",                  true), // Indicador de dirección = 0.
            new Caso (    "C",                  "1",         false,                          "1",                  true), // Falta UnSoloSentido.
            new Caso (    "D",                  "1",          true,                          "1",                  true), // Calle un sentido.
            new Caso (    "E",                 null,          true,                          "1",                  true), // Falta indicador de dirección.
              };
              const int númeroDeProblemasDetectados = 3;

              // Crea los elementos.
              // Vía típica:
              //   [POLYLINE]
              //   Type=0x2
              //   Label=TRONCAL 9
              //   EndLevel=3
              //   DirIndicator=1
              //   CityIdx=1
              //   RoadID=47
              //   RouteParam=5,3,1,0,0,0,0,0,0,0,0,0
              //   Data0=(10.16300,-66.00000),(10.16199,-65.99850),(10.16010,-65.99591)
              IList<Vía> vías = manejadorDeVías.Elementos;
              const string clase = "POI";
              for (int i = 0; i < casos.Length; ++i)
              {
            Caso caso = casos[i];
            List<Campo> campos = new List<Campo> {
              new CampoTipo("0x2"),
              new CampoNombre (caso.Nombre),
              new CampoGenérico("EndLevel", "3"),
              new CampoParámetrosDeRuta(
            new LímiteDeVelocidad(5),
            new ClaseDeRuta(3),
            new[] {caso.UnSoloSentido, false, false, false, false, false, false, false, false, false} ),
              new CampoCoordenadas("Data", 0, new[]
                                            {
                                              new Coordenadas(10.16300,-66.00000),
                                              new Coordenadas(10.16199,-65.99850),
                                              new Coordenadas(10.16010,-65.99591),
                                            })
            };
            if ( caso.IndicadorDeDirección != null)
            {
              campos.Add(new CampoGenérico(Vía.IdentificadorIndicadorDeDirección, caso.IndicadorDeDirección));
            }

            Vía vía = new Vía(manejadorDeMapa, i, clase, campos);
            vías.Add(vía);
              }
              #endregion

              // Llama al método bajo prueba.
              objectoDePrueba.Procesa();

              // Prueba propiedades.
              Assert.That(objectoDePrueba.NúmeroDeElementos, Is.EqualTo(vías.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(vías[i].CampoParámetrosDeRuta.OtrosParámetros[0], Is.EqualTo(casos[i].UnSoloSentidoEsperado), "Vía[" + i + "].OtrosParámetros[0]");
            Assert.That(vías[i].CampoIndicadorDeDirección, Is.Not.Null, "Vía[" + i + "].CampoIndicadorDeDirección");
            Assert.That(vías[i].CampoIndicadorDeDirección.Texto, Is.EqualTo(casos[i].IndicadorDeDirecciónEsperado), "Vía[" + i + "].CampoIndicadorDeDirección.Texto");
              }
        }
Example #6
0
        public void PruebaProcesaCaso1()
        {
            #region Preparación.
            // Crea el objeto a probar.
            IEscuchadorDeEstatus escuchadorDeEstatus = new EscuchadorDeEstatusPorOmisión();
            ManejadorDeMapa      manejadorDeMapa     = new ManejadorDeMapa(escuchadorDeEstatus);
            ManejadorDeVías      manejadorDeVías     = new ManejadorDeVías(manejadorDeMapa, new List <Vía>(), escuchadorDeEstatus, null);
            ArregladorGeneral    objectoDePrueba     = new ArregladorGeneral(manejadorDeVías, escuchadorDeEstatus);

            // Caso de prueba.
            Caso[] casos = new[] {
                //         Nombre, IndicadorDeDirección, UnSoloSentido, IndicadorDeDirecciónEsperado, UnSoloSentidoEsperado
                new Caso("A", "0", false, "0", false),                                                                // Calle doble sentido.
                new Caso("B", "0", true, "1", true),                                                                  // Indicador de dirección = 0.
                new Caso("C", "1", false, "1", true),                                                                 // Falta UnSoloSentido.
                new Caso("D", "1", true, "1", true),                                                                  // Calle un sentido.
                new Caso("E", null, true, "1", true),                                                                 // Falta indicador de dirección.
            };
            const int númeroDeProblemasDetectados = 3;

            // Crea los elementos.
            // Vía típica:
            //   [POLYLINE]
            //   Type=0x2
            //   Label=TRONCAL 9
            //   EndLevel=3
            //   DirIndicator=1
            //   CityIdx=1
            //   RoadID=47
            //   RouteParam=5,3,1,0,0,0,0,0,0,0,0,0
            //   Data0=(10.16300,-66.00000),(10.16199,-65.99850),(10.16010,-65.99591)
            IList <Vía>  vías  = manejadorDeVías.Elementos;
            const string clase = "POI";
            for (int i = 0; i < casos.Length; ++i)
            {
                Caso         caso   = casos[i];
                List <Campo> campos = new List <Campo> {
                    new CampoTipo("0x2"),
                    new CampoNombre(caso.Nombre),
                    new CampoGenérico("EndLevel", "3"),
                    new CampoParámetrosDeRuta(
                        new LímiteDeVelocidad(5),
                        new ClaseDeRuta(3),
                        new[] { caso.UnSoloSentido, false, false, false, false, false, false, false, false, false }),
                    new CampoCoordenadas("Data", 0, new[]
                    {
                        new Coordenadas(10.16300, -66.00000),
                        new Coordenadas(10.16199, -65.99850),
                        new Coordenadas(10.16010, -65.99591),
                    })
                };
                if (caso.IndicadorDeDirección != null)
                {
                    campos.Add(new CampoGenérico(Vía.IdentificadorIndicadorDeDirección, caso.IndicadorDeDirección));
                }

                Vía vía = new Vía(manejadorDeMapa, i, clase, campos);
                vías.Add(vía);
            }
            #endregion

            // Llama al método bajo prueba.
            objectoDePrueba.Procesa();

            // Prueba propiedades.
            Assert.That(objectoDePrueba.NúmeroDeElementos, Is.EqualTo(vías.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(vías[i].CampoParámetrosDeRuta.OtrosParámetros[0], Is.EqualTo(casos[i].UnSoloSentidoEsperado), "Vía[" + i + "].OtrosParámetros[0]");
                Assert.That(vías[i].CampoIndicadorDeDirección, Is.Not.Null, "Vía[" + i + "].CampoIndicadorDeDirección");
                Assert.That(vías[i].CampoIndicadorDeDirección.Texto, Is.EqualTo(casos[i].IndicadorDeDirecciónEsperado), "Vía[" + i + "].CampoIndicadorDeDirección.Texto");
            }
        }