diff --git a/app/services/bracket_advancement/pool_order.rb b/app/services/bracket_advancement/pool_order.rb index 1722aaf..40e323e 100644 --- a/app/services/bracket_advancement/pool_order.rb +++ b/app/services/bracket_advancement/pool_order.rb @@ -46,7 +46,7 @@ class PoolOrder def breakTie originalTieSize = wrestlersWithSamePoints.size - #ifWrestlersWithSamePointsIsSameAsOriginal(originalTieSize) { deductedPoints } + ifWrestlersWithSamePointsIsSameAsOriginal(originalTieSize) { deductedPoints } if originalTieSize == 2 ifWrestlersWithSamePointsIsSameAsOriginal(originalTieSize) { headToHead } end @@ -138,14 +138,6 @@ class PoolOrder wr.save addPoints(wr) end - - wrestlersWithSecondFastestPin = wrestlersWithSamePointsWithPins.select{|w| w.fastest_pin.pin_time_in_seconds == secondFastest.pin_time_in_seconds} - addPointsToWrestlersAhead(wrestlersWithSecondFastestPin.first) - wrestlersWithSecondFastestPin.each do |wr| - wr.pool_placement_tiebreaker = "Pin Time" - wr.save - addPoints(wr) - end end end diff --git a/test/integration/pool_order_test.rb b/test/integration/pool_order_test.rb index d2f0539..782503e 100644 --- a/test/integration/pool_order_test.rb +++ b/test/integration/pool_order_test.rb @@ -63,6 +63,24 @@ class PoolAdvancementTest < ActionDispatch::IntegrationTest end_match(match_wrestler_vs("Test5","Test6"),"Test5") end + def finishWithTieMostTeamPointsTwoWayTie + end_match_with_pin(match_wrestler_vs("Test1","Test2"),"Test1") + end_match_with_pin(match_wrestler_vs("Test1","Test3"),"Test3") + end_match(match_wrestler_vs("Test1","Test4"),"Test1") + end_match(match_wrestler_vs("Test1","Test5"),"Test1") + end_match(match_wrestler_vs("Test1","Test6"),"Test1") + end_match(match_wrestler_vs("Test2","Test3"),"Test2") + end_match(match_wrestler_vs("Test2","Test4"),"Test2") + end_match(match_wrestler_vs("Test2","Test5"),"Test2") + end_match(match_wrestler_vs("Test2","Test6"),"Test2") + end_match(match_wrestler_vs("Test3","Test4"),"Test3") + end_match(match_wrestler_vs("Test3","Test5"),"Test3") + end_match(match_wrestler_vs("Test3","Test6"),"Test3") + end_match(match_wrestler_vs("Test4","Test5"),"Test4") + end_match(match_wrestler_vs("Test4","Test6"),"Test4") + end_match(match_wrestler_vs("Test5","Test6"),"Test5") + end + def finishedWithTieMostFalls #Test1 has 12 points #Test2 has 12 points @@ -129,6 +147,28 @@ class PoolAdvancementTest < ActionDispatch::IntegrationTest end_match(match_wrestler_vs("Test5","Test6"),"Test5") end + def finishedWithTieQuickestPinTwoWayTie + #Test1 has 5:20 of pin time + #Test2 has 9:20 of pin time + #Test3 has 5:20 of pin time + + end_match_with_pin(match_wrestler_vs("Test1","Test2"),"Test1") + end_match_with_pin(match_wrestler_vs("Test1","Test3"),"Test3") + end_match_with_quick_pin(match_wrestler_vs("Test1","Test4"),"Test1") + end_match_with_quick_pin(match_wrestler_vs("Test1","Test5"),"Test1") + end_match_with_quick_pin(match_wrestler_vs("Test1","Test6"),"Test1") + end_match_with_pin(match_wrestler_vs("Test2","Test3"),"Test2") + end_match_with_quick_pin(match_wrestler_vs("Test2","Test4"),"Test2") + end_match_with_quick_pin(match_wrestler_vs("Test2","Test5"),"Test2") + end_match_with_quick_pin(match_wrestler_vs("Test2","Test6"),"Test2") + end_match_with_quick_pin(match_wrestler_vs("Test3","Test4"),"Test3") + end_match_with_quick_pin(match_wrestler_vs("Test3","Test5"),"Test3") + end_match_with_quick_pin(match_wrestler_vs("Test3","Test6"),"Test3") + end_match(match_wrestler_vs("Test4","Test5"),"Test4") + end_match(match_wrestler_vs("Test4","Test6"),"Test4") + end_match(match_wrestler_vs("Test5","Test6"),"Test5") + end + def finishedWithTieCoinFlip end_match(match_wrestler_vs("Test1","Test2"),"Test1") end_match(match_wrestler_vs("Test1","Test3"),"Test3") @@ -147,6 +187,69 @@ class PoolAdvancementTest < ActionDispatch::IntegrationTest end_match(match_wrestler_vs("Test5","Test6"),"Test5") end + def finishedWithDeductedPoints + team_point_adjusts_for_wrestler("Test2", 1) + team_point_adjusts_for_wrestler("Test3", 2) + + end_match(match_wrestler_vs("Test1","Test2"),"Test1") + end_match(match_wrestler_vs("Test1","Test3"),"Test3") + end_match(match_wrestler_vs("Test1","Test4"),"Test1") + end_match(match_wrestler_vs("Test1","Test5"),"Test1") + end_match(match_wrestler_vs("Test1","Test6"),"Test1") + end_match(match_wrestler_vs("Test2","Test3"),"Test2") + end_match(match_wrestler_vs("Test2","Test4"),"Test2") + end_match(match_wrestler_vs("Test2","Test5"),"Test2") + end_match(match_wrestler_vs("Test2","Test6"),"Test2") + end_match(match_wrestler_vs("Test3","Test4"),"Test3") + end_match(match_wrestler_vs("Test3","Test5"),"Test3") + end_match(match_wrestler_vs("Test3","Test6"),"Test3") + end_match(match_wrestler_vs("Test4","Test5"),"Test4") + end_match(match_wrestler_vs("Test4","Test6"),"Test4") + end_match(match_wrestler_vs("Test5","Test6"),"Test5") + end + + def finishedWithDeductedPointsTwoWayTie + team_point_adjusts_for_wrestler("Test1", 2) + team_point_adjusts_for_wrestler("Test2", 1) + team_point_adjusts_for_wrestler("Test3", 1) + + end_match(match_wrestler_vs("Test1","Test2"),"Test1") + end_match(match_wrestler_vs("Test1","Test3"),"Test3") + end_match(match_wrestler_vs("Test1","Test4"),"Test1") + end_match(match_wrestler_vs("Test1","Test5"),"Test1") + end_match(match_wrestler_vs("Test1","Test6"),"Test1") + end_match(match_wrestler_vs("Test2","Test3"),"Test2") + end_match(match_wrestler_vs("Test2","Test4"),"Test2") + end_match(match_wrestler_vs("Test2","Test5"),"Test2") + end_match(match_wrestler_vs("Test2","Test6"),"Test2") + end_match(match_wrestler_vs("Test3","Test4"),"Test3") + end_match(match_wrestler_vs("Test3","Test5"),"Test3") + end_match(match_wrestler_vs("Test3","Test6"),"Test3") + end_match(match_wrestler_vs("Test4","Test5"),"Test4") + end_match(match_wrestler_vs("Test4","Test6"),"Test4") + end_match(match_wrestler_vs("Test5","Test6"),"Test5") + end + + def finishedWithDeductedPointsTwoWayTieWithZero + team_point_adjusts_for_wrestler("Test1", 1) + + end_match(match_wrestler_vs("Test1","Test2"),"Test1") + end_match(match_wrestler_vs("Test1","Test3"),"Test3") + end_match(match_wrestler_vs("Test1","Test4"),"Test1") + end_match(match_wrestler_vs("Test1","Test5"),"Test1") + end_match(match_wrestler_vs("Test1","Test6"),"Test1") + end_match(match_wrestler_vs("Test2","Test3"),"Test2") + end_match(match_wrestler_vs("Test2","Test4"),"Test2") + end_match(match_wrestler_vs("Test2","Test5"),"Test2") + end_match(match_wrestler_vs("Test2","Test6"),"Test2") + end_match(match_wrestler_vs("Test3","Test4"),"Test3") + end_match(match_wrestler_vs("Test3","Test5"),"Test3") + end_match(match_wrestler_vs("Test3","Test6"),"Test3") + end_match(match_wrestler_vs("Test4","Test5"),"Test4") + end_match(match_wrestler_vs("Test4","Test6"),"Test4") + end_match(match_wrestler_vs("Test5","Test6"),"Test5") + end + test "Pool order based on wins" do finishWithNoTies assert Wrestler.find(translate_name_to_id("Test1")).pool_placement = 1 @@ -170,6 +273,19 @@ class PoolAdvancementTest < ActionDispatch::IntegrationTest assert Wrestler.find(translate_name_to_id("Test6")).pool_placement = 6 end + test "Pool order three way tie with most team points but most team points are tied between two wrestlers" do + finishWithTieMostTeamPointsTwoWayTie + assert Wrestler.find(translate_name_to_id("Test1")).pool_placement = 2 + assert Wrestler.find(translate_name_to_id("Test1")).pool_placement_tiebreaker = "Team Points" + assert Wrestler.find(translate_name_to_id("Test2")).pool_placement = 3 + assert Wrestler.find(translate_name_to_id("Test2")).pool_placement_tiebreaker = "" + assert Wrestler.find(translate_name_to_id("Test3")).pool_placement = 1 + assert Wrestler.find(translate_name_to_id("Test3")).pool_placement_tiebreaker = "Head to Head" + assert Wrestler.find(translate_name_to_id("Test4")).pool_placement = 4 + assert Wrestler.find(translate_name_to_id("Test5")).pool_placement = 5 + assert Wrestler.find(translate_name_to_id("Test6")).pool_placement = 6 + end + test "Pool order three way tie with most pins" do finishWithTieMostTeamPoints assert Wrestler.find(translate_name_to_id("Test1")).pool_placement = 1 @@ -201,7 +317,7 @@ class PoolAdvancementTest < ActionDispatch::IntegrationTest assert Wrestler.find(translate_name_to_id("Test1")).pool_placement = 1 assert Wrestler.find(translate_name_to_id("Test1")).pool_placement_tiebreaker = "Pin Time" assert Wrestler.find(translate_name_to_id("Test2")).pool_placement = 2 - assert Wrestler.find(translate_name_to_id("Test2")).pool_placement_tiebreaker = "Pin Time" + assert Wrestler.find(translate_name_to_id("Test2")).pool_placement_tiebreaker = "Head to Head" assert Wrestler.find(translate_name_to_id("Test3")).pool_placement = 3 assert Wrestler.find(translate_name_to_id("Test3")).pool_placement_tiebreaker = "" assert Wrestler.find(translate_name_to_id("Test4")).pool_placement = 4 @@ -209,6 +325,58 @@ class PoolAdvancementTest < ActionDispatch::IntegrationTest assert Wrestler.find(translate_name_to_id("Test6")).pool_placement = 6 end + test "Pool order three way tie with quickest pin times but pin time accumulation is tied between two wrestlers" do + finishedWithTieQuickestPinTwoWayTie + assert Wrestler.find(translate_name_to_id("Test1")).pool_placement = 2 + assert Wrestler.find(translate_name_to_id("Test1")).pool_placement_tiebreaker = "Pin Time" + assert Wrestler.find(translate_name_to_id("Test2")).pool_placement = 3 + assert Wrestler.find(translate_name_to_id("Test2")).pool_placement_tiebreaker = "" + assert Wrestler.find(translate_name_to_id("Test3")).pool_placement = 1 + assert Wrestler.find(translate_name_to_id("Test3")).pool_placement_tiebreaker = "Head to Head" + assert Wrestler.find(translate_name_to_id("Test4")).pool_placement = 4 + assert Wrestler.find(translate_name_to_id("Test5")).pool_placement = 5 + assert Wrestler.find(translate_name_to_id("Test6")).pool_placement = 6 + end + + test "Pool order three way tie with deducted points" do + finishedWithDeductedPoints + assert Wrestler.find(translate_name_to_id("Test1")).pool_placement = 1 + assert Wrestler.find(translate_name_to_id("Test1")).pool_placement_tiebreaker = "Head to Head" + assert Wrestler.find(translate_name_to_id("Test2")).pool_placement = 2 + assert Wrestler.find(translate_name_to_id("Test2")).pool_placement_tiebreaker = "Least Deducted Points" + assert Wrestler.find(translate_name_to_id("Test3")).pool_placement = 1 + assert Wrestler.find(translate_name_to_id("Test3")).pool_placement_tiebreaker = "" + assert Wrestler.find(translate_name_to_id("Test4")).pool_placement = 4 + assert Wrestler.find(translate_name_to_id("Test5")).pool_placement = 5 + assert Wrestler.find(translate_name_to_id("Test6")).pool_placement = 6 + end + + test "Pool order three way tie with deducted points but least deducted is tied between two wrestlers" do + finishedWithDeductedPointsTwoWayTie + assert Wrestler.find(translate_name_to_id("Test1")).pool_placement = 3 + assert Wrestler.find(translate_name_to_id("Test1")).pool_placement_tiebreaker = "" + assert Wrestler.find(translate_name_to_id("Test2")).pool_placement = 2 + assert Wrestler.find(translate_name_to_id("Test2")).pool_placement_tiebreaker = "Least Deducted Points" + assert Wrestler.find(translate_name_to_id("Test3")).pool_placement = 1 + assert Wrestler.find(translate_name_to_id("Test3")).pool_placement_tiebreaker = "Head to Head" + assert Wrestler.find(translate_name_to_id("Test4")).pool_placement = 4 + assert Wrestler.find(translate_name_to_id("Test5")).pool_placement = 5 + assert Wrestler.find(translate_name_to_id("Test6")).pool_placement = 6 + end + + test "Pool order three way tie with deducted points but least deducted is tied between two wrestlers with zero" do + finishedWithDeductedPointsTwoWayTieWithZero + assert Wrestler.find(translate_name_to_id("Test1")).pool_placement = 3 + assert Wrestler.find(translate_name_to_id("Test1")).pool_placement_tiebreaker = "" + assert Wrestler.find(translate_name_to_id("Test2")).pool_placement = 2 + assert Wrestler.find(translate_name_to_id("Test2")).pool_placement_tiebreaker = "Least Deducted Points" + assert Wrestler.find(translate_name_to_id("Test3")).pool_placement = 1 + assert Wrestler.find(translate_name_to_id("Test3")).pool_placement_tiebreaker = "Head to Head" + assert Wrestler.find(translate_name_to_id("Test4")).pool_placement = 4 + assert Wrestler.find(translate_name_to_id("Test5")).pool_placement = 5 + assert Wrestler.find(translate_name_to_id("Test6")).pool_placement = 6 + end + test "Pool order three way tie with coin flip" do finishedWithTieCoinFlip assert Wrestler.where("weight_id = ? AND pool_placement = 1",@weight.id).first.pool_placement_tiebreaker = "Coin Flip" diff --git a/test/test_helper.rb b/test/test_helper.rb index 2b2d4d6..abb079c 100644 --- a/test/test_helper.rb +++ b/test/test_helper.rb @@ -107,6 +107,13 @@ class ActiveSupport::TestCase GenerateTournamentMatches.new(@tournament).generate end + def team_point_adjusts_for_wrestler(wrestler_name,points) + adjust = Teampointadjust.new + adjust.points = points + adjust.wrestler_id = get_wrestler_by_name(wrestler_name) + adjust.save + end + def create_wrestlers_for_weight(weight, school, number_of_wrestlers, naming_start_number) naming_number = naming_start_number seed = 1