Add Test for team numbers that are not powers of 2
This commit is contained in:
parent
49a6545af9
commit
6baaebddd9
|
|
@ -1,7 +1,7 @@
|
||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
|
||||||
RSpec.describe MatchService do
|
RSpec.describe MatchService do
|
||||||
describe '#generate_matches' do
|
describe 'generates' do
|
||||||
[
|
[
|
||||||
{ team_size: 2 },
|
{ team_size: 2 },
|
||||||
{ team_size: 4 },
|
{ team_size: 4 },
|
||||||
|
|
@ -11,7 +11,7 @@ RSpec.describe MatchService do
|
||||||
{ team_size: 64 }
|
{ team_size: 64 }
|
||||||
].each do |parameters|
|
].each do |parameters|
|
||||||
result = parameters[:team_size] / 2
|
result = parameters[:team_size] / 2
|
||||||
it "generates #{result} matches from #{parameters[:team_size]} teams" do
|
it "#{result} matches from #{parameters[:team_size]} teams" do
|
||||||
teams = build_list(:team, parameters[:team_size], tournament: create(:tournament))
|
teams = build_list(:team, parameters[:team_size], tournament: create(:tournament))
|
||||||
generated_matches = MatchService.generate_matches teams
|
generated_matches = MatchService.generate_matches teams
|
||||||
expect(generated_matches.size).to eq(result)
|
expect(generated_matches.size).to eq(result)
|
||||||
|
|
@ -67,7 +67,29 @@ RSpec.describe MatchService do
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
# TODO: matches right teams for !powers of 2
|
[
|
||||||
|
{ team_size: 3 },
|
||||||
|
{ team_size: 5 },
|
||||||
|
{ team_size: 7 },
|
||||||
|
{ team_size: 19 },
|
||||||
|
{ team_size: 41 },
|
||||||
|
{ team_size: 52 },
|
||||||
|
{ team_size: 111 }
|
||||||
|
|
||||||
|
].each do |parameters|
|
||||||
|
it "matches the right teams for team numbers that are not powers of 2 (#{parameters[:team_size]})" ,focus: true do
|
||||||
|
team_size = parameters[:team_size]
|
||||||
|
teams = build_list(:team, team_size, tournament: create(:tournament))
|
||||||
|
generated_matches = MatchService.generate_matches teams
|
||||||
|
team_order = []
|
||||||
|
generated_matches.each do |match|
|
||||||
|
match.match_scores.each do |score|
|
||||||
|
team_order << score.team
|
||||||
|
end
|
||||||
|
end
|
||||||
|
expect(team_order).to eq(teams)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
[
|
[
|
||||||
{ team_size: 3, single_team_matches: 1 },
|
{ team_size: 3, single_team_matches: 1 },
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue