# SPDX-License-Identifier: MIT
print(all([]),any([]),all(()),any(()),all({}),any(set()))
print(all([1,2]),any([0,1]),all([1,0]),any([0,0]))
print(all((1,'x',True,None)),any((0,'',False,'é')))
print(all('é🙂'),any(''),all(b'\x01\xff'),all(b'a\x00'),any(b'\x00'))
print(all({1,2}),all({0,1}),any(frozenset([0,1])))
values={1:0,2:2}
print(all(values),all(values.values()),any(values.values()),all(values.items()),any(values.items()))
class Flag:
    def __init__(self,value):self.value=value
    def __bool__(self):
        print('test',self.value)
        return self.value>0
flags=[Flag(0),Flag(1),Flag(2)]
print(any(flags),all(flags))
print(all((Flag(1),Flag(0),'unvisited')),any((Flag(0),Flag(1),None)))
class Length:
    def __init__(self,value):self.value=value
    def __len__(self):
        print('length',self.value)
        return self.value
print(all([Length(1),Length(0),Length(2)]))
class Appending:
    def __init__(self,value):self.value=value
    def __bool__(self):
        if self.value==0 and len(changing)==2:
            changing.append(Appending(2))
        print('changing',self.value)
        return self.value==2
changing=[Appending(0),Appending(1)]
print(any(changing),len(changing))
class Resizing:
    def __bool__(self):
        mapping['b']=Resizing()
        return False
mapping={'a':Resizing()}
try:
    any(mapping.values())
except RuntimeError as error:
    print(repr(error))
class Bad:
    def __bool__(self):return 1
try:
    all([Bad()])
except TypeError as error:
    print(repr(error))
def bool(value):return False
print(all([1,2]),any([1]))
