public void ShouldReturnZeroOnEmpty()
 {
     var emptyReviewer = ReviewerBuilder.BuildReviewerWithNoReviews();
     var similarReviews = new List<string>();
     var sumDifferenceSquares = new SumDifferenceSquares(similarReviews, emptyReviewer.Reviews, emptyReviewer.Reviews).Calculate();
     Assert.AreEqual(0.0, sumDifferenceSquares);
 }
 public void ShouldReturnZeroWithNoSimilarReviews()
 {
     var highScoreReviewer = ReviewerBuilder.BuildAllMaxScores();
     var lowScoreReviewer = ReviewerBuilder.BuildAllMidScores();
     var similarReviews = new List<string>();
     var sumDifferenceSquares = new SumDifferenceSquares(similarReviews, highScoreReviewer.Reviews, lowScoreReviewer.Reviews).Calculate();
     Assert.AreEqual(0.0, sumDifferenceSquares);
 }
 public void ShouldReturnZeroWithIdenticalReviews()
 {
     var highScoreReviewer = ReviewerBuilder.BuildOneReviewMax();
     var similarReviews = new List<string>();
     similarReviews.Add("C# in Depth");
     var sumDifferenceSquares = new SumDifferenceSquares(similarReviews, highScoreReviewer.Reviews, highScoreReviewer.Reviews).Calculate();
     Assert.AreEqual(0.0, sumDifferenceSquares);
 }
 public void ShouldCalculateTheSumOfTheSquareOfTheDifferenceOfASingleSimilarReview()
 {
     var highScoreReviewer = ReviewerBuilder.BuildOneReviewMax();
     var lowScoreReviewer = ReviewerBuilder.BuildOneReviewMid();
     var similarReviews = new List<string>();
     similarReviews.Add("C# in Depth");
     var sumDifferenceSquares = new SumDifferenceSquares(similarReviews, highScoreReviewer.Reviews, lowScoreReviewer.Reviews).Calculate();
     Assert.AreEqual(4.0, sumDifferenceSquares);
 }
 public void ShouldCalculateTheSumOfTheSquareOfTheDifferenceOfMultipleSimilarReviews()
 {
     var highScoreReviewer = ReviewerBuilder.BuildAllMaxScores();
     var lowScoreReviewer = ReviewerBuilder.BuildAllMidScores();
     var similarReviews = new List<string>();
     similarReviews.Add("C# in Depth");
     similarReviews.Add("Refactoring");
     similarReviews.Add("Clean Code");
     var sumDifferenceSquares = new SumDifferenceSquares(similarReviews, highScoreReviewer.Reviews, lowScoreReviewer.Reviews).Calculate();
     Assert.AreEqual(12.0, sumDifferenceSquares);
 }
        public double Score()
        {
            SimilarReviews = new FindSimilarReviews(R1.Reviews, R2.Reviews).Calculate();

            if (ReviewersHaveNoSimilarReviews())
            {
                return 0.0;
            }

            var sumDifferenceSquares = new SumDifferenceSquares(SimilarReviews, R1.Reviews, R2.Reviews).Calculate();
            return NormalizeAnswer(sumDifferenceSquares);
        }