public void TestReducirPersonas() { Lista <Persona> personas = new Lista <Persona>(Factoria.CrearPersonas()); var distribucionPersonasNombre = personas.Reducir((dict, persona) => { if (dict.ContainsKey(persona.Nombre)) { dict[persona.Nombre]++; } else { dict[persona.Nombre] = 1; } return(dict); }, new Dictionary <string, int>()); var expectedDistribucion = new Dictionary <string, int> { { "María", 2 }, { "Juan", 2 }, { "Pepe", 1 }, { "Luis", 1 }, { "Carlos", 1 }, { "Miguel", 1 }, { "Cristina", 1 } }; Assert.IsTrue(EqualDictionarys(expectedDistribucion, distribucionPersonasNombre), "El método Reducir() no funciona correctamente."); }
public void TestReducirAngulos() { Lista <Angulo> angulos = new Lista <Angulo>(Factoria.CrearAngulos()); #region SumaGradosAngulos var sumaGrados = angulos.Reducir((float acumulado, Angulo angulo) => acumulado + angulo.Grados); var expectedSumaGrados = (float)GetArrayIndices(0, 360).Aggregate((acumulado, val) => acumulado + val); Assert.AreEqual(expectedSumaGrados, sumaGrados, "El método Reducir() no funciona correctamente."); #endregion #region SenoMaximoAngulos var senoMaximo = angulos.Reducir((double senoMax, Angulo angulo) => Math.Max(senoMax, angulo.Seno())); var expectedSenoMaximo = 1.0; Assert.AreEqual(expectedSenoMaximo, senoMaximo, "El método Reducir() no funciona correctamente."); #endregion }