def test_customer_num_items_with_multi_item() -> None:
    """check num item method with several items"""
    item1 = Item("banana", 10)
    item2 = Item("apple", 2)
    item3 = Item("orange", 9)
    customer1 = Customer("bruce", [item1, item2, item3])
    assert customer1.num_items() == 3
def test_customer_num_items_empty() -> None:
    """ Test customer num_items when customer has no items.

    """
    item_list = []
    belinda = Customer('Belinda', item_list)
    assert belinda.num_items() == 0
def test_customer_num_items_many() -> None:
    """ Test customer num_items when customer has many items.

    """
    item_list = [Item('bananas', 1), Item('apples', 2), Item('kiwis', 3),
                 Item('strawberries', 4), Item('guavas', 5), Item('oranges', 6)]
    belinda = Customer('Belinda', item_list)
    assert belinda.num_items() == 6
    assert len(belinda._items) == 6
def test_complete() -> None:
    customer = Customer("test1", [
        Item('apple\\34', 34),
        Item('apple\\43', 43),
        Item('apple\\567', 567),
        Item('apple\\785', 785)
    ])
    assert customer.arrival_time == -1
    assert customer.name == "test1"
    for item in customer._items:
        lst = item.name.split('\\')
        assert lst[0].isalpha()
        assert lst[1].isnumeric()
        assert item.get_time() == int(lst[1])
    assert customer.num_items() == 4
    assert customer.get_item_time() == 77 + 567 + 785
def test_customer_num_items_with_one_item() -> None:
    """check num item method with one item"""
    item1 = Item("banana", 10)
    customer1 = Customer("bruce", [item1])
    assert customer1.num_items() == 1
def test_customer_num_items_with_no_item() -> None:
    """check num item method with no item"""
    customer1 = Customer("bruce", [])
    assert customer1.arrival_time == -1
    assert customer1.num_items() == 0
def test_complete_init() -> None:
    customer = Customer("Empty", [])
    assert customer.arrival_time == -1
    assert customer.name == "Empty"
    assert customer.num_items() == 0
    assert customer.get_item_time() == 0
def test_customer_num_items() -> None:
    """Test the num_items of the Customer Class."""
    c1 = Customer('Anshul', [Item('bananas', 7), Item('mango', 1)])
    c2 = Customer('Aavi', [])
    assert c1.num_items() == 2
    assert c2.num_items() == 0