def test_validar_melhor_horario_com_sucesso(): permanence_periods = [(2, 2), (1, 2), (2, 3), (1, 5), (4, 5), (4, 5)] assert study_schedule(permanence_periods, 5) == 3 assert study_schedule(permanence_periods, 4) == 3 assert study_schedule(permanence_periods, 3) == 2 assert study_schedule(permanence_periods, 2) == 4 assert study_schedule(permanence_periods, 1) == 2
def test_validar_melhor_horario_com_sucesso(): start_time = [2, 1, 2, 1, 4, 4] end_time = [2, 2, 3, 5, 5, 5] assert study_schedule(start_time, end_time, 5) == 3 assert study_schedule(start_time, end_time, 4) == 3 assert study_schedule(start_time, end_time, 3) == 2 assert study_schedule(start_time, end_time, 2) == 4 assert study_schedule(start_time, end_time, 1) == 2
def test_validar_melhor_horario_quando_target_empata_com_maior_saida(): start_time = [4, 1, 3, 2] end_time = [4, 3, 4, 5] assert study_schedule(start_time, end_time, 5) == 1 assert study_schedule(start_time, end_time, 4) == 3 assert study_schedule(start_time, end_time, 3) == 3 assert study_schedule(start_time, end_time, 2) == 2 assert study_schedule(start_time, end_time, 1) == 1
def test_validar_melhor_horario_quando_target_empata_com_maior_saida(): permanence_periods = [(0, 2), (4, 4), (1, 3), (3, 4), (2, 5)] assert study_schedule(permanence_periods, 5) == 1 assert study_schedule(permanence_periods, 4) == 3 assert study_schedule(permanence_periods, 3) == 3 assert study_schedule(permanence_periods, 2) == 3 assert study_schedule(permanence_periods, 1) == 2 assert study_schedule(permanence_periods, 0) == 1
def test_validar_tempo_schedule(): permanence_periods = [(2, 2), (1, 2), (2, 3), (1, 5), (4, 5), (4, 5)] algorithms_correct = study_schedule(permanence_periods, 5) == 3 setup_import = ("from challenges.challenge_study_schedule " "import study_schedule") time = timeit.timeit( f"study_schedule({permanence_periods}, 5)", setup=f"{setup_import}", number=10000, ) correct_time = time <= 0.02 assert ( algorithms_correct and correct_time ), f"Falhou, o tempo foi: {time}, algoritmo correto? {algorithms_correct}"
def test_validar_tempo_schedule(): start_time = [2, 1, 2, 1, 4, 4] end_time = [2, 2, 3, 5, 5, 5] algorithms_correct = study_schedule(start_time, end_time, 5) == 3 setup_import = ("from challenges.challenge_study_schedule " "import study_schedule") time = timeit.timeit( f"study_schedule({start_time}, {end_time}, 5)", setup=f"{setup_import}", number=10000, ) correct_time = time <= 0.02 assert ( algorithms_correct and correct_time ), f"Falhou, o tempo foi: {time}, algoritmo correto? {algorithms_correct}"
def test_validar_target_time_com_vazio(): permanence_periods = [(1, 5), (2, 4), (3, 3), (4, 4), (5, 5)] target_time = None assert study_schedule(permanence_periods, target_time) is None
def test_validar_permanence_periods_com_entradas_inválidas(): permanence_periods = [(4, None), ("0", 4)] target_time = 4 assert study_schedule(permanence_periods, target_time) is None
def test_validar_target_time_com_vazio(): start_time = [1, 2, 3, 4, 5] end_time = [5, 4, 3, 4, 5] target_time = 0 assert study_schedule(start_time, end_time, target_time) == 0
def test_validar_start_time_com_valor_vazio(): start_time = [] end_time = [5, 4, 3, 4, 5] target_time = 4 assert study_schedule(start_time, end_time, target_time) == 0