예제 #1
0
        public void TestBuscarAngulos()
        {
            Lista <Angulo> angulos = new Lista <Angulo>(Factoria.CrearAngulos());

            #region BusquedaAngulosRectos

            /* Búsqueda de ángulos rectos */
            // Buscamos el primer ángulo de 90 grados
            AssertBuscar(angulos, angulo => Math.Abs(Math.Abs(angulo.Grados) - 90.0) <= 0.001,
                         angulos.Get(90), messageElementInCollection);

            #endregion

            #region BusquedaAngulosCuadrantes

            /* Búsqueda de ángulos en un cuadrante */
            // Buscamos el primer ángulo del primer cuadrante
            AssertBuscar(angulos, angulo => angulo.Cuadrante == 1,
                         angulos.Get(0), messageElementInCollection);
            // Buscamos el primer ángulo del segundo cuadrante
            AssertBuscar(angulos, angulo => angulo.Cuadrante == 2,
                         angulos.Get(91), messageElementInCollection);
            // Buscamos el primer ángulo del tercer cuadrante
            AssertBuscar(angulos, angulo => angulo.Cuadrante == 3,
                         angulos.Get(181), messageElementInCollection);
            // Buscamos el primer ángulo del cuarto cuadrante
            AssertBuscar(angulos, angulo => angulo.Cuadrante == 4,
                         angulos.Get(271), messageElementInCollection);

            #endregion
        }
예제 #2
0
        public void TestListaDoubles()
        {
            Lista <double> listaStrings = new Lista <double>(1.1, 2.2, 3.3);

            Assert.AreEqual(3, listaStrings.NumeroElementos,
                            "El constructor de la lista funciona mal con doubles.");
            Assert.AreEqual("[1,1, 2,2, 3,3]", listaStrings.ToString(),
                            "El constructor de la lista funciona mal con doubles.");

            listaStrings.AddLast(4.4);
            Assert.AreEqual(4, listaStrings.NumeroElementos,
                            "El método AddLast() de la lista funciona mal con doubles.");
            Assert.AreEqual("[1,1, 2,2, 3,3, 4,4]", listaStrings.ToString(),
                            "El método AddLast() de la lista funciona mal con doubles.");

            listaStrings.RemoveFirst();
            Assert.AreEqual(3, listaStrings.NumeroElementos,
                            "El método RemoveFirst() de la lista funciona mal con doubles.");
            Assert.AreEqual("[2,2, 3,3, 4,4]", listaStrings.ToString(),
                            "El método RemoveFirst() de la lista funciona mal con doubles.");

            Assert.AreEqual(2.2, listaStrings.Get(0),
                            "El método Get() de la lista funciona mal con doubles.");

            Assert.AreEqual(true, listaStrings.Contains(3.3),
                            "El método Contains() de la lista funciona mal con doubles.");
            Assert.AreEqual(false, listaStrings.Contains(5.5),
                            "El método Contains() de la lista funciona mal con doubles.");
        }
예제 #3
0
        public void TestListaPersonas()
        {
            Lista <Persona> listaStrings = new Lista <Persona>(
                new Persona("Carlos", "Sanabria", "12345678A"));

            Assert.AreEqual(1, listaStrings.NumeroElementos,
                            "El constructor de la lista funciona mal con Personas");
            Assert.AreEqual("[Carlos Sanabria con NIF 12345678A]", listaStrings.ToString(),
                            "El constructor de la lista funciona mal con Personas.");

            listaStrings.AddLast(new Persona("Pedro", "Pérez", "12345678B"));
            Assert.AreEqual(2, listaStrings.NumeroElementos,
                            "El método AddLast() de la lista funciona mal con Personas");
            Assert.AreEqual("[Carlos Sanabria con NIF 12345678A, " +
                            "Pedro Pérez con NIF 12345678B]", listaStrings.ToString(),
                            "El método AddLast() de la lista funciona mal con Personas.");

            listaStrings.RemoveFirst();
            Assert.AreEqual(1, listaStrings.NumeroElementos,
                            "El método RemoveFirst() de la lista funciona mal con Personas");
            Assert.AreEqual("[Pedro Pérez con NIF 12345678B]", listaStrings.ToString(),
                            "El método RemoveFirst() de la lista funciona mal con Personas.");

            Assert.AreEqual("Pedro Pérez con NIF 12345678B", listaStrings.Get(0).ToString(),
                            "El método Get() de la lista funciona mal con Personas");

            Assert.AreEqual(true, listaStrings.Contains(
                                new Persona("Pedro", "Pérez", "12345678B")),
                            "El método Contains() de la lista funciona mal con Personas");
            Assert.AreEqual(false, listaStrings.Contains(
                                new Persona("Luis", "Pérez", "12345678B")),
                            "El método Contains() de la lista funciona mal con Personas");
        }
