From 4f0f69223d7fe427c044a2979b6635037239610f Mon Sep 17 00:00:00 2001 From: Jacob Cody Wimer Date: Mon, 23 Dec 2024 18:27:49 -0500 Subject: [PATCH] Updated double elim match generation and loser name to use hashes instead of structs as well as fixing the matchup of 4v13 and 3v14 in 16 man brackets. --- ...double_elimination_generate_loser_names.rb | 255 ++++++++++------- .../double_elimination_match_generation.rb | 256 +++++++++--------- ...n_sixteen_man_1_6_match_generation_test.rb | 4 +- ...nation_sixteen_man_1_6_run_through_test.rb | 14 +- ...n_sixteen_man_1_8_match_generation_test.rb | 4 +- ...nation_sixteen_man_1_8_run_through_test.rb | 14 +- 6 files changed, 300 insertions(+), 247 deletions(-) diff --git a/app/services/tournament_services/double_elimination_generate_loser_names.rb b/app/services/tournament_services/double_elimination_generate_loser_names.rb index e1d4c56..eb5521a 100644 --- a/app/services/tournament_services/double_elimination_generate_loser_names.rb +++ b/app/services/tournament_services/double_elimination_generate_loser_names.rb @@ -1,120 +1,167 @@ class DoubleEliminationGenerateLoserNames - def initialize( tournament ) - @tournament = tournament + def initialize(tournament) + @tournament = tournament + end + + def assign_loser_names + @tournament.weights.each do |weight| + assign_loser_names_for_weight(weight) + advance_bye_matches_championship(weight.matches.reload) end + end - def assign_loser_names - @tournament.weights.each do |weight| - assign_loser_names_for_weight(weight) - advance_bye_matches_championship(weight.matches.reload) - end + def define_losername_championship_mappings(bracket_size) + # Use hashes instead of arrays for mappings + case bracket_size + when 4 + [ + { + conso_round: @tournament.total_rounds, + conso_bracket_position: "3/4", + championship_round: 1, + championship_bracket_position: "Semis", + cross_bracket: false, + both_wrestlers: true + } + ] + when 8 + [ + { + conso_round: 2, + conso_bracket_position: "Conso Quarter", + championship_round: 1, + championship_bracket_position: "Quarter", + cross_bracket: false, + both_wrestlers: true + }, + { + conso_round: 3, + conso_bracket_position: "Conso Semis", + championship_round: 2, + championship_bracket_position: "Semis", + cross_bracket: true, + both_wrestlers: false + } + ] + when 16 + [ + { + conso_round: 2, + conso_bracket_position: "Conso", + championship_round: 1, + championship_bracket_position: "Bracket", + cross_bracket: false, + both_wrestlers: true + }, + { + conso_round: 3, + conso_bracket_position: "Conso", + championship_round: 2, + championship_bracket_position: "Quarter", + cross_bracket: true, + both_wrestlers: false + }, + { + conso_round: 5, + conso_bracket_position: "Conso Semis", + championship_round: 4, + championship_bracket_position: "Semis", + cross_bracket: false, + both_wrestlers: false + } + ] + else + nil end + end - def define_losername_championship_mappings(bracket_size) - # [conso_round, conso_bracket_position, championship_round, championship_bracket_position, cross_bracket, both_wrestlers] - # cross_bracket is true or false. crossing should happen every other round. - # both_wrestlers defines if you're filling out loser1_name and loser2_name or just loser1_name - # don't need to define 3/4, 5/6, or 7/8 those happen in the assign_loser_names_for_weight method - # except for bracket_size of 4 - case bracket_size - when 4 then - return [ - [@tournament.total_rounds, "3/4", 1, "Semis", false, true] - ] - when 8 then - return [ - [2, "Conso Quarter", 1, "Quarter", false, true], - [3, "Conso Semis", 2, "Semis", true, false] - ] - when 16 then - return [ - [2, "Conso", 1, "Bracket", false, true], - [3, "Conso", 2, "Quarter", true, false], - [5, "Conso Semis", 4, "Semis", false, false] - ] - else - return nil - end - end + def assign_loser_names_for_weight(weight) + number_of_placers = @tournament.number_of_placers + bracket_size = weight.calculate_bracket_size + matches_by_weight = weight.matches.reload - def assign_loser_names_for_weight(weight) - number_of_placers = @tournament.number_of_placers - bracket_size = weight.calculate_bracket_size - matches_by_weight = weight.matches.reload + loser_name_championship_mappings = define_losername_championship_mappings(bracket_size) - loser_name_championship_mappings = define_losername_championship_mappings(bracket_size) + loser_name_championship_mappings.each do |mapping| + conso_round = mapping[:conso_round] + conso_bracket_position = mapping[:conso_bracket_position] + championship_round = mapping[:championship_round] + championship_bracket_position = mapping[:championship_bracket_position] + cross_bracket = mapping[:cross_bracket] + both_wrestlers = mapping[:both_wrestlers] - loser_name_championship_mappings.each do |mapping| - conso_round = mapping[0] - conso_bracket_position = mapping[1] - championship_round = mapping[2] - championship_bracket_position = mapping[3] - cross_bracket = mapping[4] - both_wrestlers = mapping[5] + conso_matches = matches_by_weight.select do |match| + match.round == conso_round && match.bracket_position == conso_bracket_position + end.sort_by(&:bracket_position_number) - conso_matches = matches_by_weight.select{|match| match.round == conso_round && match.bracket_position == conso_bracket_position}.sort_by{|match| match.bracket_position_number} - championship_matches = matches_by_weight.select{|match| match.round == championship_round && match.bracket_position == championship_bracket_position}.sort_by{|match| match.bracket_position_number} - if cross_bracket - conso_matches = conso_matches.reverse! - end + championship_matches = matches_by_weight.select do |match| + match.round == championship_round && match.bracket_position == championship_bracket_position + end.sort_by(&:bracket_position_number) - championship_bracket_position_number = 1 - conso_matches.each do |match| - bout_number1 = championship_matches.select{|bout_match| bout_match.bracket_position_number == championship_bracket_position_number}.first.bout_number - match.loser1_name = "Loser of #{bout_number1}" - if both_wrestlers - championship_bracket_position_number += 1 - bout_number2 = championship_matches.select{|bout_match| bout_match.bracket_position_number == championship_bracket_position_number}.first.bout_number - match.loser2_name = "Loser of #{bout_number2}" - end + conso_matches.reverse! if cross_bracket + + championship_bracket_position_number = 1 + conso_matches.each do |match| + bout_number1 = championship_matches.find do |bout_match| + bout_match.bracket_position_number == championship_bracket_position_number + end.bout_number + + match.loser1_name = "Loser of #{bout_number1}" + if both_wrestlers championship_bracket_position_number += 1 + bout_number2 = championship_matches.find do |bout_match| + bout_match.bracket_position_number == championship_bracket_position_number + end.bout_number + match.loser2_name = "Loser of #{bout_number2}" end - end - - conso_semi_matches = matches_by_weight.select{|match| match.bracket_position == "Conso Semis"} - conso_quarter_matches = matches_by_weight.select{|match| match.bracket_position == "Conso Quarter"} - if number_of_placers >= 6 && weight.wrestlers.size >= 5 - five_six_match = matches_by_weight.select{|match| match.bracket_position == "5/6"}.first - bout_number1 = conso_semi_matches.select{|match| match.bracket_position_number == 1}.first.bout_number - bout_number2 = conso_semi_matches.select{|match| match.bracket_position_number == 2}.first.bout_number - five_six_match.loser1_name = "Loser of #{bout_number1}" - five_six_match.loser2_name = "Loser of #{bout_number2}" - end - if number_of_placers >= 8 && weight.wrestlers.size >= 7 - seven_eight_match = matches_by_weight.select{|match| match.bracket_position == "7/8"}.first - bout_number1 = conso_quarter_matches.select{|match| match.bracket_position_number == 1}.first.bout_number - bout_number2 = conso_quarter_matches.select{|match| match.bracket_position_number == 2}.first.bout_number - seven_eight_match.loser1_name = "Loser of #{bout_number1}" - seven_eight_match.loser2_name = "Loser of #{bout_number2}" - end - save_matches(matches_by_weight) - end - - def save_matches(matches) - matches.each do |m| - m.save! + championship_bracket_position_number += 1 end end - def advance_bye_matches_championship(matches) - matches.select{|m| m.round == 1 and (m.bracket_position == "Bracket" or m.bracket_position == "Quarter")}.sort_by{|m| m.bracket_position_number}.each do |match| - if match.w1 == nil or match.w2 == nil - match.finished = 1 - match.win_type = "BYE" - if match.w1 != nil - match.winner_id = match.w1 - match.loser2_name = "BYE" - match.score = "" - match.save - match.advance_wrestlers - elsif match.w2 != nil - match.winner_id = match.w2 - match.loser1_name = "BYE" - match.score = "" - match.save - match.advance_wrestlers - end - end + conso_semi_matches = matches_by_weight.select { |match| match.bracket_position == "Conso Semis" } + conso_quarter_matches = matches_by_weight.select { |match| match.bracket_position == "Conso Quarter" } + + if number_of_placers >= 6 && weight.wrestlers.size >= 5 + five_six_match = matches_by_weight.find { |match| match.bracket_position == "5/6" } + bout_number1 = conso_semi_matches.find { |match| match.bracket_position_number == 1 }.bout_number + bout_number2 = conso_semi_matches.find { |match| match.bracket_position_number == 2 }.bout_number + five_six_match.loser1_name = "Loser of #{bout_number1}" + five_six_match.loser2_name = "Loser of #{bout_number2}" + end + + if number_of_placers >= 8 && weight.wrestlers.size >= 7 + seven_eight_match = matches_by_weight.find { |match| match.bracket_position == "7/8" } + bout_number1 = conso_quarter_matches.find { |match| match.bracket_position_number == 1 }.bout_number + bout_number2 = conso_quarter_matches.find { |match| match.bracket_position_number == 2 }.bout_number + seven_eight_match.loser1_name = "Loser of #{bout_number1}" + seven_eight_match.loser2_name = "Loser of #{bout_number2}" + end + + save_matches(matches_by_weight) + end + + def save_matches(matches) + matches.each(&:save!) + end + + def advance_bye_matches_championship(matches) + matches.select do |m| + m.round == 1 && %w[Bracket Quarter].include?(m.bracket_position) + end.sort_by(&:bracket_position_number).each do |match| + next unless match.w1.nil? || match.w2.nil? + + match.finished = 1 + match.win_type = "BYE" + if match.w1 + match.winner_id = match.w1 + match.loser2_name = "BYE" + elsif match.w2 + match.winner_id = match.w2 + match.loser1_name = "BYE" end - end -end \ No newline at end of file + match.score = "" + match.save + match.advance_wrestlers + end + end +end diff --git a/app/services/tournament_services/double_elimination_match_generation.rb b/app/services/tournament_services/double_elimination_match_generation.rb index 00ab7fd..562f9df 100644 --- a/app/services/tournament_services/double_elimination_match_generation.rb +++ b/app/services/tournament_services/double_elimination_match_generation.rb @@ -1,142 +1,148 @@ -BracketMatchups = Struct.new(:round_one_matchups, :championship_rounds, :consolation_rounds) - class DoubleEliminationMatchGeneration - def initialize( tournament ) - @tournament = tournament + def initialize(tournament) + @tournament = tournament + end + + def generate_matches + @tournament.weights.each do |weight| + generate_matches_for_weight(weight) + end + end + + def define_bracket_matches(bracket_size) + # Use a hash instead of Struct + case bracket_size + when 4 + { + round_one_matchups: [[1, 4, "Semis"], [2, 3, "Semis"]], + championship_rounds: [[2, 1, "1/2"]], + consolation_rounds: [[2, 1, "3/4"]] + } + when 8 + { + round_one_matchups: [ + [1, 8, "Quarter"], [4, 5, "Quarter"], [3, 6, "Quarter"], [2, 7, "Quarter"] + ], + championship_rounds: [ + [2, 2, "Semis"], [4, 1, "1/2"] + ], + consolation_rounds: [ + [2, 2, "Conso Quarter"], [3, 2, "Conso Semis"], [4, 1, "3/4"] + ] + } + when 16 + { + round_one_matchups: [ + [1, 16, "Bracket"], [8, 9, "Bracket"], [5, 12, "Bracket"], [4, 13, "Bracket"], + [3, 14, "Bracket"], [6, 11, "Bracket"], [7, 10, "Bracket"], [2, 15, "Bracket"] + ], + championship_rounds: [ + [2, 4, "Quarter"], [4, 2, "Semis"], [6, 1, "1/2"] + ], + consolation_rounds: [ + [2, 4, "Conso"], [3, 4, "Conso"], [4, 2, "Conso Quarter"], + [5, 2, "Conso Semis"], [6, 1, "3/4"] + ] + } + else + nil + end + end + + def generate_matches_for_weight(weight) + number_of_placers = @tournament.number_of_placers + bracket_size = weight.calculate_bracket_size + bracket_matches = define_bracket_matches(bracket_size) + + # Generate round 1 matches + bracket_matches[:round_one_matchups].each_with_index do |matchup, index| + matches_this_round = bracket_matches[:round_one_matchups].size + bracket_position = matchup[2] + create_matchup_from_seed( + matchup[0], + matchup[1], + bracket_position, + index + 1, + 1, + weight + ) end - def generate_matches - @tournament.weights.each do |weight| - generate_matches_for_weight(weight) + # Generate remaining championship rounds + bracket_matches[:championship_rounds].each do |matchup| + round = matchup[0] + matches_this_round = matchup[1] + bracket_position = matchup[2] + + matches_this_round.times do |bracket_position_number| + create_matchup(nil, nil, bracket_position, bracket_position_number + 1, round, weight) end end - def define_bracket_matches(bracket_size) - # Defined at the top of the file - # BracketMatchups = Struct.new(:round_one_matchups, :championship_rounds, :consolation_rounds) - # round_one_matchups are the matchups by seed in the correct order for bracket position. - # championship_rounds define [round_number, number_of_matches_in_round, bracket_position] - # consolation_rounds define [round_number, number_of_matches_in_round, bracket_position] + # Generate consolation matches + bracket_matches[:consolation_rounds].each do |matchup| + round = matchup[0] + matches_this_round = matchup[1] + bracket_position = matchup[2] - case bracket_size - when 4 then - return BracketMatchups.new( - [[1, 4, "Semis"], [2, 3, "Semis"]], - [[2, 1, "1/2"]], - [[2, 1, "3/4"]] - ) - when 8 then - return BracketMatchups.new( - [[1, 8, "Quarter"], [4, 5, "Quarter"], [3, 6, "Quarter"], [2, 7, "Quarter"]], - [[2, 2, "Semis"], [4, 1, "1/2"]], - [[2, 2, "Conso Quarter"], [3, 2, "Conso Semis"], [4, 1, "3/4"]] - ) - when 16 then - return BracketMatchups.new( - [[1, 16, "Bracket"], [8, 9, "Bracket"], [5, 12, "Bracket"], [4, 14, "Bracket"], [3, 13, "Bracket"], [6, 11, "Bracket"], [7, 10, "Bracket"], [2, 15, "Bracket"]], - [[2, 4, "Quarter"], [4, 2, "Semis"], [6, 1, "1/2"]], - [[2, 4, "Conso"], [3, 4, "Conso"], [4, 2, "Conso Quarter"], [5, 2, "Conso Semis"], [6, 1, "3/4"]] - ) - else - return nil + matches_this_round.times do |bracket_position_number| + create_matchup(nil, nil, bracket_position, bracket_position_number + 1, round, weight) + end + if weight.wrestlers.size >= 5 + create_matchup(nil, nil, "5/6", 1, round, weight) if @tournament.number_of_placers >= 6 && matches_this_round == 1 + end + if weight.wrestlers.size >= 7 + create_matchup(nil, nil, "7/8", 1, round, weight) if @tournament.number_of_placers >= 8 && matches_this_round == 1 end end + end - def generate_matches_for_weight(weight) - number_of_placers = @tournament.number_of_placers - bracket_size = weight.calculate_bracket_size - bracket_matches = define_bracket_matches(bracket_size) + def wrestler_with_seed(seed, weight) + wrestler = Wrestler.where("weight_id = ? and bracket_line = ?", weight.id, seed).first + wrestler&.id + end - # Generate round 1 matches - bracket_matches.round_one_matchups.each_with_index do |matchup, index| - matches_this_round = bracket_matches.round_one_matchups.size - bracket_position = matchup[2] - create_matchup_from_seed( - matchup[0], - matchup[1], - bracket_position, - index + 1, - 1, - weight - ) - end - - # Generate remaining championship rounds - bracket_matches.championship_rounds.each do |matchup| - round = matchup[0] - matches_this_round = matchup[1] - bracket_position = matchup[2] - - matches_this_round.times do |bracket_position_number| - create_matchup(nil, nil, bracket_position, bracket_position_number + 1, round, weight) - end - end - - # Generate consolation matches - bracket_matches.consolation_rounds.each do |matchup| - round = matchup[0] - matches_this_round = matchup[1] - bracket_position = matchup[2] - - matches_this_round.times do |bracket_position_number| - create_matchup(nil, nil, bracket_position, bracket_position_number + 1, round, weight) - end - if weight.wrestlers.size >=5 - create_matchup(nil, nil, "5/6", 1, round, weight) if @tournament.number_of_placers >= 6 && matches_this_round == 1 - end - if weight.wrestlers.size >= 7 - create_matchup(nil, nil, "7/8", 1, round, weight) if @tournament.number_of_placers >= 8 && matches_this_round == 1 - end - end - end + def create_matchup_from_seed(w1_seed, w2_seed, bracket_position, bracket_position_number, round, weight) + create_matchup( + wrestler_with_seed(w1_seed, weight), + wrestler_with_seed(w2_seed, weight), + bracket_position, + bracket_position_number, + round, + weight + ) + end - def wrestler_with_seed(seed,weight) - wrestler = Wrestler.where("weight_id = ? and bracket_line = ?", weight.id, seed).first - if wrestler - return wrestler.id - else - return nil - end - end - - def create_matchup_from_seed(w1_seed, w2_seed, bracket_position, bracket_position_number,round,weight) - create_matchup(wrestler_with_seed(w1_seed,weight),wrestler_with_seed(w2_seed,weight), bracket_position, bracket_position_number,round,weight) - end - - def create_matchup(w1, w2, bracket_position, bracket_position_number,round,weight) - weight.tournament.matches.create( - w1: w1, - w2: w2, - weight_id: weight.id, - round: round, - bracket_position: bracket_position, - bracket_position_number: bracket_position_number - ) - end + def create_matchup(w1, w2, bracket_position, bracket_position_number, round, weight) + weight.tournament.matches.create( + w1: w1, + w2: w2, + weight_id: weight.id, + round: round, + bracket_position: bracket_position, + bracket_position_number: bracket_position_number + ) + end #### Logic below works but not used. Could not find a way to reliably determine a couple things. # For example, properly forcing the semis to be after round 2 of consolations in a 16 man bracket. # and properly calculating the number of matches in a round for the consolation rounds. - def calculate_championship_rounds(bracket_size) - return nil if bracket_size <= 0 # Handle invalid input - - Math.log2(bracket_size).to_i - end - - def calculate_consolation_rounds(bracket_size) - return nil if bracket_size <= 0 || !bracket_size.is_a?(Integer) - - championship_rounds = calculate_championship_rounds(bracket_size) - if championship_rounds == 2 - return 1 - elsif - championship_rounds == 1 - return 0 - end - extra_powers_of_two = championship_rounds - 3 - consolation_rounds = championship_rounds + extra_powers_of_two - - consolation_rounds - end -end \ No newline at end of file + def calculate_championship_rounds(bracket_size) + return nil if bracket_size <= 0 # Handle invalid input + + Math.log2(bracket_size).to_i + end + + def calculate_consolation_rounds(bracket_size) + return nil if bracket_size <= 0 || !bracket_size.is_a?(Integer) + + championship_rounds = calculate_championship_rounds(bracket_size) + return 1 if championship_rounds == 2 + return 0 if championship_rounds == 1 + + extra_powers_of_two = championship_rounds - 3 + championship_rounds + extra_powers_of_two + end +end + \ No newline at end of file diff --git a/test/integration/double_elimination_sixteen_man_1_6_match_generation_test.rb b/test/integration/double_elimination_sixteen_man_1_6_match_generation_test.rb index 5ce51b4..4390948 100644 --- a/test/integration/double_elimination_sixteen_man_1_6_match_generation_test.rb +++ b/test/integration/double_elimination_sixteen_man_1_6_match_generation_test.rb @@ -40,10 +40,10 @@ class DoubleEliminationSixteenManSixPlacesMatchGeneration < ActionDispatch::Inte assert match3.wrestler2.bracket_line == 12 assert match4.wrestler1.bracket_line == 4 - assert match4.wrestler2.bracket_line == 14 + assert match4.wrestler2.bracket_line == 13 assert match5.wrestler1.bracket_line == 3 - assert match5.wrestler2.bracket_line == 13 + assert match5.wrestler2.bracket_line == 14 assert match6.wrestler1.bracket_line == 6 assert match6.wrestler2.bracket_line == 11 diff --git a/test/integration/double_elimination_sixteen_man_1_6_run_through_test.rb b/test/integration/double_elimination_sixteen_man_1_6_run_through_test.rb index 9afa0ea..8797758 100644 --- a/test/integration/double_elimination_sixteen_man_1_6_run_through_test.rb +++ b/test/integration/double_elimination_sixteen_man_1_6_run_through_test.rb @@ -21,7 +21,7 @@ class DoubleEliminationSixteenManSixPlacesRunThrough < ActionDispatch::Integrati winner_by_name("Test9", round1.select{|m| m.bracket_position_number == 2}.first) winner_by_name("Test5", round1.select{|m| m.bracket_position_number == 3}.first) winner_by_name("Test4", round1.select{|m| m.bracket_position_number == 4}.first) - winner_by_name("Test13", round1.select{|m| m.bracket_position_number == 5}.first) + winner_by_name("Test14", round1.select{|m| m.bracket_position_number == 5}.first) winner_by_name("Test6", round1.select{|m| m.bracket_position_number == 6}.first) winner_by_name("Test10", round1.select{|m| m.bracket_position_number == 7}.first) @@ -30,7 +30,7 @@ class DoubleEliminationSixteenManSixPlacesRunThrough < ActionDispatch::Integrati assert quarter.first.reload.wrestler2.name == "Test9" assert quarter.second.reload.wrestler1.name == "Test5" assert quarter.second.reload.wrestler2.name == "Test4" - assert quarter.third.reload.wrestler1.name == "Test13" + assert quarter.third.reload.wrestler1.name == "Test14" assert quarter.third.reload.wrestler2.name == "Test6" assert quarter.fourth.reload.wrestler1.name == "Test10" assert quarter.fourth.reload.wrestler2.name == "Test2" @@ -38,14 +38,14 @@ class DoubleEliminationSixteenManSixPlacesRunThrough < ActionDispatch::Integrati conso_round2 = matches.select{|m| m.bracket_position == "Conso" and m.round == 2}.sort_by{|m| m.bracket_position_number} assert conso_round2.first.reload.wrestler2.name == "Test8" assert conso_round2.second.reload.wrestler1.name == "Test12" - assert conso_round2.second.reload.wrestler2.name == "Test14" + assert conso_round2.second.reload.wrestler2.name == "Test13" assert conso_round2.third.reload.wrestler1.name == "Test3" assert conso_round2.third.reload.wrestler2.name == "Test11" assert conso_round2.fourth.reload.wrestler1.name == "Test7" winner_by_name("Test1", quarter.first) winner_by_name("Test5", quarter.second) - winner_by_name("Test13", quarter.third) + winner_by_name("Test14", quarter.third) winner_by_name("Test10", quarter.fourth) winner_by_name("Test12", conso_round2.second) winner_by_name("Test3", conso_round2.third) @@ -53,7 +53,7 @@ class DoubleEliminationSixteenManSixPlacesRunThrough < ActionDispatch::Integrati semis = matches.select{|m| m.bracket_position == "Semis"}.sort_by{|m| m.bracket_position_number} assert semis.first.reload.wrestler1.name == "Test1" assert semis.first.reload.wrestler2.name == "Test5" - assert semis.second.reload.wrestler1.name == "Test13" + assert semis.second.reload.wrestler1.name == "Test14" assert semis.second.reload.wrestler2.name == "Test10" conso_round3 = matches.select{|m| m.bracket_position == "Conso" and m.round == 3}.sort_by{|m| m.bracket_position_number} @@ -85,7 +85,7 @@ class DoubleEliminationSixteenManSixPlacesRunThrough < ActionDispatch::Integrati conso_semis = matches.select{|m| m.bracket_position == "Conso Semis"}.sort_by{|m| m.bracket_position_number} assert conso_semis.first.reload.wrestler1.name == "Test1" assert conso_semis.first.reload.wrestler2.name == "Test2" - assert conso_semis.second.reload.wrestler1.name == "Test13" + assert conso_semis.second.reload.wrestler1.name == "Test14" assert conso_semis.second.reload.wrestler2.name == "Test3" winner_by_name("Test2",conso_semis.first) @@ -102,7 +102,7 @@ class DoubleEliminationSixteenManSixPlacesRunThrough < ActionDispatch::Integrati assert third_finals.reload.wrestler2.name == "Test3" assert fifth_finals.reload.wrestler1.name == "Test1" - assert fifth_finals.reload.wrestler2.name == "Test13" + assert fifth_finals.reload.wrestler2.name == "Test14" # DEBUG # matches.sort_by{|m| m.bout_number}.each do |match| diff --git a/test/integration/double_elimination_sixteen_man_1_8_match_generation_test.rb b/test/integration/double_elimination_sixteen_man_1_8_match_generation_test.rb index 362e986..ef8b42c 100644 --- a/test/integration/double_elimination_sixteen_man_1_8_match_generation_test.rb +++ b/test/integration/double_elimination_sixteen_man_1_8_match_generation_test.rb @@ -41,10 +41,10 @@ class DoubleEliminationSixteenManEightPlacesMatchGeneration < ActionDispatch::In assert match3.wrestler2.bracket_line == 12 assert match4.wrestler1.bracket_line == 4 - assert match4.wrestler2.bracket_line == 14 + assert match4.wrestler2.bracket_line == 13 assert match5.wrestler1.bracket_line == 3 - assert match5.wrestler2.bracket_line == 13 + assert match5.wrestler2.bracket_line == 14 assert match6.wrestler1.bracket_line == 6 assert match6.wrestler2.bracket_line == 11 diff --git a/test/integration/double_elimination_sixteen_man_1_8_run_through_test.rb b/test/integration/double_elimination_sixteen_man_1_8_run_through_test.rb index abd6659..0136a56 100644 --- a/test/integration/double_elimination_sixteen_man_1_8_run_through_test.rb +++ b/test/integration/double_elimination_sixteen_man_1_8_run_through_test.rb @@ -21,7 +21,7 @@ class DoubleEliminationSixteenManEightPlacesRunThrough < ActionDispatch::Integra winner_by_name("Test9", round1.select{|m| m.bracket_position_number == 2}.first) winner_by_name("Test5", round1.select{|m| m.bracket_position_number == 3}.first) winner_by_name("Test4", round1.select{|m| m.bracket_position_number == 4}.first) - winner_by_name("Test13", round1.select{|m| m.bracket_position_number == 5}.first) + winner_by_name("Test14", round1.select{|m| m.bracket_position_number == 5}.first) winner_by_name("Test6", round1.select{|m| m.bracket_position_number == 6}.first) winner_by_name("Test10", round1.select{|m| m.bracket_position_number == 7}.first) @@ -30,7 +30,7 @@ class DoubleEliminationSixteenManEightPlacesRunThrough < ActionDispatch::Integra assert quarter.first.reload.wrestler2.name == "Test9" assert quarter.second.reload.wrestler1.name == "Test5" assert quarter.second.reload.wrestler2.name == "Test4" - assert quarter.third.reload.wrestler1.name == "Test13" + assert quarter.third.reload.wrestler1.name == "Test14" assert quarter.third.reload.wrestler2.name == "Test6" assert quarter.fourth.reload.wrestler1.name == "Test10" assert quarter.fourth.reload.wrestler2.name == "Test2" @@ -38,14 +38,14 @@ class DoubleEliminationSixteenManEightPlacesRunThrough < ActionDispatch::Integra conso_round2 = matches.select{|m| m.bracket_position == "Conso" and m.round == 2}.sort_by{|m| m.bracket_position_number} assert conso_round2.first.reload.wrestler2.name == "Test8" assert conso_round2.second.reload.wrestler1.name == "Test12" - assert conso_round2.second.reload.wrestler2.name == "Test14" + assert conso_round2.second.reload.wrestler2.name == "Test13" assert conso_round2.third.reload.wrestler1.name == "Test3" assert conso_round2.third.reload.wrestler2.name == "Test11" assert conso_round2.fourth.reload.wrestler1.name == "Test7" winner_by_name("Test1", quarter.first) winner_by_name("Test5", quarter.second) - winner_by_name("Test13", quarter.third) + winner_by_name("Test14", quarter.third) winner_by_name("Test10", quarter.fourth) winner_by_name("Test12", conso_round2.second) winner_by_name("Test3", conso_round2.third) @@ -53,7 +53,7 @@ class DoubleEliminationSixteenManEightPlacesRunThrough < ActionDispatch::Integra semis = matches.select{|m| m.bracket_position == "Semis"}.sort_by{|m| m.bracket_position_number} assert semis.first.reload.wrestler1.name == "Test1" assert semis.first.reload.wrestler2.name == "Test5" - assert semis.second.reload.wrestler1.name == "Test13" + assert semis.second.reload.wrestler1.name == "Test14" assert semis.second.reload.wrestler2.name == "Test10" conso_round3 = matches.select{|m| m.bracket_position == "Conso" and m.round == 3}.sort_by{|m| m.bracket_position_number} @@ -85,7 +85,7 @@ class DoubleEliminationSixteenManEightPlacesRunThrough < ActionDispatch::Integra conso_semis = matches.select{|m| m.bracket_position == "Conso Semis"}.sort_by{|m| m.bracket_position_number} assert conso_semis.first.reload.wrestler1.name == "Test1" assert conso_semis.first.reload.wrestler2.name == "Test2" - assert conso_semis.second.reload.wrestler1.name == "Test13" + assert conso_semis.second.reload.wrestler1.name == "Test14" assert conso_semis.second.reload.wrestler2.name == "Test3" winner_by_name("Test2",conso_semis.first) @@ -104,7 +104,7 @@ class DoubleEliminationSixteenManEightPlacesRunThrough < ActionDispatch::Integra assert third_finals.reload.wrestler2.name == "Test3" assert fifth_finals.reload.wrestler1.name == "Test1" - assert fifth_finals.reload.wrestler2.name == "Test13" + assert fifth_finals.reload.wrestler2.name == "Test14" assert seventh_finals.reload.wrestler1.name == "Test6" assert seventh_finals.reload.wrestler2.name == "Test9"