def test_first_matching_item():
    'first_matching_item should return the first item where the predicate function returns true'
    assert (first_matching_item([1, 2, 3, 4, 5], (lambda x: ((x % 2) == 0))) == 2)
    assert (first_matching_item([], (lambda x: True)) is None)
    assert (first_matching_item(['x', 'y', 'z'], (lambda x: False)) is None)
first_matching_item should return the first item where the predicate function returns true
def test_first_matching_item():
    
    assert (first_matching_item([1, 2, 3, 4, 5], (lambda x: ((x % 2) == 0))) == 2)
    assert (first_matching_item([], (lambda x: True)) is None)
    assert (first_matching_item(['x', 'y', 'z'], (lambda x: False)) is None)