コード例 #1
0
 public static void AseguraElementoEsEquivalente(ElementoDelMapa elEsperado, ElementoDelMapa elReal, string elPrefijo)
 {
     Assert.AreEqual(elEsperado.Campos, elReal.Campos, elPrefijo + ".Campos");
     Assert.AreEqual(elEsperado.Clase, elReal.Clase, elPrefijo + ".Clase");
     Assert.AreEqual(elEsperado.FuéEliminado, elReal.FuéEliminado, elPrefijo + ".FuéEliminado");
     Assert.AreEqual(elEsperado.FuéModificado, elReal.FuéModificado, elPrefijo + ".FuéModificado");
     Assert.AreEqual(elEsperado.Nombre, elReal.Nombre, elPrefijo + ".Nombre");
     Assert.AreEqual(elEsperado.Número, elReal.Número, elPrefijo + ".Número");
     Assert.AreEqual(elEsperado.RazónParaEliminación, elReal.RazónParaEliminación, elPrefijo + ".RazónParaEliminación");
     Assert.AreEqual(elEsperado.Tipo, elReal.Tipo, elPrefijo + ".Tipo");
 }
コード例 #2
0
        /// <summary>
        /// Añade un item a la lista.
        /// </summary>
        /// <param name="elElementoConEtiqueta">El elemento dado.</param>
        /// <param name="elColorDeFondo">El color de fondo.</param>
        /// <param name="elGrupo">El grupo.</param>
        /// <param name="losSubItemsAdicionales">Los textos de los subitems adicionales</param>
        public virtual void AñadeItem(ElementoConEtiqueta elElementoConEtiqueta, Color elColorDeFondo, ListViewGroup elGrupo, params string[] losSubItemsAdicionales)
        {
            ElementoDelMapa elemento      = elElementoConEtiqueta.ElementoDelMapa;
            string          tipoComoTexto = string.Empty;

            if (elemento.Tipo != null)
            {
                tipoComoTexto = ((Tipo)elemento.Tipo).ToString();
            }
            List <string> subItems = new List <string> {
                elemento.Número.ToString(CultureInfo.CurrentCulture).PadLeft(6),
                tipoComoTexto,
                elemento.Descripción,
                elemento.Nombre
            };

            subItems.AddRange(losSubItemsAdicionales);

            ListViewItem item = new ListViewItem(subItems.ToArray())
            {
                BackColor = elColorDeFondo,
                Group     = elGrupo,
                Tag       = elElementoConEtiqueta
            };

            if (VirtualMode)
            {
                if (elGrupo != null)
                {
                    throw new ArgumentException("No se pueden añadir grupos a lista virtuales. Ponga VirtualMode = false");
                }

                misItemsVirtuales.Add(item);
            }
            else
            {
                Items.Add(item);
            }
        }
コード例 #3
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
        }
コード例 #4
0
 /// <summary>
 /// Constructor.
 /// </summary>
 /// <param name="elElementoDelMapa">El elemento de mapa.</param>
 /// <param name="laEtiqueta">La etiqueta.</param>
 public ElementoConEtiqueta(ElementoDelMapa elElementoDelMapa, object laEtiqueta)
 {
     ElementoDelMapa = elElementoDelMapa;
       Etiqueta = laEtiqueta;
 }
コード例 #5
0
 /// <summary>
 /// Constructor.
 /// </summary>
 /// <param name="elElementoDelMapa">El elemento de mapa.</param>
 public ElementoConEtiqueta(ElementoDelMapa elElementoDelMapa)
     : this(elElementoDelMapa, null)
 {
 }
