1 2# tests copied from test/test_bool.py in Py2.7 3 4cdef assertEqual(a,b): 5 assert a == b, '%r != %r' % (a,b) 6 7cdef assertIs(a,b): 8 assert a is b, '%r is not %r' % (a,b) 9 10cdef assertIsNot(a,b): 11 assert a is not b, '%r is %r' % (a,b) 12 13cdef assertNotIsInstance(a,b): 14 assert not isinstance(a,b), 'isinstance(%r, %s)' % (a,b) 15 16 17def test_int(): 18 """ 19 >>> test_int() 20 """ 21 assertEqual(int(False), 0) 22 assertIsNot(int(False), False) 23 assertEqual(int(True), 1) 24 assertIsNot(int(True), True) 25 26def test_float(): 27 """ 28 >>> test_float() 29 """ 30 assertEqual(float(False), 0.0) 31 assertIsNot(float(False), False) 32 assertEqual(float(True), 1.0) 33 assertIsNot(float(True), True) 34 35def test_repr(): 36 """ 37 >>> test_repr() 38 """ 39 assertEqual(repr(False), 'False') 40 assertEqual(repr(True), 'True') 41 assertEqual(eval(repr(False)), False) 42 assertEqual(eval(repr(True)), True) 43 44def test_str(): 45 """ 46 >>> test_str() 47 """ 48 assertEqual(str(False), 'False') 49 assertEqual(str(True), 'True') 50 51def test_math(): 52 """ 53 >>> test_math() 54 """ 55 assertEqual(+False, 0) 56 assertIsNot(+False, False) 57 assertEqual(-False, 0) 58 assertIsNot(-False, False) 59 assertEqual(abs(False), 0) 60 assertIsNot(abs(False), False) 61 assertEqual(+True, 1) 62 assertIsNot(+True, True) 63 assertEqual(-True, -1) 64 assertEqual(abs(True), 1) 65 assertIsNot(abs(True), True) 66 assertEqual(~False, -1) 67 assertEqual(~True, -2) 68 69 assertEqual(False+2, 2) 70 assertEqual(True+2, 3) 71 assertEqual(2+False, 2) 72 assertEqual(2+True, 3) 73 74 assertEqual(False+False, 0) 75 assertIsNot(False+False, False) 76 assertEqual(False+True, 1) 77 assertIsNot(False+True, True) 78 assertEqual(True+False, 1) 79 assertIsNot(True+False, True) 80 assertEqual(True+True, 2) 81 82 assertEqual(True-True, 0) 83 assertIsNot(True-True, False) 84 assertEqual(False-False, 0) 85 assertIsNot(False-False, False) 86 assertEqual(True-False, 1) 87 assertIsNot(True-False, True) 88 assertEqual(False-True, -1) 89 90 assertEqual(True*1, 1) 91 assertEqual(False*1, 0) 92 assertIsNot(False*1, False) 93 94 assertEqual(True/1, 1) 95 assertIsNot(True/1, True) 96 assertEqual(False/1, 0) 97 assertIsNot(False/1, False) 98 99 for b in False, True: 100 for i in 0, 1, 2: 101 assertEqual(b**i, int(b)**i) 102 assertIsNot(b**i, bool(int(b)**i)) 103 104 for a in False, True: 105 for b in False, True: 106 assertIs(a&b, bool(int(a)&int(b))) 107 assertIs(a|b, bool(int(a)|int(b))) 108 assertIs(a^b, bool(int(a)^int(b))) 109 assertEqual(a&int(b), int(a)&int(b)) 110 assertIsNot(a&int(b), bool(int(a)&int(b))) 111 assertEqual(a|int(b), int(a)|int(b)) 112 assertIsNot(a|int(b), bool(int(a)|int(b))) 113 assertEqual(a^int(b), int(a)^int(b)) 114 assertIsNot(a^int(b), bool(int(a)^int(b))) 115 assertEqual(int(a)&b, int(a)&int(b)) 116 assertIsNot(int(a)&b, bool(int(a)&int(b))) 117 assertEqual(int(a)|b, int(a)|int(b)) 118 assertIsNot(int(a)|b, bool(int(a)|int(b))) 119 assertEqual(int(a)^b, int(a)^int(b)) 120 assertIsNot(int(a)^b, bool(int(a)^int(b))) 121 122 assertIs(1==1, True) 123 assertIs(1==0, False) 124 assertIs(0<1, True) 125 assertIs(1<0, False) 126 assertIs(0<=0, True) 127 assertIs(1<=0, False) 128 assertIs(1>0, True) 129 assertIs(1>1, False) 130 assertIs(1>=1, True) 131 assertIs(0>=1, False) 132 assertIs(0!=1, True) 133 assertIs(0!=0, False) 134 135 y = x = [1] 136 assertIs(x is y, True) 137 assertIs(x is not y, False) 138 139 assertIs(1 in x, True) 140 assertIs(0 in x, False) 141 assertIs(1 not in x, False) 142 assertIs(0 not in x, True) 143 144 y = x = {1: 2} 145 assertIs(x is y, True) 146 assertIs(x is not y, False) 147 148 assertIs(1 in x, True) 149 assertIs(0 in x, False) 150 assertIs(1 not in x, False) 151 assertIs(0 not in x, True) 152 153 assertIs(not True, False) 154 assertIs(not False, True) 155 156def test_convert(): 157 """ 158 >>> test_convert() 159 """ 160 assertIs(bool(10), True) 161 assertIs(bool(1), True) 162 assertIs(bool(-1), True) 163 assertIs(bool(0), False) 164 assertIs(bool("hello"), True) 165 assertIs(bool(""), False) 166 assertIs(bool(), False) 167 168def test_isinstance(): 169 """ 170 >>> test_isinstance() 171 """ 172 assertIs(isinstance(True, bool), True) 173 assertIs(isinstance(False, bool), True) 174 assertIs(isinstance(True, int), True) 175 assertIs(isinstance(False, int), True) 176 assertIs(isinstance(1, bool), False) 177 assertIs(isinstance(0, bool), False) 178 179def test_issubclass(): 180 """ 181 >>> test_issubclass() 182 """ 183 assertIs(issubclass(bool, int), True) 184 assertIs(issubclass(int, bool), False) 185 186def test_boolean(): 187 """ 188 >>> test_boolean() 189 """ 190 assertEqual(True & 1, 1) 191 assertNotIsInstance(True & 1, bool) 192 assertIs(True & True, True) 193 194 assertEqual(True | 1, 1) 195 assertNotIsInstance(True | 1, bool) 196 assertIs(True | True, True) 197 198 assertEqual(True ^ 1, 0) 199 assertNotIsInstance(True ^ 1, bool) 200 assertIs(True ^ True, False) 201