public void AnalysedClimbersInRankOrder_GivenClimberWithOverrideScoreboardPositionValue_ShouldRankClimbersByRouteCountDescending()
        {
            // Arrange.
            Climber[] climbers =
            {
                Climber.Create("Climber1", new[] { Route.Create("C1R1") }, null),
                Climber.Create("Climber2", new[] { Route.Create("C2R1"), Route.Create("C2R2")},    1),
                Climber.Create("Climber3", new[] { Route.Create("C3R1"), Route.Create("C3R2"), Route.Create("C3R3")}, null)
            };

            // Act.
            var testObject = new Scoreboard(climbers, null);

            // Assert.
            IClimberAnalysis firstClimberAnalysis = testObject.AnalysedClimbersInRankOrder.First();

            Assert.AreEqual("Climber2", firstClimberAnalysis.Climber.Name);
        }
        public void AnalysedClimbersInRankOrder_GivenInputModel_ShouldRankClimbersByRouteCountDescending()
        {
            // Arrange.
            Climber[] climbers =
            {
                Climber.Create("Climber1", new[] { Route.Create("C1R1") }, null),
                Climber.Create("Climber2", new[] { Route.Create("C2R1"), Route.Create("C2R2")}, null),
                Climber.Create("Climber3", new[] { Route.Create("C3R1"), Route.Create("C3R2"), Route.Create("C3R3")}, null)
            };

            // Act.
            var testObject = new Scoreboard(climbers, null);

            // Assert.
            IClimberAnalysis firstClimberAnalysis = testObject.AnalysedClimbersInRankOrder.First();
            IClimberAnalysis lastClimberAnalysis  = testObject.AnalysedClimbersInRankOrder.Last();

            Assert.AreEqual("Climber3", firstClimberAnalysis.Climber.Name);
            Assert.AreEqual("Climber1", lastClimberAnalysis.Climber.Name);
            Assert.AreEqual(3, firstClimberAnalysis.Climber.RouteCount);
            Assert.AreEqual(1, lastClimberAnalysis.Climber.RouteCount);
        }