Source code for no_teg.tests.test_all

from no_teg import *
from unittest.mock import patch
from ..games import fifa
from ..tourneys import round_robin as rr, single_elimination as se

### UNIT TESTS ###

TestTourney1 = se.Single_Elimination(fifa.FIFA())
p1 = Player("Aaron")
p2 = Player("Xandra")
p3 = Player("Lucas")
p4 = Player("Tiffany")


[docs] def test_Player_get_name(): p1 = Player("Aaron") assert p1.get_name() == "Aaron"
[docs] def test_Player_set_age(): p1.set_age(22) assert p1.age == 22
[docs] def test_Tourney_add_player(): TestTourney2 = se.Single_Elimination(fifa.FIFA()) p1 = Player("Aaron") TestTourney2.add_player(p1) assert TestTourney2.players == [p1]
[docs] def test_Tourney_add_players(): TestTourney1.add_players([p1, p2, p3, p4]) assert TestTourney1.players == [p1, p2, p3, p4]
# use a real error formula to check randomization
[docs] def test_Tourney_randomize_matchups(): times_first = {p1: 0, p2: 0, p3: 0, p4: 0} times_in_order = 0 # 1/24 chance trials = 10000 for i in range(trials): TestTourney1.randomize_matchups() times_first[TestTourney1.players[0]] += 1 if TestTourney1.players == [p1, p2, p3, p4]: times_in_order += 1 for player in TestTourney1.players: expected = trials / 4 error = 0.2 assert times_first[player] > expected - (expected * error) and times_first[player] < expected + ( expected * error ) expected = trials / 24 # 4! error = 0.2 assert times_in_order > expected - (expected * error) and times_in_order < expected + (expected * error)
TestTourneyOrdered = se.Single_Elimination(fifa.FIFA()) p5 = Player("Aaron") p6 = Player("Xandra") p7 = Player("Lucas") p8 = Player("Tiffany") # def test_SE_start(): # TestTourneyOrdered.add_players([p1, p2, p3, p4]) # TestTourneyOrdered.start() # assert TestTourneyOrdered.matchups[1]["Away"] == "Xandra" # assert TestTourneyOrdered.matchups[1]["Home"] == "Aaron" # assert TestTourneyOrdered.matchups[1]["Home_Score"] == None # assert TestTourneyOrdered.matchups[1]["Away_Score"] == None # assert TestTourneyOrdered.matchups[1]["Next"] == 3 # assert TestTourneyOrdered.matchups[2]["Away"] == "Tiffany" # assert TestTourneyOrdered.matchups[2]["Home"] == "Lucas" # assert TestTourneyOrdered.matchups[3]["Home"] == None # assert TestTourneyOrdered.matchups[3]["Away"] == None # def test_SE_get_matchups(): # assert TestTourneyOrdered.get_matchups() == TestTourneyOrdered.matchups # def test_SE_input_result(): # TestTourneyOrdered.input_result(1, 0, 1, []) # assert TestTourneyOrdered.matchups[1]["Away_Score"] == 0 # assert TestTourneyOrdered.matchups[1]["Home_Score"] == 1 # assert TestTourneyOrdered.matchups[3]["Away"] == "Aaron" # TestTourneyOrdered.input_result(2, 4, 2, []) # assert TestTourneyOrdered.matchups[2]["Away_Score"] == 4 # assert TestTourneyOrdered.matchups[2]["Home_Score"] == 2 # assert TestTourneyOrdered.matchups[3]["Home"] == "Tiffany" # assert TestTourneyOrdered.matchups[3]["Next"] == None # assert TestTourneyOrdered.input_result(3, 1, 1, []) == False TourneyByes = se.Single_Elimination(fifa.FIFA()) # def test_byes(): # TourneyByes.add_players([p1, p2, p3, p4, p5, p6]) # assert len(TourneyByes.players) == 6 # TourneyByes.start() # assert len(TourneyByes.players) == 8 # matchups = TourneyByes.get_matchups() # assert matchups[1]['Home'] == 'Bye' myGame = Game()
[docs] def test_game(): assert myGame.name == None assert myGame.rec_players == None assert myGame.rec_tourney == None assert myGame.labels == []
[docs] def test_game_set_name(): myGame.set_name("Aaron's Awesome Game") assert myGame.name == "Aaron's Awesome Game"
[docs] def test_game_set_rec_players(): myGame.set_rec_players(2) assert myGame.rec_players == 2
[docs] def test_game_set_rec_tourney(): myGame.set_rec_tourney(se.Single_Elimination) assert myGame.rec_tourney == se.Single_Elimination
[docs] def test_game_set_labels(): myGame.set_labels(["Total Jokers Used"]) assert myGame.labels == ["Total Jokers Used"]
[docs] def test_game_get_labels(): assert myGame.get_labels() == ["Total Jokers Used"]
### INTEGRATION TESTS ###
[docs] def test_SE_custom_game_tourney(): MyGame = Game() MyGame.set_name("2v2 Basketball") MyGame.set_labels(["Home Fouls", "Away Fouls"]) p1 = Player("Aaron") p2 = Player("Xandra") p3 = Player("Lucas") p4 = Player("Tiffany") p5 = Player("Raf") p6 = Player("Rhea") p7 = Player("Loki") p8 = Player("Richard") p9 = Player("Owen") p10 = Player("Saturn") p11 = Player("Mo") p12 = Player("Sergio") p13 = Player("Nick") p14 = Player("John") p15 = Player("Alex") p16 = Player("Ben") Team1 = Team("t1") Team1.add_player(p1) Team1.add_player(p2) Team2 = Team("t2") Team2.add_players([p3, p4]) Team3 = Team("t3") Team3.add_players([p5, p6]) Team4 = Team("t4") Team4.add_players([p7, p8]) Team5 = Team("t5") Team5.add_player(p9) Team5.add_player(p10) Team6 = Team("t6") Team6.add_players([p11, p12]) Team7 = Team("t7") Team7.add_players([p13, p14]) Team8 = Team("t8") Team8.add_players([p15, p16]) Tourney2v2 = se.Single_Elimination(MyGame) Tourney2v2.add_players([Team1, Team2, Team3, Team4, Team5, Team6, Team7, Team8]) Tourney2v2.start() assert Tourney2v2.matchups[1]["Home"] == "t1" assert Tourney2v2.matchups[1]["Away"] == "t2" assert Tourney2v2.matchups[1]["Next"] == 5 assert Tourney2v2.matchups[1]["Home Fouls"] == None Tourney2v2.input_result(1, 21, 14, [2, 4]) Tourney2v2.input_result(2, 21, 20, [0, 1]) Tourney2v2.input_result(3, 18, 21, [1, 1]) Tourney2v2.input_result(4, 10, 21, [4, 3]) assert Tourney2v2.matchups[5]["Away"] == "t2" assert Tourney2v2.matchups[5]["Home"] == "t4" assert Tourney2v2.matchups[5]["Next"] == 7 assert Tourney2v2.matchups[1]["Home Fouls"] == 2 Tourney2v2.input_result(5, 21, 19, [0, 0]) Tourney2v2.input_result(6, 18, 21, [7, 9]) assert Tourney2v2.matchups[7]["Home"] == "t7" assert Tourney2v2.matchups[7]["Away"] == "t2" assert Tourney2v2.matchups[7]["Next"] == None assert Tourney2v2.matchups[6]["Away Fouls"] == 9 Tourney2v2.input_result(7, 21, 16, [3, 2]) assert Tourney2v2.matchups[7]["Away_Score"] > Tourney2v2.matchups[7]["Home_Score"]
####Test Classes####
[docs] class TestPlayer:
[docs] def test_age(self): p1 = Player("Aaron") p1.set_age(22) assert p1.age == 22