コード例 #6
0
        private void Guarda(ElementoDelMapa elElemento, StreamWriter elEscritor)
        {
            // Inicializa indices.
              var indiceDeNodoRuteable = 1;

              // Escribe la clase.
              string clase = elElemento.Clase;
              elEscritor.WriteLine("[" + clase + "]");

              // Final del elemento.
              string finalDeElemento = "[END]";
              switch (clase)
              {
            case "IMG ID":
            case "Countries":
            case "Regions":
            case "Cities":
            case "ZipCodes":
            case "Restrict":
              finalDeElemento = "[END-" + clase + "]";
              break;
              }

              // Guarda los campos del elemento.
              foreach (var campo in elElemento.Campos)
              {
            CampoComentario campoComentario;
            CampoNombre campoNombre;
            CampoCoordenadas campoCoordenadas;
            CampoNodoRuteable campoNodo;
            CampoGenérico campoGenérico;
            CampoTipo campoTipo;
            CampoParámetrosDeRuta campoParámetrosDeRuta;
            CampoAtributo campoAtributo;
            CampoEsCiudad campoCiudad;
            CampoIndiceDeCiudad campoIndiceDeCiudad;
            if ((campoComentario = campo as CampoComentario) != null)
            {
              Guarda(campoComentario, elEscritor);
            }
            else if ((campoNombre = campo as CampoNombre) != null)
            {
              Guarda(campoNombre, elEscritor);
            }
            else if ((campoCoordenadas = campo as CampoCoordenadas) != null)
            {
              Guarda(campoCoordenadas, elEscritor);
            }
            else if ((campoNodo = campo as CampoNodoRuteable) != null)
            {
              Guarda(campoNodo, indiceDeNodoRuteable, elEscritor);

              // Incrementa el índice para el próximo nodo.
              ++indiceDeNodoRuteable;
            }
            else if ((campoGenérico = campo as CampoGenérico) != null)
            {
              Guarda(campoGenérico, elEscritor);
            }
            else if ((campoTipo = campo as CampoTipo) != null)
            {
              Guarda(campoTipo, elEscritor);
            }
            else if ((campoParámetrosDeRuta = campo as CampoParámetrosDeRuta) != null)
            {
              Guarda(campoParámetrosDeRuta, elEscritor);
            }
            else if ((campoAtributo = campo as CampoAtributo) != null)
            {
              Guarda(campoAtributo, elEscritor);
            }
            else if ((campoCiudad = campo as CampoEsCiudad) != null)
            {
              Guarda(campoCiudad, elEscritor);
            }
            else if ((campoIndiceDeCiudad = campo as CampoIndiceDeCiudad) != null)
            {
              Guarda(campoIndiceDeCiudad, elEscritor);
            }
            else
            {
              throw new ArgumentException("Campo desconocido: " + campo.GetType());
            }
              }

              // Escribe el final del elemento.
              elEscritor.WriteLine(finalDeElemento);
        }
コード例 #7
0
 public static void AseguraElementoEsEquivalente(ElementoDelMapa elEsperado, ElementoDelMapa elReal, string elPrefijo)
 {
     Assert.AreEqual(elEsperado.Campos, elReal.Campos, elPrefijo + ".Campos");
       Assert.AreEqual(elEsperado.Clase, elReal.Clase, elPrefijo + ".Clase");
       Assert.AreEqual(elEsperado.FuéEliminado, elReal.FuéEliminado, elPrefijo + ".FuéEliminado");
       Assert.AreEqual(elEsperado.FuéModificado, elReal.FuéModificado, elPrefijo + ".FuéModificado");
       Assert.AreEqual(elEsperado.Nombre, elReal.Nombre, elPrefijo + ".Nombre");
       Assert.AreEqual(elEsperado.Número, elReal.Número, elPrefijo + ".Número");
       Assert.AreEqual(elEsperado.RazónParaEliminación, elReal.RazónParaEliminación, elPrefijo + ".RazónParaEliminación");
       Assert.AreEqual(elEsperado.Tipo, elReal.Tipo, elPrefijo + ".Tipo");
 }
