public CompetitionRunResultRankingComparable(CompetitionRunResult runResult, CompetitionClassModel model, RankingComparisonMode comparisonMode) { Guard.NotNull(runResult, nameof(runResult)); Guard.NotNull(model, nameof(model)); this.runResult = runResult; this.comparisonMode = comparisonMode; calculator = new CompetitorAssessmentCalculator(runResult, model); }
private static void AssertCompetitorsAreCompatibleWithProposedScenario( [NotNull] CompetitionRunResult xCompetitor, [NotNull] CompetitionRunResult yCompetitor, [NotNull] OrderingScenario scenario, [NotNull] CompetitionClassModel model) { var xCalculator = new CompetitorAssessmentCalculator(xCompetitor, model); var yCalculator = new CompetitorAssessmentCalculator(yCompetitor, model); if (scenario[0]) { xCompetitor.HasFinished.Should().BeTrue(); } else { xCompetitor.HasFinished.Should().BeFalse(); } if (scenario[1]) { xCompetitor.IsEliminated.Should().BeTrue(); } else { xCompetitor.IsEliminated.Should().BeFalse(); } if (scenario[2]) { yCompetitor.HasFinished.Should().BeTrue(); } else { yCompetitor.HasFinished.Should().BeFalse(); } if (scenario[3]) { yCompetitor.IsEliminated.Should().BeTrue(); } else { yCompetitor.IsEliminated.Should().BeFalse(); } if (scenario[4]) { xCalculator.PenaltyTime.Should().BeGreaterThan(yCalculator.PenaltyTime); } else { xCalculator.PenaltyTime.Should().BeLessOrEqualTo(yCalculator.PenaltyTime); } if (scenario[5]) { xCalculator.OverrunTime.Should().BeGreaterThan(yCalculator.OverrunTime); } else { xCalculator.OverrunTime.Should().BeLessOrEqualTo(yCalculator.OverrunTime); } if (scenario[6]) { yCalculator.PenaltyTime.Should().BeGreaterThan(xCalculator.PenaltyTime); } else { yCalculator.PenaltyTime.Should().BeLessOrEqualTo(xCalculator.PenaltyTime); } if (scenario[7]) { yCalculator.OverrunTime.Should().BeGreaterThan(xCalculator.OverrunTime); } else { yCalculator.OverrunTime.Should().BeLessOrEqualTo(xCalculator.OverrunTime); } if (scenario[8]) { xCalculator.FinishTime.Should().BeGreaterThan(yCalculator.FinishTime); } else { xCalculator.FinishTime.Should().BeLessOrEqualTo(yCalculator.FinishTime); } if (scenario[9]) { xCompetitor.Competitor.Number.Should().BeGreaterThan(yCompetitor.Competitor.Number); } else { xCompetitor.Competitor.Number.Should().BeLessOrEqualTo(yCompetitor.Competitor.Number); } if (scenario[10]) { yCalculator.FinishTime.Should().BeGreaterThan(xCalculator.FinishTime); } else { yCalculator.FinishTime.Should().BeLessOrEqualTo(xCalculator.FinishTime); } if (scenario[11]) { yCompetitor.Competitor.Number.Should().BeGreaterThan(xCompetitor.Competitor.Number); } else { yCompetitor.Competitor.Number.Should().BeLessOrEqualTo(xCompetitor.Competitor.Number); } }
private static void AssertCompetitorsAreCompatibleWithProposedScenario( [NotNull] CompetitionRunResult xCompetitor, [NotNull] CompetitionRunResult yCompetitor, [NotNull] OrderingScenario scenario, [NotNull] CompetitionClassModel model) { var xCalculator = new CompetitorAssessmentCalculator(xCompetitor, model); var yCalculator = new CompetitorAssessmentCalculator(yCompetitor, model); if (scenario[0]) { xCalculator.PenaltyTime.Should().BeGreaterThan(yCalculator.PenaltyTime); } else { xCalculator.PenaltyTime.Should().BeLessOrEqualTo(yCalculator.PenaltyTime); } if (scenario[1]) { xCalculator.OverrunTime.Should().BeGreaterThan(yCalculator.OverrunTime); } else { xCalculator.OverrunTime.Should().BeLessOrEqualTo(yCalculator.OverrunTime); } if (scenario[2]) { yCalculator.PenaltyTime.Should().BeGreaterThan(xCalculator.PenaltyTime); } else { yCalculator.PenaltyTime.Should().BeLessOrEqualTo(xCalculator.PenaltyTime); } if (scenario[3]) { yCalculator.OverrunTime.Should().BeGreaterThan(xCalculator.OverrunTime); } else { yCalculator.OverrunTime.Should().BeLessOrEqualTo(xCalculator.OverrunTime); } }