Add Test for team numbers that are not powers of 2

This commit is contained in:
Daniel Schädler 2019-04-17 21:06:20 +02:00
parent 49a6545af9
commit 6baaebddd9
1 changed files with 25 additions and 3 deletions

View File

@ -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 },