mirror of
https://github.com/jcwimer/wrestlingApp
synced 2026-03-25 01:14:43 +00:00
47 lines
1.6 KiB
Ruby
47 lines
1.6 KiB
Ruby
require 'test_helper'
|
|
|
|
class PoolByePointsRulesTest < ActionDispatch::IntegrationTest
|
|
def finish_pool_match_for_wrestler(wrestler)
|
|
match = wrestler.pool_matches.select { |m| m.finished != 1 }.first
|
|
return if match.nil?
|
|
|
|
match.w1 = wrestler.id
|
|
match.winner_id = wrestler.id
|
|
match.finished = 1
|
|
match.win_type = "Decision"
|
|
match.score = "1-0"
|
|
match.save!
|
|
end
|
|
|
|
test "single pool wrestlers do not get pool bye points" do
|
|
create_pool_tournament_single_weight(6)
|
|
wrestler = @tournament.weights.first.wrestlers.first
|
|
finish_pool_match_for_wrestler(wrestler)
|
|
|
|
wrestler_points_calc = CalculateWrestlerTeamScore.new(wrestler)
|
|
assert_equal 0, wrestler_points_calc.byePoints
|
|
end
|
|
|
|
test "pool bye points are not awarded when pools are even" do
|
|
create_pool_tournament_single_weight(8)
|
|
wrestler = @tournament.weights.first.wrestlers.first
|
|
finish_pool_match_for_wrestler(wrestler)
|
|
|
|
wrestler_points_calc = CalculateWrestlerTeamScore.new(wrestler)
|
|
assert_equal 0, wrestler_points_calc.byePoints
|
|
end
|
|
|
|
test "pool bye points are awarded once when wrestler is in a smaller pool" do
|
|
create_pool_tournament_single_weight(9)
|
|
weight = @tournament.weights.first
|
|
smallest_pool = (1..weight.pools).min_by { |pool_number| weight.wrestlers_in_pool(pool_number).size }
|
|
wrestler = weight.wrestlers_in_pool(smallest_pool).first
|
|
|
|
finish_pool_match_for_wrestler(wrestler)
|
|
finish_pool_match_for_wrestler(wrestler)
|
|
|
|
wrestler_points_calc = CalculateWrestlerTeamScore.new(wrestler)
|
|
assert_equal 2, wrestler_points_calc.byePoints
|
|
end
|
|
end
|