private void DibujaNodos(Vía laVía)
 {
     foreach (Nodo nodo in laVía.Nodos)
       {
     if (nodo.EsRuteable)
     {
       miMapa.PuntosAddicionales.Add(new InterfaseMapa.PuntoAdicional(
     nodo.Coordenadas,
     miPincelDeNodoRuteable,
     11));
     }
     else
     {
       miMapa.PuntosAddicionales.Add(new InterfaseMapa.PuntoAdicional(
     nodo.Coordenadas,
     miPincelDeNodo,
     5));
     }
       }
 }
        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");
              }
        }
예제 #3
0
        public void PruebaConstructor()
        {
            // Preparación.
              int número = 12;
              ManejadorDeMapa manejadorDeMapa = new ManejadorDeMapa(new EscuchadorDeEstatusPorOmisión());
              string clase = "clase";
              string nombre = "Nombre";
              string tipo = "0xc";
              string descripción = "Roundabout";
              CampoParámetrosDeRuta parámetrosDeRuta = new CampoParámetrosDeRuta(
            new LímiteDeVelocidad(2),
            new ClaseDeRuta(3),
            new bool[10]);
              List<Campo> campos = new List<Campo> {
            new CampoNombre (nombre),
            new CampoComentario (";Comentario"),
            new CampoTipo (tipo),
            parámetrosDeRuta
              };

              // Llama al constructor.
              Vía objectoEnPrueba = new Vía(manejadorDeMapa, número, clase, campos);

              // Prueba Propiedades.
              Assert.That(campos, Is.EqualTo(objectoEnPrueba.Campos), "Campos");
              Assert.That(clase, Is.EqualTo(objectoEnPrueba.Clase), "Clase");
              Assert.That(descripción, Is.EqualTo(objectoEnPrueba.Descripción), "Descripción");
              Assert.That(objectoEnPrueba.FuéEliminado, Is.False, "FuéEliminado");
              Assert.That(objectoEnPrueba.FuéModificado, Is.False, "FuéModificado");
              Assert.That(nombre, Is.EqualTo(objectoEnPrueba.Nombre), "Nombre");
              Assert.That(número, Is.EqualTo(objectoEnPrueba.Número), "Número");
              Assert.That(objectoEnPrueba.Original, Is.Null, "Original");
              Assert.That(string.Empty, Is.EqualTo(objectoEnPrueba.RazónParaEliminación), "RazónParaEliminación");
              Assert.That(new Tipo(tipo), Is.EqualTo(objectoEnPrueba.Tipo), "Tipo");
              Assert.That(objectoEnPrueba.CampoParámetrosDeRuta, Is.EqualTo(parámetrosDeRuta), "CampoParámetrosDeRuta");
        }