예제 #4
0
        public void TestListaStrings()
        {
            Lista <String> listaStrings = new Lista <String>("h", "e", "l", "l", "o");

            Assert.AreEqual(5, listaStrings.NumeroElementos,
                            "El constructor de la lista funciona mal con Strings");
            Assert.AreEqual("[h, e, l, l, o]", listaStrings.ToString(),
                            "El constructor de la lista funciona mal con Strings.");

            listaStrings.AddLast("!");
            Assert.AreEqual(6, listaStrings.NumeroElementos,
                            "El método AddLast() de la lista funciona mal con Strings");
            Assert.AreEqual("[h, e, l, l, o, !]", listaStrings.ToString(),
                            "El método AddLast() de la lista funciona mal con Strings.");

            listaStrings.RemoveFirst();
            Assert.AreEqual(5, listaStrings.NumeroElementos,
                            "El método RemoveFirst() de la lista funciona mal con Strings");
            Assert.AreEqual("[e, l, l, o, !]", listaStrings.ToString(),
                            "El método RemoveFirst() de la lista funciona mal con Strings.");

            Assert.AreEqual("e", listaStrings.Get(0),
                            "El método Get() de la lista funciona mal con Strings");

            Assert.AreEqual(true, listaStrings.Contains("l"),
                            "El método Contains() de la lista funciona mal con Strings");
            Assert.AreEqual(false, listaStrings.Contains("k"),
                            "El método Contains() de la lista funciona mal con Strings");
        }
예제 #5
0
        public void TestListaGet()
        {
            lista = new Lista <int>(1, 2, 3);

            // Probamos a retornar elementos en varias posiciones de la lista
            Assert.AreEqual(1, lista.Get(0),
                            "La operación de obtener un elemento no lo retorna correctamente");
            Assert.AreEqual(3, lista.NumeroElementos,
                            "Obtener un elemento de una lista con 3 elementos modifica el número de elementos.");

            Assert.AreEqual(2, lista.Get(1),
                            "La operación de obtener un elemento no lo retorna correctamente");
            Assert.AreEqual(3, lista.NumeroElementos,
                            "Obtener un elemento de una lista con 3 elementos modifica el número de elementos.");

            Assert.AreEqual(3, lista.Get(2),
                            "La operación de obtener un elemento no lo retorna correctamente");
            Assert.AreEqual(3, lista.NumeroElementos,
                            "Obtener un elemento de una lista con 3 elementos modifica el número de elementos.");
        }
예제 #6
0
        /// <summary>
        /// Método auxiliar que comprueba si Filtrar() devuelve la colección esperada.
        /// </summary>
        private void AssertFiltrar <T>(Lista <T> elementos, Predicate <T> predicate, int[] expectedIndicesElementos)
        {
            Lista <T> copiaElementos     = new Lista <T>(elementos);
            var       elementosFiltrados = elementos.Filtrar(predicate);

            // Comprobamos que el numero de elementos de la colección filtrada es el esperado
            Assert.AreEqual(expectedIndicesElementos.Length, elementosFiltrados.Count(),
                            "El método Filtrar() no retorna un IEnumerable con el número de elementos esperado.");

            // Comprobamos que los elementos filtrados son las esperados
            int i = 0;

            foreach (var elementoFiltrado in elementosFiltrados)
            {
                var elementoEsperado = elementos.Get(expectedIndicesElementos[i++]);
                Assert.AreEqual(elementoEsperado, elementoFiltrado,
                                "El método Filtrar() no retorna los elementos esperados");
            }


            // Comprobamos que no se modifica la lista original
            Assert.AreEqual(copiaElementos, elementos,
                            "El método Filtrar() modifica el IEnumerable original.");
        }
예제 #7
0
        public void TestBuscarPersonas()
        {
            Lista <Persona> personas = new Lista <Persona>(Factoria.CrearPersonas());

            #region BusquedaPersonasNombre

            /* Búsqueda de personas por nombre */
            // Buscamos la primera persona cuyo nombre sea María
            AssertBuscar(personas, persona => persona.Nombre == "María", personas.Get(0), messageElementInCollection);
            // Buscamos la primera persona cuyo nombre sea Juan
            AssertBuscar(personas, persona => persona.Nombre == "Juan", personas.Get(1), messageElementInCollection);
            // Buscamos la primera persona cuyo nombre sea Miguel
            AssertBuscar(personas, persona => persona.Nombre == "Miguel", personas.Get(5), messageElementInCollection);
            // Buscamos una persona que no está en la lista y comprobamos que devuelve default(Persona) = null
            AssertBuscar(personas, persona => persona.Nombre == "Ricardo", null, messageElementNotInCollection);

            #endregion

            #region BusquedaPersonasLetraDni

            /* Búsqueda de personas cuyo nif termina en una letra dada */
            // Buscamos la primera persona cuyo nif termine en la letra A
            AssertBuscar(personas, persona => persona.Nif[persona.Nif.Length - 1] == 'A',
                         personas.Get(0), messageElementInCollection);
            // Buscamos la primera persona cuyo nif termine en la letra F
            AssertBuscar(personas, persona => persona.Nif[persona.Nif.Length - 1] == 'F',
                         personas.Get(1), messageElementInCollection);
            // Buscamos la primera persona cuyo nif termine en la letra T
            AssertBuscar(personas, persona => persona.Nif[persona.Nif.Length - 1] == 'T',
                         personas.Get(5), messageElementInCollection);
            // Buscamos una persona que no está en la lista y comprobamos que devuelve default(Persona) = null
            AssertBuscar(personas, persona => persona.Nif[persona.Nif.Length - 1] == 'X',
                         null, messageElementNotInCollection);

            #endregion
        }
예제 #8
0
 public void TestListaGetThrowsException03()
 {
     lista = new Lista <int>(1);
     lista.Get(1);
 }
예제 #9
0
 public void TestListaGetThrowsException01()
 {
     lista = new Lista <int>();
     lista.Get(0);
 }