assert(type(5) == int)
assert(type(True) == bool)
assert(type(5.7) == float)
assert(type(9 + 5j) == complex)
assert(type((8, 'dog', False)) == tuple)
assert(type('hello') == str)
assert(type(b'hello') == bytes)
assert(type([1, '', False]) == list)
assert(type(range(1,10)) == range)
assert(type(set([1, 2, 3])) == set)
assert(type(frozenset([1, 2, 3])) == frozenset)
assert(type({'x': 1, 'y': 2}) == dict)
assert(type(int) == type)
assert(type(type) == type)
assert(type(enumerate([])) == enumerate)
assert(type(slice([])) == slice)

assert(str(type(None)) == "<class 'NoneType'>")
assert(str(type(NotImplemented)) == "<class 'NotImplementedType'>")
assert(str(type(abs)) == "<class 'builtin_function_or_method'>")

assert(type(5) == int)
assert(type(True) == bool)
assert(type(5.7) == float)
assert(type(9 + 5j) == complex)
assert(type((8, 'dog', False)) == tuple)
assert(type('hello') == str)
assert(type(b'hello') == bytes)
assert(type([1, '', False]) == list)
assert(type(range(1,10)) == range)
assert(type({1, 2, 3}) == set)
assert(type(frozenset([1, 2, 3])) == frozenset)
assert(type({'x': 1, 'y': 2}) == dict)
assert(type(int) == type)
assert(type(type) == type)
assert(type(enumerate([])) == enumerate)
assert(type(slice([])) == slice)

assert(str(type(None)) == "<class 'NoneType'>")
assert(str(type(NotImplemented)) == "<class 'NotImplementedType'>")
assert(str(type(abs)) == "<class 'builtin_function_or_method'>")

Use braces for Python sets
Use braces for Python sets