예제 #4
0
        public void PruebaCambiaCampoParámetrosDeRuta()
        {
            #region Caso 1: Vía con Campo de Parámetros de Ruta.
              {
            #region Preparación.
            int número = 12;
            ManejadorDeMapa manejadorDeMapa = new ManejadorDeMapa(new EscuchadorDeEstatusPorOmisión());
            string clase = "clase";
            string nombre = "Nombre";
            string tipo = "0xc";
            string descripción = "Roundabout";

            CampoParámetrosDeRuta campoParámetrosDeRuta = new CampoParámetrosDeRuta(
              new LímiteDeVelocidad(2),
              new ClaseDeRuta(3),
              new bool[] { true, false, false, true, true, false, true, true, false, false });

            List<Campo> campos = new List<Campo> {
              new CampoNombre (nombre),
              new CampoComentario (";Comentario"),
              new CampoTipo (tipo),
              campoParámetrosDeRuta
            };

            // Crea el objeto en prueba.
            Vía objectoEnPrueba = new Vía(manejadorDeMapa, número, clase, campos);
            ElementoDelMapa víaOriginal = (ElementoDelMapa)objectoEnPrueba.Clone();

            // Nuevos valores.
            CampoParámetrosDeRuta nuevoCampoParámetrosDeRuta = new CampoParámetrosDeRuta(
              new LímiteDeVelocidad(5),
              campoParámetrosDeRuta.ClaseDeRuta,
              campoParámetrosDeRuta.OtrosParámetros);
            Assert.That(nuevoCampoParámetrosDeRuta, Is.Not.EqualTo(campoParámetrosDeRuta), "El nuevo campo de parámetros de ruta debe ser distinto");
            #endregion

            // Llama al método a probar.
            objectoEnPrueba.CambiaCampoParámetrosDeRuta(nuevoCampoParámetrosDeRuta, "Razón");

            // Prueba Propiedades.
            Assert.That(objectoEnPrueba.Campos, Is.EqualTo(campos), "Campos");
            Assert.That(objectoEnPrueba.Clase, Is.EqualTo(clase), "Clase");
            Assert.That(descripción, Is.EqualTo(objectoEnPrueba.Descripción), "Descripción");
            Assert.That(objectoEnPrueba.FuéEliminado, Is.False, "FuéEliminado");
            Assert.That(objectoEnPrueba.FuéModificado, Is.True, "FuéModificado");
            Assert.That(objectoEnPrueba.Nombre, Is.EqualTo(nombre), "Nombre");
            Assert.That(objectoEnPrueba.Número, Is.EqualTo(número), "Número");
            PruebaElementoDesconocido.AseguraElementoEsEquivalente(víaOriginal, objectoEnPrueba.Original, "Original");
            Assert.That(objectoEnPrueba.RazónParaEliminación, Is.EqualTo(string.Empty), "RazónParaEliminación");
            Assert.That(objectoEnPrueba.Tipo, Is.EqualTo(new Tipo(tipo)), "Tipo");
            Assert.That(objectoEnPrueba.CampoParámetrosDeRuta, Is.EqualTo(nuevoCampoParámetrosDeRuta), "CampoParámetrosDeRuta");
              }
              #endregion

              #region Caso 2: Vía sin Campo de Parámetros de Ruta.
              {
            #region Preparación.
            int número = 12;
            ManejadorDeMapa manejadorDeMapa = new ManejadorDeMapa(new EscuchadorDeEstatusPorOmisión());
            string clase = "clase";
            string nombre = "Nombre";
            string tipo = "0xc";
            string descripción = "Roundabout";
            List<Campo> campos = new List<Campo> {
              new CampoNombre (nombre),
              new CampoComentario (";Comentario"),
              new CampoTipo (tipo)
            };

            // Crea el objeto en prueba.
            Vía objectoEnPrueba = new Vía(manejadorDeMapa, número, clase, campos);
            ElementoDelMapa víaOriginal = (ElementoDelMapa)objectoEnPrueba.Clone();

            // Nuevos valores.
            CampoParámetrosDeRuta nuevoCampoParámetrosDeRuta = new CampoParámetrosDeRuta(
              new LímiteDeVelocidad (4),
              new ClaseDeRuta (1),
              new bool[10]);
            #endregion

            // Llama al método a probar.
            objectoEnPrueba.CambiaCampoParámetrosDeRuta(nuevoCampoParámetrosDeRuta, "Razón");

            // Prueba Propiedades.
            Assert.That(objectoEnPrueba.Campos, Is.EqualTo(campos), "Campos");
            Assert.That(objectoEnPrueba.Clase, Is.EqualTo(clase), "Clase");
            Assert.That(descripción, Is.EqualTo(objectoEnPrueba.Descripción), "Descripción");
            Assert.That(objectoEnPrueba.FuéEliminado, Is.False, "FuéEliminado");
            Assert.That(objectoEnPrueba.FuéModificado, Is.True, "FuéModificado");
            Assert.That(objectoEnPrueba.Nombre, Is.EqualTo(nombre), "Nombre");
            Assert.That(objectoEnPrueba.Número, Is.EqualTo(número), "Número");
            PruebaElementoDesconocido.AseguraElementoEsEquivalente(víaOriginal, objectoEnPrueba.Original, "Original");
            Assert.That(objectoEnPrueba.RazónParaEliminación, Is.EqualTo(string.Empty), "RazónParaEliminación");
            Assert.That(objectoEnPrueba.Tipo, Is.EqualTo(new Tipo(tipo)), "Tipo");
            Assert.That(objectoEnPrueba.CampoParámetrosDeRuta, Is.EqualTo(nuevoCampoParámetrosDeRuta), "CampoParámetrosDeRuta");
              }
              #endregion

              #region Caso 3: Vía con el Mismo Campo de Parámetros de Ruta.
              {
            #region Preparación.
            int número = 12;
            ManejadorDeMapa manejadorDeMapa = new ManejadorDeMapa(new EscuchadorDeEstatusPorOmisión());
            string clase = "clase";
            string nombre = "Nombre";
            string tipo = "0xc";
            string descripción = "Roundabout";

            CampoParámetrosDeRuta campoParámetrosDeRuta = new CampoParámetrosDeRuta(
              new LímiteDeVelocidad(2),
              new ClaseDeRuta(3),
              new bool[] { true, false, false, true, true, false, true, true, false, false });

            List<Campo> campos = new List<Campo> {
              new CampoNombre (nombre),
              new CampoComentario (";Comentario"),
              new CampoTipo (tipo),
              campoParámetrosDeRuta
            };

            // Crea el objeto en prueba.
            Vía objectoEnPrueba = new Vía(manejadorDeMapa, número, clase, campos);
            #endregion

            // Llama al método a probar.
            objectoEnPrueba.CambiaCampoParámetrosDeRuta(campoParámetrosDeRuta, "Razón");

            // Prueba Propiedades.
            Assert.That(objectoEnPrueba.Campos, Is.EqualTo(campos), "Campos");
            Assert.That(objectoEnPrueba.Clase, Is.EqualTo(clase), "Clase");
            Assert.That(descripción, Is.EqualTo(objectoEnPrueba.Descripción), "Descripción");
            Assert.That(objectoEnPrueba.FuéEliminado, Is.False, "FuéEliminado");
            Assert.That(objectoEnPrueba.FuéModificado, Is.False, "FuéModificado");
            Assert.That(objectoEnPrueba.Nombre, Is.EqualTo(nombre), "Nombre");
            Assert.That(objectoEnPrueba.Número, Is.EqualTo(número), "Número");
            Assert.That(objectoEnPrueba.Original, Is.Null, "Original");
            Assert.That(objectoEnPrueba.RazónParaEliminación, Is.EqualTo(string.Empty), "RazónParaEliminación");
            Assert.That(objectoEnPrueba.Tipo, Is.EqualTo(new Tipo(tipo)), "Tipo");
            Assert.That(objectoEnPrueba.CampoParámetrosDeRuta, Is.EqualTo(campoParámetrosDeRuta), "CampoParámetrosDeRuta");
              }
              #endregion
        }
예제 #5
0
 /// <summary>
 /// Constructor.
 /// </summary>
 /// <param name="laVía">La vía.</param>
 /// <param name="elDetalle">El detalle.</param>
 /// <param name="elEsPosibleError">Variable lógica que indica si el elemento es un posible error.</param>
 public ElementoDePosibleErrorDeRuteo(Vía laVía, string elDetalle, bool elEsPosibleError)
 {
     Vía            = laVía;
     Detalle        = elDetalle;
     EsPosibleError = elEsPosibleError;
 }