public async Task GetCandidatesAverageAsync_ShouldReturnTheAverageOfTheCandidatesScores() { // Arrange mock.Setup(m => m.GetCandidatesAsync()) .Returns(Task.Run(() => PopulateCandidates())); var candidatesBusiness = new CandidatesBusiness(mock.Object, autoMapperConfiguration.CreateMapper()); double expected = CreateCandidatesWithResultsTests().Average(c => c.Score); // Act double actual = await candidatesBusiness.GetCandidatesAverageAsync(); // Assert Assert.AreEqual(expected, actual); }
public async Task GetCandidatesStantdardDeviationAsync_ShouldReturnTheStandardDeviationOfTheCandidatesScores() { // Arrange mock.Setup(m => m.GetCandidatesAsync()) .Returns(Task.Run(() => PopulateCandidates())); var candidatesBusiness = new CandidatesBusiness(mock.Object, autoMapperConfiguration.CreateMapper()); double avg = CreateCandidatesWithResultsTests().Average(c => c.Score); IEnumerable <int> scoresArray = CreateCandidatesWithResultsTests().Select(c => c.Score); double sumOfSquareDifferences = scoresArray.Select(s => Math.Pow(s - avg, 2)).Sum(); double expected = Math.Sqrt(sumOfSquareDifferences / scoresArray.Count()); // Act double actual = await candidatesBusiness.GetCandidatesStantdardDeviationAsync(); // Assert Assert.AreEqual(expected, actual); }
public async Task GetCandidates_ShouldReturnAllCandidatesWithTheirScores() { // Arrange mock.Setup(m => m.GetCandidatesAsync()) .Returns(Task.Run(() => PopulateCandidates())); var candidatesBusiness = new CandidatesBusiness(mock.Object, autoMapperConfiguration.CreateMapper()); var expected = CreateCandidatesWithResultsTests(); // Act var actual = await candidatesBusiness.GetCandidatesAsync(); // Assert Assert.IsNotNull(actual); Assert.AreEqual(expected.Count(), actual.Count()); for (int i = 0; i < expected.Count(); i++) { Assert.AreEqual(expected.ElementAt(i).TestTitle, actual.ElementAt(i).TestTitle); Assert.AreEqual(expected.ElementAt(i).Score, actual.ElementAt(i).Score); } }