def test_type_name_complex() -> None:
    assert (_type_name([(('c', 'c'), 'c'), 'i', (['c'], )
                        ]) == '[((bytes, bytes), bytes), int, ([bytes])]')
def test_type_name_object_basic() -> None:
    assert _type_name([('i', )]) == '[(int)]'
def test_type_name_list_basic() -> None:
    assert _type_name([['i']]) == '[[int]]'
def test_type_name_tuple_basic() -> None:
    assert _type_name(['i', 'c']) == '[int, bytes]'
    assert _type_name(['?', 'f']) == '[bool, float]'
def test_type_name_basic() -> None:
    assert _type_name('c') == 'bytes'
    assert _type_name('i') == 'int'
    assert _type_name('?') == 'bool'
    assert _type_name('f') == 'float'
def test_type_name_none() -> None:
    assert _type_name(None) == ''