mirror of
https://github.com/jcwimer/wrestlingApp
synced 2026-03-25 01:14:43 +00:00
420 lines
13 KiB
Ruby
420 lines
13 KiB
Ruby
require 'test_helper'
|
|
|
|
class PoolAdvancementTest < ActionDispatch::IntegrationTest
|
|
|
|
def setup
|
|
@tournament = Tournament.find(1)
|
|
@tournament.generateMatchups
|
|
@matches = @tournament.matches
|
|
end
|
|
|
|
def showMatches
|
|
matches = Match.where(weight_id: 4)
|
|
# matches = @matches.select{|m| m.weight_id == 4}
|
|
matches.each do |m|
|
|
puts "Bout: #{m.bout_number} #{m.w1_name} vs #{m.w2_name} #{m.bracket_position} #{m.poolNumber}"
|
|
end
|
|
end
|
|
|
|
def nineManBracketPoolOneOutrightWinnerGuyTwo
|
|
matches = @matches.select{|m| m.weight_id == 3 && m.bracket_position == "Pool"}
|
|
endMatch(1002,"Guy8",matches)
|
|
endMatch(1003,"Guy10",matches)
|
|
endMatch(2002,"Guy2",matches)
|
|
endMatch(2003,"Guy8",matches)
|
|
endMatch(3003,"Guy2",matches)
|
|
endMatch(4002,"Guy8",matches)
|
|
endMatch(4003,"Guy2",matches)
|
|
endMatch(5002,"Guy2",matches)
|
|
endMatch(5003,"Guy5",matches)
|
|
endMatch(3002,"Guy5",matches)
|
|
end
|
|
|
|
def nineManBracketPoolTwoGuyNineHeadToHead
|
|
matches = @matches.select{|m| m.weight_id == 3 && m.bracket_position == "Pool"}
|
|
endMatch(1004,"Guy4",matches)
|
|
endMatch(1005,"Guy3",matches)
|
|
endMatch(2004,"Guy3",matches)
|
|
endMatch(2005,"Guy9",matches)
|
|
endMatch(3004,"Guy7",matches)
|
|
endMatch(3005,"Guy9",matches)
|
|
end
|
|
|
|
def nineManBracketPoolTwoGuyThreeHeadToHead
|
|
matches = @matches.select{|m| m.weight_id == 3 && m.bracket_position == "Pool"}
|
|
endMatch(1004,"Guy9",matches)
|
|
endMatch(1005,"Guy3",matches)
|
|
endMatch(2004,"Guy4",matches)
|
|
endMatch(2005,"Guy9",matches)
|
|
endMatch(3004,"Guy7",matches)
|
|
#DEDUCTED POINTS SHOULD NOT MATTER FOR HEAD TO HEAD
|
|
deduct = Teampointadjust.new
|
|
deduct.wrestler_id = translateNameToId("Guy3")
|
|
deduct.points = 1
|
|
deduct.save
|
|
endMatch(3005,"Guy3",matches)
|
|
end
|
|
|
|
def nineManBracketPoolTwoGuyThreeDeductedPoints
|
|
matches = @matches.select{|m| m.weight_id == 3 && m.bracket_position == "Pool"}
|
|
endMatch(1004,"Guy9",matches)
|
|
endMatch(1005,"Guy7",matches)
|
|
endMatch(2004,"Guy3",matches)
|
|
endMatch(2005,"Guy9",matches)
|
|
endMatch(3004,"Guy7",matches)
|
|
endMatch(3005,"Guy3",matches)
|
|
deduct = Teampointadjust.new
|
|
deduct.wrestler_id = translateNameToId("Guy7")
|
|
deduct.points = 1
|
|
deduct.save
|
|
end
|
|
|
|
def nineManBracketPoolTwoGuyThreeTeamPoints
|
|
matches = @matches.select{|m| m.weight_id == 3 && m.bracket_position == "Pool"}
|
|
endMatch(1004,"Guy9",matches)
|
|
endMatch(1005,"Guy7",matches)
|
|
endMatchWithMajor(2004,"Guy3",matches)
|
|
endMatch(2005,"Guy9",matches)
|
|
endMatch(3004,"Guy7",matches)
|
|
endMatch(3005,"Guy3",matches)
|
|
end
|
|
|
|
def nineManBracketPoolTwoGuyThreeMostPins
|
|
matches = @matches.select{|m| m.weight_id == 3 && m.bracket_position == "Pool"}
|
|
endMatchWithMajor(1004,"Guy9",matches)
|
|
endMatch(1005,"Guy7",matches)
|
|
endMatchWithPin(2004,"Guy3",matches)
|
|
endMatchWithMajor(2005,"Guy9",matches)
|
|
endMatch(3004,"Guy7",matches)
|
|
endMatch(3005,"Guy3",matches)
|
|
end
|
|
|
|
def nineManBracketPoolOneGuyEightMostTechs
|
|
matches = @matches.select{|m| m.weight_id == 3 && m.bracket_position == "Pool"}
|
|
endMatchWithTech(1002,"Guy8",matches)
|
|
endMatchWithMajor(1003,"Guy10",matches)
|
|
endMatchWithMajor(2002,"Guy2",matches)
|
|
endMatchWithTech(2003,"Guy8",matches)
|
|
endMatchWithMajor(3002,"Guy10",matches)
|
|
endMatchWithMajor(3003,"Guy2",matches)
|
|
endMatch(4002,"Guy8",matches)
|
|
endMatchWithMajor(4003,"Guy2",matches)
|
|
endMatchWithMajor(5002,"Guy10",matches)
|
|
endMatch(5003,"Guy5",matches)
|
|
end
|
|
|
|
def elevenManBracketToQuarter
|
|
matches = @matches
|
|
endMatch(1009,"Guy11",matches)
|
|
endMatch(2009,"Guy11",matches)
|
|
endMatch(3009,"Guy17",matches)
|
|
endMatch(1010,"Guy12",matches)
|
|
endMatch(2010,"Guy12",matches)
|
|
endMatch(3010,"Guy16",matches)
|
|
endMatch(1011,"Guy15",matches)
|
|
endMatch(2011,"Guy15",matches)
|
|
endMatch(3011,"Guy19",matches)
|
|
endMatch(1012,"Guy14",matches)
|
|
end
|
|
def elevenManBracketToSemis
|
|
matches = @matches
|
|
endMatch(4006,"Guy11",matches)
|
|
endMatch(4007,"Guy14",matches)
|
|
endMatch(4008,"Guy12",matches)
|
|
endMatch(4009,"Guy15",matches)
|
|
end
|
|
|
|
def elevenManBracketToFinals
|
|
matches = @matches
|
|
endMatch(5006,"Guy11",matches)
|
|
endMatch(5007,"Guy12",matches)
|
|
endMatch(5008,"Guy16",matches)
|
|
endMatch(5009,"Guy17",matches)
|
|
end
|
|
|
|
def elevenManBracketFinished
|
|
matches = @matches
|
|
endMatch(6002,"Guy11",matches)
|
|
endMatch(6003,"Guy14",matches)
|
|
endMatch(6004,"Guy16",matches)
|
|
endMatch(6005,"Guy19",matches)
|
|
end
|
|
|
|
def endMatch(bout,winner,matches)
|
|
match = matches.select{|m| m.bout_number == bout}.first
|
|
match.finished = 1
|
|
match.winner_id = translateNameToId(winner)
|
|
match.win_type = "Decision"
|
|
#Need to manually assign mat_id because thise weight class is not currently assigned a mat
|
|
mat = @tournament.mats.first
|
|
match.mat_id = mat.id
|
|
match.save
|
|
end
|
|
|
|
def endMatchWithMajor(bout,winner,matches)
|
|
match = matches.select{|m| m.bout_number == bout}.first
|
|
match.finished = 1
|
|
match.winner_id = translateNameToId(winner)
|
|
match.win_type = "Major"
|
|
#Need to manually assign mat_id because thise weight class is not currently assigned a mat
|
|
mat = @tournament.mats.first
|
|
match.mat_id = mat.id
|
|
match.save
|
|
end
|
|
|
|
def endMatchWithTech(bout,winner,matches)
|
|
match = matches.select{|m| m.bout_number == bout}.first
|
|
match.finished = 1
|
|
match.winner_id = translateNameToId(winner)
|
|
match.win_type = "Tech Fall"
|
|
#Need to manually assign mat_id because thise weight class is not currently assigned a mat
|
|
mat = @tournament.mats.first
|
|
match.mat_id = mat.id
|
|
match.save
|
|
end
|
|
|
|
def endMatchWithPin(bout,winner,matches)
|
|
match = matches.select{|m| m.bout_number == bout}.first
|
|
match.finished = 1
|
|
match.winner_id = translateNameToId(winner)
|
|
match.win_type = "Pin"
|
|
#Need to manually assign mat_id because thise weight class is not currently assigned a mat
|
|
mat = @tournament.mats.first
|
|
match.mat_id = mat.id
|
|
match.save
|
|
end
|
|
|
|
def translateNameToId(wrestler)
|
|
Wrestler.where("name = ?", wrestler).first.id
|
|
end
|
|
|
|
test "nine man outright finals advance" do
|
|
nineManBracketPoolOneOutrightWinnerGuyTwo
|
|
wrestler = Wrestler.where("name = ?", "Guy2").first
|
|
assert_equal 6000, wrestler.boutByRound(6)
|
|
end
|
|
|
|
test "nine man outright conso finals advance" do
|
|
nineManBracketPoolOneOutrightWinnerGuyTwo
|
|
wrestler = Wrestler.where("name = ?", "Guy8").first
|
|
assert_equal 6001, wrestler.boutByRound(6)
|
|
end
|
|
|
|
test "nine man pool 2 man to man tie breaker finalist guy 9" do
|
|
wrestler = Wrestler.where("name = ?", "Guy9").first
|
|
nineManBracketPoolTwoGuyNineHeadToHead
|
|
assert_equal 6000, wrestler.boutByRound(6)
|
|
end
|
|
|
|
test "nine man pool 2 man to man tie breaker finalist guy 3" do
|
|
wrestler = Wrestler.where("name = ?", "Guy3").first
|
|
nineManBracketPoolTwoGuyThreeHeadToHead
|
|
assert_equal 6000, wrestler.boutByRound(6)
|
|
end
|
|
|
|
test "nine man conso finals man to man tie breaker guy 3" do
|
|
nineManBracketPoolTwoGuyNineHeadToHead
|
|
wrestler = Wrestler.where("name = ?", "Guy3").first
|
|
assert_equal 6001, wrestler.boutByRound(6)
|
|
end
|
|
|
|
test "nine man conso finals man to man tie breaker guy 9" do
|
|
nineManBracketPoolTwoGuyThreeHeadToHead
|
|
wrestler = Wrestler.where("name = ?", "Guy9").first
|
|
assert_equal 6001, wrestler.boutByRound(6)
|
|
end
|
|
|
|
test "nine man pool 2 deductedPoints tie breaker finalist guy 3" do
|
|
wrestler = Wrestler.where("name = ?", "Guy3").first
|
|
nineManBracketPoolTwoGuyThreeDeductedPoints
|
|
assert_equal 6000, wrestler.boutByRound(6)
|
|
end
|
|
|
|
test "nine man conso finals deductedPoints tie breaker guy 9" do
|
|
nineManBracketPoolTwoGuyThreeDeductedPoints
|
|
wrestler = Wrestler.where("name = ?", "Guy9").first
|
|
assert_equal 6001, wrestler.boutByRound(6)
|
|
end
|
|
|
|
test "nine man pool 2 teamPoints tie breaker finalist guy 3" do
|
|
wrestler = Wrestler.where("name = ?", "Guy3").first
|
|
nineManBracketPoolTwoGuyThreeTeamPoints
|
|
assert_equal 6000, wrestler.boutByRound(6)
|
|
end
|
|
|
|
test "nine man conso finals teamPoints tie breaker guy 9" do
|
|
nineManBracketPoolTwoGuyThreeTeamPoints
|
|
wrestler = Wrestler.where("name = ?", "Guy9").first
|
|
assert_equal 6001, wrestler.boutByRound(6)
|
|
end
|
|
|
|
test "nine man pool 2 mostPins tie breaker finalist guy 3" do
|
|
wrestler = Wrestler.where("name = ?", "Guy3").first
|
|
nineManBracketPoolTwoGuyThreeMostPins
|
|
assert_equal 6000, wrestler.boutByRound(6)
|
|
end
|
|
|
|
test "nine man conso finals mostPins tie breaker guy 9" do
|
|
nineManBracketPoolTwoGuyThreeMostPins
|
|
wrestler = Wrestler.where("name = ?", "Guy9").first
|
|
assert_equal 6001, wrestler.boutByRound(6)
|
|
end
|
|
|
|
test "nine man pool 1 mostTechs tie breaker finalist guy 8" do
|
|
nineManBracketPoolOneGuyEightMostTechs
|
|
wrestler = Wrestler.where("name = ?", "Guy8").first
|
|
assert_equal 6000, wrestler.boutByRound(6)
|
|
end
|
|
|
|
test "nine man conso finals mostTechs tie breaker guy 10" do
|
|
nineManBracketPoolOneGuyEightMostTechs
|
|
wrestler = Wrestler.where("name = ?", "Guy10").first
|
|
assert_equal 6001, wrestler.boutByRound(6)
|
|
end
|
|
|
|
test "twoPoolsToFinal total points finals" do
|
|
nineManBracketPoolOneOutrightWinnerGuyTwo
|
|
nineManBracketPoolTwoGuyThreeHeadToHead
|
|
wrestler1 = Wrestler.where("name = ?", "Guy2").first
|
|
wrestler2 = Wrestler.where("name = ?", "Guy3").first
|
|
#Won four in pool
|
|
assert_equal 16, wrestler1.totalTeamPoints
|
|
#Won two in pool but was deducted a point
|
|
assert_equal 13, wrestler2.totalTeamPoints
|
|
end
|
|
|
|
test "advancement points 1/2" do
|
|
nineManBracketPoolOneOutrightWinnerGuyTwo
|
|
wrestler1 = Wrestler.where("name = ?", "Guy2").first
|
|
assert_equal 12, wrestler1.placementPoints
|
|
end
|
|
|
|
test "advancement points 3/4" do
|
|
nineManBracketPoolOneOutrightWinnerGuyTwo
|
|
wrestler1 = Wrestler.where("name = ?", "Guy8").first
|
|
assert_equal 9, wrestler1.placementPoints
|
|
end
|
|
|
|
test "advancement points 5/6" do
|
|
|
|
end
|
|
|
|
test "advancement points 7/8" do
|
|
|
|
end
|
|
|
|
test "advancement points winner 1/2" do
|
|
nineManBracketPoolOneOutrightWinnerGuyTwo
|
|
nineManBracketPoolTwoGuyThreeHeadToHead
|
|
endMatch(6000,"Guy2",@matches)
|
|
wrestler1 = Wrestler.where("name = ?", "Guy2").first
|
|
assert_equal 16, wrestler1.placementPoints
|
|
end
|
|
|
|
test "advancement points winner 3/4" do
|
|
nineManBracketPoolOneOutrightWinnerGuyTwo
|
|
nineManBracketPoolTwoGuyThreeHeadToHead
|
|
endMatch(6001,"Guy8",@matches)
|
|
wrestler1 = Wrestler.where("name = ?", "Guy8").first
|
|
assert_equal 10, wrestler1.placementPoints
|
|
end
|
|
|
|
test "advancement points winner 5/6" do
|
|
|
|
end
|
|
|
|
test "advancement points winner 7/8" do
|
|
|
|
end
|
|
|
|
test "bonus points major" do
|
|
endMatchWithMajor(2002,"Guy2",@matches)
|
|
wrestler1 = Wrestler.where("name = ?", "Guy2").first
|
|
assert_equal 2, wrestler1.teamPointsEarned
|
|
end
|
|
|
|
test "bonus points pin" do
|
|
endMatchWithPin(2002,"Guy2",@matches)
|
|
wrestler1 = Wrestler.where("name = ?", "Guy2").first
|
|
assert_equal 3, wrestler1.teamPointsEarned
|
|
end
|
|
|
|
test "bonus points tech fall" do
|
|
endMatchWithTech(2002,"Guy2",@matches)
|
|
wrestler1 = Wrestler.where("name = ?", "Guy2").first
|
|
assert_equal 2.5, wrestler1.teamPointsEarned
|
|
end
|
|
|
|
test "pool team points win" do
|
|
endMatch(2002,"Guy2",@matches)
|
|
wrestler1 = Wrestler.where("name = ?", "Guy2").first
|
|
assert_equal 1, wrestler1.teamPointsEarned
|
|
end
|
|
|
|
test "advancement points fourPoolsToQuarter Quarter" do
|
|
elevenManBracketToQuarter
|
|
wrestler1 = Wrestler.where("name = ?", "Guy11").first
|
|
assert_equal 3, wrestler1.placementPoints
|
|
end
|
|
|
|
test "advancement points fourPoolsToQuarter Semis" do
|
|
# elevenManBracketToQuarter
|
|
# elevenManBracketToSemis
|
|
# showMatches
|
|
|
|
matches = @matches
|
|
endMatch(1009,"Guy11",matches)
|
|
endMatch(2009,"Guy11",matches)
|
|
endMatch(3009,"Guy17",matches)
|
|
endMatch(1010,"Guy12",matches)
|
|
endMatch(2010,"Guy12",matches)
|
|
endMatch(3010,"Guy16",matches)
|
|
endMatch(1011,"Guy15",matches)
|
|
endMatch(2011,"Guy15",matches)
|
|
endMatch(3011,"Guy19",matches)
|
|
endMatch(1012,"Guy14",matches)
|
|
|
|
endMatch(4006,"Guy11",matches)
|
|
endMatch(4007,"Guy14",matches)
|
|
endMatch(4008,"Guy12",matches)
|
|
endMatch(4009,"Guy15",matches)
|
|
|
|
# showMatches
|
|
|
|
wrestler = Wrestler.where("name = ?", "Guy11").first
|
|
match = Match.where(bout_number: 4006).first
|
|
puts match.inspect
|
|
# puts Wrestler.find(match.winner_id).name
|
|
# match = Match.where(bout_number: 5006).first
|
|
# puts match.inspect
|
|
puts wrestler.weight.allPoolMatchesFinished(wrestler.generatePoolNumber)
|
|
puts wrestler.finishedBracketMatches.size
|
|
puts wrestler.lastMatch.bout_number
|
|
puts wrestler.winnerOfLastMatch?
|
|
puts wrestler.nextMatchPositionNumber.ceil
|
|
puts wrestler.nextMatchPositionNumber
|
|
match = Match.where("bracket_position = ? AND bracket_position_number = ? AND weight_id = ?","Semis",wrestler.nextMatchPositionNumber,wrestler.weight_id).first
|
|
puts match.bout_number
|
|
assert_equal 9, wrestler.placementPoints
|
|
end
|
|
|
|
test "advancement points twoPoolsToSemi Semis" do
|
|
|
|
end
|
|
|
|
test "advancement points twoPoolsToSemi Conso Semis" do
|
|
|
|
end
|
|
|
|
test "advancement points fourPoolsToSemi Semis" do
|
|
|
|
end
|
|
|
|
test "advancement points fourPoolsToSemi Conso Semis" do
|
|
|
|
end
|
|
|
|
|
|
|
|
end
|