def test_get_prev_workday_3(): """Wednesday -> Tuesday""" test_day = dt.datetime(2020, 9, 9) # Wednesday prev_workday_test = Time.get_prev_workday(test_day) prev_workday = dt.datetime(2020, 9, 8) # Tuesday test = prev_workday == prev_workday_test assert test
def test_get_prev_workday_1(): """Sunday -> Friday""" test_day = dt.datetime(2020, 9, 6) # Sunday prev_workday_test = Time.get_prev_workday(test_day) prev_workday = dt.datetime(2020, 9, 4) # Friday test = prev_workday == prev_workday_test assert test
def test_get_prev_workday_4(): """Friday 5p+ -> Friday""" test_day = dt.datetime(2020, 9, 4, 17, 1) # Friday 1min after 5 prev_workday_test = Time.get_prev_workday(test_day) prev_workday = dt.datetime(2020, 9, 4) # Friday (same) test = prev_workday == prev_workday_test assert test
def test_get_prev_workday_2(): """Monday -> Friday""" test_day = dt.datetime(2020, 9, 7) # Monday prev_workday_test = Time.get_prev_workday(test_day) prev_workday = dt.datetime(2020, 9, 4) # Friday (same) test = prev_workday == prev_workday_test assert test
def test_get_prev_workweek_curr(): """Current day's last workweek""" test_day = dt.datetime.now() prev_wk_m, prev_wk_f = Time.get_prev_workweek(test_day) print( f"\n[SS]-[TIME]-[TEST] Today's Date: wkDay({test_day.weekday()}) the {test_day.date()}, last wk: ({prev_wk_m.date()} - {prev_wk_f.date()})" ) assert True
def test_get_prev_workweek_3(): """Friday 5p+ -> M/F(same)""" test_day = dt.datetime(2020, 9, 4, 17, 1) # Friday 1min after 5 prev_wk_m, prev_wk_f = Time.get_prev_workweek(test_day) prev_wk_m_test = dt.datetime(2020, 8, 31) # Monday prev_wk_f_test = dt.datetime(2020, 9, 4) # Friday (same) test = (prev_wk_m == prev_wk_m_test) and (prev_wk_f == prev_wk_f_test) assert test
def test_get_prev_workweek_2(): """Friday -> M/F(prev)""" test_day = dt.datetime(2020, 9, 4, 0, 0) # Friday prev_wk_m, prev_wk_f = Time.get_prev_workweek(test_day) prev_wk_m_test = dt.datetime(2020, 8, 24) # Monday prev_wk_f_test = dt.datetime(2020, 8, 28) # Friday (prev) test = (prev_wk_m == prev_wk_m_test) and (prev_wk_f == prev_wk_f_test) assert test
def test_get_prev_workweek_1(): """Sunday -> M/F""" test_day = dt.datetime(2020, 9, 6, 0, 0) # Sunday prev_wk_m, prev_wk_f = Time.get_prev_workweek(test_day) prev_wk_m_test = dt.datetime(2020, 8, 31) # Monday prev_wk_f_test = dt.datetime(2020, 9, 4) # Friday test = (prev_wk_m == prev_wk_m_test) and (prev_wk_f == prev_wk_f_test) assert test
def set_performances(dic1, dic2): """ fusionne les dictionnaires en utilisant la clé commune = numéro de brassard """ for i in dic2: try: dic2[i]['performance'] = Time.to_string(dic1[i]) except KeyError: resultat = None return dic2
def read_performances(text): """ lit un fichier csv et retourne un dictionnaire dont les clés sont les numéros de brassard et les valeurs les tuples contenant les performances des compétiteurs """ try: f = open(text, "r") champs = f.readline().rstrip('\n').split(";") lignes = f.readlines() dictionnaire = {} for ligne in lignes: liste = ligne.rstrip().split(';') dictionnaire[int(liste[0])] = Time.create(int(liste[1]), int(liste[2]), int(liste[3])) f.close() return (dictionnaire) except FileNotFoundError: print("Votre fichier n'est pas un csv lisible")
def gameloop(self): """ Game loop. Actual gameplay happens here. Intro music stops, game music begins. Notes start to fall from the top. By clicking the respective keys on the notes, the note will be destroyed and the player score will increase. args: None return: self.tracker (int) increase score return: Exits game """ ExitButton = Button.Button(75, 52, "assets/PianoExitButton.png") self.music.stopMusic() self.tracker = ScoreTracker.ScoreTracker(self.notes) #times the game. Once it reachers 87 seconds, the game automatically goes to the end screen CurrentTime = 0 self.time = pygame.time.Clock() self.clock = Time.Time() SWITCH_STATE = pygame.USEREVENT + 1 pygame.time.set_timer(SWITCH_STATE, 87000) self.music.gameMusic("assets/rachmaninoff.ogg") self.background = pygame.image.load( "assets/PianoGameScreen.png").convert_alpha() while self.state == "Game": for event in pygame.event.get(): #this event quits the game if event.type == pygame.QUIT: pygame.quit() #this event goes to the End screen if event.type == pygame.MOUSEBUTTONDOWN: if (95 >= pygame.mouse.get_pos()[0] >= 20 and 680 >= pygame.mouse.get_pos()[1] >= 628): self.state = "End" if event.type == SWITCH_STATE: self.state = "End" #these events destroys the notes if event.type == pygame.KEYDOWN: if event.key == pygame.K_s: if pygame.sprite.spritecollide(self.KeyC, self.notes, True): self.tracker.scoreUpdate() else: self.tracker.scoreLoss() if pygame.sprite.spritecollide(self.KeyC, self.notes, True): self.notes.kill() elif event.key == pygame.K_d: if pygame.sprite.spritecollide(self.KeyD, self.notes, True): self.tracker.scoreUpdate() else: self.tracker.scoreLoss() if pygame.sprite.spritecollide(self.KeyD, self.notes, True): self.notes.kill() elif event.key == pygame.K_f: if pygame.sprite.spritecollide(self.KeyE, self.notes, True): self.tracker.scoreUpdate() else: self.tracker.scoreLoss() if pygame.sprite.spritecollide(self.KeyE, self.notes, True): self.notes.kill() elif event.key == pygame.K_j: if pygame.sprite.spritecollide(self.KeyF, self.notes, True): self.tracker.scoreUpdate() else: self.tracker.scoreLoss() if pygame.sprite.spritecollide(self.KeyF, self.notes, True): self.notes.kill() elif event.key == pygame.K_k: if pygame.sprite.spritecollide(self.KeyG, self.notes, True): self.tracker.scoreUpdate() else: self.tracker.scoreLoss() if pygame.sprite.spritecollide(self.KeyG, self.notes, True): self.notes.kill() elif event.key == pygame.K_l: if pygame.sprite.spritecollide(self.KeyA, self.notes, True): self.tracker.scoreUpdate() else: self.tracker.scoreLoss() if pygame.sprite.spritecollide(self.KeyA, self.notes, True): self.notes.kill() self.tracker.scoreUpdate() elif event.key == pygame.K_SEMICOLON: if pygame.sprite.spritecollide(self.KeyB, self.notes, True): self.tracker.scoreUpdate() else: self.tracker.scoreLoss() if pygame.sprite.spritecollide(self.KeyB, self.notes, True): self.notes.kill() #draws the key images self.screen.blit(self.background, (0, 0)) self.screen.blit(ExitButton.image, (20, 628)) self.keys.draw(self.screen) #makes all the notes in the sprite class move for i in self.notes: i.move() self.notes.draw(self.screen) pygame.display.update() self.clock.frames()
def set_performances(dict_competiteurs, dict_performances): for brassard in dict_performances: if dict_performances.get(brassard): dict_competiteurs[brassard]["performance"] = Time.to_string( dict_performances[brassard]) return dict_competiteurs