Exemplo n.º 1
0
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
Exemplo n.º 2
0
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
Exemplo n.º 3
0
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
Exemplo n.º 4
0
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
Exemplo n.º 5
0
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
Exemplo n.º 6
0
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
Exemplo n.º 7
0
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
Exemplo n.º 8
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
Exemplo n.º 9
0
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
Exemplo n.º 10
0
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
Exemplo n.º 11
0
def test_fruit_order_last_1():
    """Test if there's no baskets but 1 need."""
    assert solution.fruit_order(0, 0, 1) == -1
Exemplo n.º 12
0
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
Exemplo n.º 13
0
def test_fruit_order_order_all_0():
    """Test if there's 0 baskets and 0 need."""
    assert solution.fruit_order(0, 0, 0) == 0
Exemplo n.º 14
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
Exemplo n.º 15
0
def test_fruit_order_all_large_impossible():
    """Test if small and big baskets work but large."""
    assert solution.fruit_order(100, 100, 700) == -1
Exemplo n.º 16
0
def test_fruit_order_all_large_incomplete():
    """Test if small and big baskets work but large."""
    assert solution.fruit_order(100, 100, 550) == 50
Exemplo n.º 17
0
def test_fruit_order_large_baskets_only_large():
    """Test if big baskets work but large."""
    assert solution.fruit_order(300, 200, 1000) == 0
Exemplo n.º 18
0
def test_fruit_order_large_first_complete():
    """Test if only small baskets work."""
    assert solution.fruit_order(100, 0, 100) == 100
Exemplo n.º 19
0
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
Exemplo n.º 20
0
def test_fruit_order_large_first_impossible():
    """Test if only small baskets work."""
    assert solution.fruit_order(100, 0, 101) == -1
Exemplo n.º 21
0
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
Exemplo n.º 22
0
def test_fruit_order_large_second():
    """Test if only big baskets work."""
    assert solution.fruit_order(0, 100, 495) == 0
Exemplo n.º 23
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
Exemplo n.º 24
0
def test_fruit_order_large_second_complete():
    """Test if only big baskets work."""
    assert solution.fruit_order(0, 200, 1000) == 0
Exemplo n.º 25
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
Exemplo n.º 26
0
def test_fruit_order_large_second_impossible():
    """Test if only big baskets work."""
    assert solution.fruit_order(0, 200, 1001) == -1
Exemplo n.º 27
0
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
Exemplo n.º 28
0
def test_fruit_order_large_third():
    """Test if only big baskets work."""
    assert solution.fruit_order(0, 20, 500) == -1
Exemplo n.º 29
0
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
Exemplo n.º 30
0
def test_fruit_order_large_third_possible():
    """Test if only big baskets work but large."""
    assert solution.fruit_order(0, 50, 250) == 0