diff --git a/app/models/pool.rb b/app/models/pool.rb index 23f6037..cc6cb98 100644 --- a/app/models/pool.rb +++ b/app/models/pool.rb @@ -3,7 +3,7 @@ class Pool @pools = weight.pools @pool = 1 while @pool <= @pools - matches = roundRobin(weight.wrestlers, weight, tournament , matches) + matches = roundRobin(weight.wrestlers, weight, tournament, matches) @pool += 1 end return matches @@ -12,19 +12,16 @@ class Pool def roundRobin(wrestlers,weight,tournament,matches) @wrestlers = wrestlers.select{|w| w.generatePoolNumber == @pool}.to_a @poolMatches = RoundRobinTournament.schedule(@wrestlers).reverse - @poolMatches.each_with_index do |b,index| + @poolMatches.each_with_index do |b, index| + round = index + 1 @bout = b.map @bout.each do |bout| if bout[0] != nil and bout[1] != nil - @match = Match.new - @match.w1 = bout[0].id - @match.w2 = bout[1].id - @match.weight_id = weight.id - @match.round = index + 1 + @match = Match.new(w1: bout[0].id, w2: bout[1].id, weight_id: weight.id, round: round) matches << @match end end end - return matches + matches end end diff --git a/app/models/wrestler.rb b/app/models/wrestler.rb index 80f8fe2..c8c4d8a 100644 --- a/app/models/wrestler.rb +++ b/app/models/wrestler.rb @@ -3,23 +3,22 @@ class Wrestler < ActiveRecord::Base belongs_to :weight has_one :tournament, through: :weight attr_accessor :poolNumber - + before_save do self.tournament.destroyAllMatches end - - + + def isWrestlingThisRound(matchRound) if allMatches.blank? return false else return true - end + end end def generatePoolNumber @pool = self.weight.returnPoolNumber(self) - return @pool end def boutByRound(round,matches) @@ -30,7 +29,7 @@ class Wrestler < ActiveRecord::Base return @match.bout_number end end - + def allMatches @matches = Match.where("w1 = ? or w2 = ?",self.id,self.id) return @matches @@ -48,7 +47,7 @@ class Wrestler < ActiveRecord::Base elsif self.season_win == 0 return 0 elsif self.season_win == nil or self.season_loss == nil - return 0 + return 0 end end end diff --git a/test/integration/poolbracket_matchups_test.rb b/test/integration/poolbracket_matchups_test.rb index 3ddcafd..6b31461 100644 --- a/test/integration/poolbracket_matchups_test.rb +++ b/test/integration/poolbracket_matchups_test.rb @@ -5,9 +5,8 @@ class PoolbracketMatchupsTest < ActionDispatch::IntegrationTest @tournament = Tournament.find(1) @genMatchups = @tournament.upcomingMatches end - + def createTournament(numberOfWrestlers) - @count = 1 @id = 6000 + numberOfWrestlers @tournament3 = Tournament.new @tournament3.id = @id @@ -26,21 +25,22 @@ class PoolbracketMatchupsTest < ActionDispatch::IntegrationTest @weight3.id = @id @weight3.tournament_id = @id @weight3.save - until @count > numberOfWrestlers do - @wrestler2 = Wrestler.new - @wrestler2.name = "Guy #{@count}" - @wrestler2.school_id = @id - @wrestler2.weight_id = @id - @wrestler2.original_seed = @count - @wrestler2.season_loss = 0 - @wrestler2.season_win = 0 - @wrestler2.criteria = nil + numberOfWrestlers.times do |x| + count = x + 1 + @wrestler2 = Wrestler.new( + name: "Guy #{count}", + school_id: @id, + weight_id: @id, + original_seed: count, + season_loss: 0, + season_win: 0, + criteria: nil + ) @wrestler2.save - @count = @count + 1 end return @tournament3 end - + def checkForByeInPool(tournament) tournament.upcomingMatches @matchups = tournament.matches @@ -60,53 +60,48 @@ class PoolbracketMatchupsTest < ActionDispatch::IntegrationTest end end end - - test "the truth" do - assert true - end - test "found tournament" do refute_nil @tournament end - + test "tests bout_number matches round" do @matchup_to_test = @genMatchups.select{|m| m.bout_number == 4000}.first assert_equal 4, @matchup_to_test.round end - + test "tests bout_numbers are generated with smallest weight first regardless of id" do @weight = @tournament.weights.map.sort_by{|x|[x.max]}.first @matchup = @genMatchups.select{|m| m.bout_number == 1000}.first assert_equal @weight.max, @matchup.weight_max end - + test "tests number of matches in 5 man one pool" do @six_matches = @genMatchups.select{|m| m.weight_max == 106} assert_equal 10, @six_matches.length end - + test "tests number of matches in 11 man pool bracket" do @twentysix_matches = @genMatchups.select{|m| m.weight_max == 126} assert_equal 22, @twentysix_matches.length end - + test "tests number of matches in 9 man pool bracket" do @twentysix_matches = @genMatchups.select{|m| m.weight_max == 113} assert_equal 18, @twentysix_matches.length end - + test "tests number of matches in 7 man pool bracket" do @twentysix_matches = @genMatchups.select{|m| m.weight_max == 120} assert_equal 13, @twentysix_matches.length end - + test "tests number of matches in 16 man pool bracket" do @twentysix_matches = @genMatchups.select{|m| m.weight_max == 132} assert_equal 32, @twentysix_matches.length end - + test "test if a wrestler can exceed five matches" do @count = 5 until @count > 16 do @@ -115,6 +110,6 @@ class PoolbracketMatchupsTest < ActionDispatch::IntegrationTest @count = @count + 1 end end - + #todo test crazy movements through each bracket? end