public void TestMapPersonas()
        {
            Lista <Persona> personas      = new Lista <Persona>(Factoria.CrearPersonas());
            Lista <Persona> copiaPersonas = new Lista <Persona>(personas);

            var apellidosNombres = personas.Map(persona => persona.Apellido1 + ", " + persona.Nombre);

            // Comprobamos que los elementos son los esperados
            Assert.AreEqual(personas.NumeroElementos, apellidosNombres.Count(),
                            "El método Map() modifica el numero de elementos del IEnumerable.");

            var enumerator = personas.GetEnumerator();

            foreach (var apellidosNombre in apellidosNombres)
            {
                enumerator.MoveNext();
                var persona = enumerator.Current;
                Assert.AreEqual(persona.Apellido1 + ", " + persona.Nombre, apellidosNombre,
                                "El método Map() no retorna los elementos esperados");
            }

            // Comprobamos que no se modifica la lista original
            Assert.AreEqual(copiaPersonas, personas,
                            "El método Map() modifica el IEnumerable original.");
        }
        public void TestMapAngulos()
        {
            Lista <Angulo> angulos      = new Lista <Angulo>(Factoria.CrearAngulos());
            Lista <Angulo> copiaAngulos = new Lista <Angulo>(angulos);

            var cuadrantesAngulos = angulos.Map(angulo => angulo.Cuadrante);

            // Comprobamos que los elementos son los esperados
            Assert.AreEqual(angulos.NumeroElementos, cuadrantesAngulos.Count(),
                            "El método Map() modifica el numero de elementos del IEnumerable.");

            int i = 0;

            foreach (var cuadrante in cuadrantesAngulos)
            {
                int expectedCuadrante;
                if (i <= 90)
                {
                    expectedCuadrante = 1;
                }
                else if (i <= 180)
                {
                    expectedCuadrante = 2;
                }
                else if (i <= 270)
                {
                    expectedCuadrante = 3;
                }
                else
                {
                    expectedCuadrante = 4;
                }

                Assert.AreEqual(expectedCuadrante, cuadrante,
                                "El método Map() no retorna los elementos esperados");

                i++;
            }

            // Comprobamos que no se modifica la lista original
            Assert.AreEqual(copiaAngulos, angulos,
                            "El método Map() modifica el IEnumerable original.");
        }