コード例 #8
0
ファイル: Program.cs プロジェクト: PatricioVidal/GpsMapTools
        private static void ArreglaMapaTopografico(ManejadorDeMapa.ManejadorDeMapa elManejadorDeMapa)
        {
            #region Arregla el encabezado.
            ElementoDelMapa encabezado          = elManejadorDeMapa.Encabezado;
            IList <Campo>   camposDelEncabezado = encabezado.Campos;
            CampoGenérico   campoNombre         = (CampoGenérico)camposDelEncabezado[1];

            // Borra los campos para re-generarlos.
            camposDelEncabezado.Clear();
            camposDelEncabezado.Add(new CampoGenérico("CodePage", "1252"));
            camposDelEncabezado.Add(new CampoGenérico("LblCoding", "9"));
            camposDelEncabezado.Add(new CampoGenérico("ID", campoNombre.Texto));
            camposDelEncabezado.Add(campoNombre);

            // Añade los campos nuevos.
            Campo[] camposNuevos = new Campo[] {
                new CampoGenérico("Elevation", "M"),
                new CampoGenérico("Preprocess", "F"),
                new CampoGenérico("TreSize", "5000"),
                new CampoGenérico("TreMargin", "0.00000"),
                new CampoGenérico("RgnLimit", "1024"),
                new CampoGenérico("Transparent", "Y"),
                new CampoGenérico("Copyright", "www.gpsyv.net"),
                new CampoGenérico("Levels", "5"),
                new CampoGenérico("Level0", "24"),
                new CampoGenérico("Level1", "22"),
                new CampoGenérico("Level2", "20"),
                new CampoGenérico("Level3", "19"),
                new CampoGenérico("Level4", "18"),
                new CampoGenérico("Zoom0", "0"),
                new CampoGenérico("Zoom1", "1"),
                new CampoGenérico("Zoom2", "2"),
                new CampoGenérico("Zoom3", "3"),
                new CampoGenérico("Zoom4", "4"),
            };
            foreach (Campo campo in camposNuevos)
            {
                camposDelEncabezado.Add(campo);
            }
            Console.WriteLine("  arreglado encabezado...");
            #endregion

            #region Arregla las Polilíneas
            foreach (var polilínea in elManejadorDeMapa.Polilíneas)
            {
                IList <Campo> campos = polilínea.Campos;

                // Busca el campo de tipo.
                int?índiceCampoTipo = null;
                for (int i = 0; i < campos.Count; ++i)
                {
                    if (campos[i] is CampoTipo)
                    {
                        índiceCampoTipo = i;
                        break;
                    }
                }

                // Add EndLevel después del campo tipo.
                if (índiceCampoTipo != null)
                {
                    int i = (int)índiceCampoTipo + 1;
                    campos.Insert(i, new CampoGenérico("EndLevel", "3"));
                }
            }
            Console.WriteLine("  arregladas polilíneas...");
            #endregion

            #region Elimina los elementos con Data1 y Data2, y los polígonos.
            IList <ElementoDelMapa> elementos = elManejadorDeMapa.ManejadorDeElementos.Elementos;
            int últimoIndex = elementos.Count - 1;
            for (int i = últimoIndex; i >= 0; --i)
            {
                ElementoDelMapa elemento = elementos[i];

                // Remueve los polígonos.
                if (elemento is Polígono)
                {
                    elementos.RemoveAt(i);
                }
                // Si no es polígono entonces vemos si es una polilínea
                // y la removemos si no tiene data0.
                else if (elemento is Polilínea)
                {
                    // Buscamos si tiene data0.
                    bool tieneData0 = false;
                    foreach (var campo in elemento.Campos)
                    {
                        CampoCoordenadas campoCoordenadas = campo as CampoCoordenadas;
                        if (campoCoordenadas != null)
                        {
                            if (campoCoordenadas.Nivel == 0)
                            {
                                tieneData0 = true;
                                break;
                            }
                        }
                    }

                    // Removemos el elemento si no tiene data0.
                    if (!tieneData0)
                    {
                        elementos.RemoveAt(i);
                    }
                }
            }
            Console.WriteLine("  eliminados polilíneas sin data 0, y polígonos...");
            #endregion
        }
コード例 #9
0
 /// <summary>
 /// Constructor.
 /// </summary>
 /// <param name="elElementoDelMapa">El elemento de mapa.</param>
 public ElementoConEtiqueta(ElementoDelMapa elElementoDelMapa)
     : this(elElementoDelMapa, null)
 {
 }
コード例 #10
0
 /// <summary>
 /// Constructor.
 /// </summary>
 /// <param name="elElementoDelMapa">El elemento de mapa.</param>
 /// <param name="laEtiqueta">La etiqueta.</param>
 public ElementoConEtiqueta(ElementoDelMapa elElementoDelMapa, object laEtiqueta)
 {
     ElementoDelMapa = elElementoDelMapa;
     Etiqueta        = laEtiqueta;
 }