def test_fruit_order_same(): """ Test fruit. :return: """ for num in range(0, 5): assert fruit_order(num, num, num) == num assert fruit_order(num, 1 + num, num) == num assert fruit_order(num + 2, 1 + num, num) == num assert fruit_order(num + 1, num + 1, num) == num
def test_fruit_order_false(): """ Test fruit. :return: """ assert fruit_order(1, 2, 3) == -1 assert fruit_order(3, 1, 4) == -1 assert fruit_order(6, 2, 26) == -1 assert fruit_order(1, 100, 19) == -1 assert fruit_order(3, 1, 10) == -1
def test_fruits_6(): """Big numbers.""" assert fruit_order(105, 105, 630) == 105 assert fruit_order(0, 105, 600) == -1 assert fruit_order(105, 0, 600) == -1 assert fruit_order(105, 200, 700) == 0 assert fruit_order(105, 105, 700) == -1 assert fruit_order(120, 120, 400) == 0 assert fruit_order(120, 120, 124) == 4 assert fruit_order(1, 120, 302) == -1
def test_fruit_order_is_impossible(): """Test when impossible to fulfill order in fruit_order.""" for a in range(0, 21): for b in range(0, 21): for c in range(0, 51): small_baskets, big_baskets, ordered_amount = a, b, c while big_baskets > 0 and ordered_amount > 4: big_baskets -= 1 ordered_amount -= 5 while small_baskets > 0 and ordered_amount > 0: small_baskets -= 1 ordered_amount -= 1 if ordered_amount != 0: assert solution.fruit_order(a, b, c) == -1
def test_fruit_order_middle(): """ Test fruit. :return: """ for num in range(10000): if num % 5 == 0: assert fruit_order(0, num, num) == 0 g = num // 5 assert fruit_order(0, g, num) == 0 assert fruit_order(0, g, num + 1) == -1 assert fruit_order(0, g, num + 5) == -1 assert fruit_order(0, g, num - 1) == -1 assert fruit_order(num, g, num) == 0 if num % 5 > 1: assert fruit_order(1, num, num) == -1 # Больше не надо if num // 5 > 1: k = num % 5 assert fruit_order(num, num, num) == k assert fruit_order(k - 1, num, num) == -1 v = num * 5 + num + 1 assert fruit_order(num, num, v) == -1
def test_fruit_order_num_of_small_baskets(): """Test how many small baskets it takes to fulfill order.""" for a in range(0, 21): for b in range(0, 21): for c in range(0, 51): small_baskets, big_baskets, ordered_amount, result = a, b, c, 0 while big_baskets > 0 and ordered_amount > 4: big_baskets -= 1 ordered_amount -= 5 while small_baskets > 0 and ordered_amount > 0: small_baskets -= 1 ordered_amount -= 1 result += 1 if ordered_amount == 0: assert solution.fruit_order(a, b, c) == result
def test_fruit_order(): """ Test fruit. :return: """ assert fruit_order(4, 1, 9) == 4 assert fruit_order(6, 2, 5) == 0 assert fruit_order(23, 2, 10) == 0 assert fruit_order(23, 0, 10) == 10 assert fruit_order(5, 1, 8) == 3 assert fruit_order(5, 2, 5) == 0
def test_fruit_order_zero(): """ Test fruit. :return: """ for num in range(10000): assert fruit_order(num, num, 0) == 0 assert fruit_order(num, 0, num) == num assert fruit_order(0, num, 0) == 0 assert fruit_order(num, 0, 0) == 0 assert fruit_order(num, 0, num + 1) == -1 assert fruit_order(num + 1, 0, num) == num
def test_fruit_order_last(): """ Test fruit. :return: """ for num in range(10000): d = num // 5 n = num % 5 assert fruit_order(n, d, num + 1) == -1 assert fruit_order(n - 1, d, num + 1) == -1 assert fruit_order(n, d - 1, num + 1) == -1 assert fruit_order(0, d, num + 1) == -1 assert fruit_order(0, 0, num + 1) == -1 if num != 0: assert fruit_order(0, 0, num) == -1
def test_fruit_order_first_1(): """Test if there's 1 small basket, 0 big and 0 need.""" assert solution.fruit_order(1, 0, 0) == 0
def test_fruit_order_last_1(): """Test if there's no baskets but 1 need.""" assert solution.fruit_order(0, 0, 1) == -1
def test_fruit_order_first_0(): """Test if there's no small baskets, 1 big and 1 need.""" assert solution.fruit_order(0, 1, 1) == -1
def test_fruit_order_order_all_0(): """Test if there's 0 baskets and 0 need.""" assert solution.fruit_order(0, 0, 0) == 0
def test_fruit_order_all_large_use_all(): """Test if both small and big ones used.""" assert solution.fruit_order(200, 200, 1200) == 200
def test_fruit_order_all_large_impossible(): """Test if small and big baskets work but large.""" assert solution.fruit_order(100, 100, 700) == -1
def test_fruit_order_all_large_incomplete(): """Test if small and big baskets work but large.""" assert solution.fruit_order(100, 100, 550) == 50
def test_fruit_order_large_baskets_only_large(): """Test if big baskets work but large.""" assert solution.fruit_order(300, 200, 1000) == 0
def test_fruit_order_large_first_complete(): """Test if only small baskets work.""" assert solution.fruit_order(100, 0, 100) == 100
def test_fruit_order_all_large_more_baskets(): """Test if small and big baskets work but large.""" assert solution.fruit_order(100, 300, 250) == 0
def test_fruit_order_large_first_impossible(): """Test if only small baskets work.""" assert solution.fruit_order(100, 0, 101) == -1
def test_fruit_order_all_large_enough_bigs_not_enough_smalls(): """Test if all there is not enough small baskets.""" assert solution.fruit_order(2, 600, 1158) == -1
def test_fruit_order_large_second(): """Test if only big baskets work.""" assert solution.fruit_order(0, 100, 495) == 0
def test_fruit_order_middle_0(): """Test if there's 1 small basket, 0 big and 0 need.""" assert solution.fruit_order(1, 0, 1) == 1
def test_fruit_order_large_second_complete(): """Test if only big baskets work.""" assert solution.fruit_order(0, 200, 1000) == 0
def test_fruit_order_last_0(): """Test if there's 1 small and 1 big basket, but 0 need.""" assert solution.fruit_order(1, 1, 0) == 0
def test_fruit_order_large_second_impossible(): """Test if only big baskets work.""" assert solution.fruit_order(0, 200, 1001) == -1
def test_fruit_order_middle_1(): """Test if there's 1 big basket, 0 small and 0 need.""" assert solution.fruit_order(0, 1, 0) == 0
def test_fruit_order_large_third(): """Test if only big baskets work.""" assert solution.fruit_order(0, 20, 500) == -1
def test_fruit_order_all_1(): """Test if there's 1 small and 1 big basket, and 1 need.""" assert solution.fruit_order(1, 1, 1) == 1
def test_fruit_order_large_third_possible(): """Test if only big baskets work but large.""" assert solution.fruit_order(0, 50, 250) == 0