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
|
||||
|
||||
RSpec.describe MatchService do
|
||||
describe '#generate_matches' do
|
||||
describe 'generates' do
|
||||
[
|
||||
{ team_size: 2 },
|
||||
{ team_size: 4 },
|
||||
|
|
@ -11,7 +11,7 @@ RSpec.describe MatchService do
|
|||
{ team_size: 64 }
|
||||
].each do |parameters|
|
||||
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))
|
||||
generated_matches = MatchService.generate_matches teams
|
||||
expect(generated_matches.size).to eq(result)
|
||||
|
|
@ -67,7 +67,29 @@ RSpec.describe MatchService do
|
|||
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 },
|
||||
|
|
|
|||
Loading…
Reference in New Issue