class ElfTest(unittest.TestCase): def setUp(self): self.elf1 = Elf(1) self.elf2 = Elf(2) # soln_file = os.path.join(os.getcwd(), 'test.csv') # self.wcsv = csv.writer(open(soln_file, "wb")) def test_num_of_working_minutes_left(self): self.assertEquals(self.elf1.num_of_working_minutes_left(), 600) self.elf1.set_next_available_time(600) self.assertEquals(self.elf1.num_of_working_minutes_left(), 600-60) self.elf1.set_next_available_time(540 + 595) self.assertEquals(self.elf1.num_of_working_minutes_left(), 5) self.elf1.set_next_available_time(540 + 605) self.assertEquals(self.elf1.num_of_working_minutes_left(), 0) def test_get_productivity(self): self.assertEquals(self.elf1.get_productivity(), 1.0) self.elf1.set_productivity(2.0) self.assertEquals(self.elf1.get_productivity(), 2.0) def test_wait_till_next_day(self): self.assertEquals(self.elf1.get_next_available_time(), 540) self.elf1.set_next_available_time(700) self.assertEquals(self.elf1.get_next_available_time(), 700) self.elf1.wait_till_next_day() self.assertEquals(self.elf1.get_next_available_time(), 1440+(9*60)) self.elf1.wait_till_next_day() self.assertEquals(self.elf1.get_next_available_time(), (2*1440)+(9*60))
toy = mytoypool.get_next_longest_toy_for_elf(elf) if toy is not None: # Etape 4 : Faire le jouet elf.make_toy(toy, wcsv) else: # On avance d'une minute t = elf.get_next_available_time() next_t = hrs.next_sanctioned_minute(t) elf.set_next_available_time(next_t) # Etape 2, Cas 2 : La productivité est inférieure au seuil else: # Etape 2.2 : Calculer le nombre de minutes restantes avant la fin de la journée minutes_left = elf.num_of_working_minutes_left() # Etape 3.2 : Avec la productivité, calculer le nombre de minutes max pouvant être consacrées à un jouet productivity = elf.get_productivity() toy_max_minutes = int(minutes_left*productivity) # Ca de rejet if toy_max_minutes <= 1: # On remet ça à demain elf.wait_till_next_day() continue # Etape 4.2 : Selectionner un jouet disposant d'un nombre de minutes inférieur à toy_max_minutes toy_expected_duration = random.randint(1, toy_max_minutes-1) toy_expected_duration = toy_max_minutes - 1