async def custom_type(dut):
    """
    Test iteration over a custom type
    """
    expected_sub = 84
    expected_top = 4

    count = 0

    def _discover(obj):
        iter_count = 0
        for elem in obj:
            iter_count += 1
            iter_count += _discover(elem)
        return iter_count

    for sub in dut.cosLut:
        sub_count = _discover(sub)
        assert sub_count == expected_sub
        count += 1

    assert expected_top == count