|
2 | 2 | import pickle
|
3 | 3 | import typing
|
4 | 4 | from unittest import TestCase, main, skipUnless
|
5 |
| -from mypy_extensions import TypedDict |
| 5 | +from mypy_extensions import TypedDict, i64, i32, i16, u8 |
6 | 6 |
|
7 | 7 |
|
8 | 8 | class BaseTestCase(TestCase):
|
@@ -140,5 +140,46 @@ def test_total(self):
|
140 | 140 | self.assertEqual(Options.__total__, False) # noqa
|
141 | 141 |
|
142 | 142 |
|
| 143 | +native_int_types = [i64, i32, i16, u8] |
| 144 | + |
| 145 | + |
| 146 | +class MypycNativeIntTests(TestCase): |
| 147 | + def test_construction(self): |
| 148 | + for native_int in native_int_types: |
| 149 | + self.assert_same(native_int(), 0) |
| 150 | + |
| 151 | + self.assert_same(native_int(0), 0) |
| 152 | + self.assert_same(native_int(1), 1) |
| 153 | + self.assert_same(native_int(-3), -3) |
| 154 | + self.assert_same(native_int(2**64), 2**64) |
| 155 | + self.assert_same(native_int(-2**64), -2**64) |
| 156 | + |
| 157 | + self.assert_same(native_int(1.234), 1) |
| 158 | + self.assert_same(native_int(2.634), 2) |
| 159 | + self.assert_same(native_int(-1.234), -1) |
| 160 | + self.assert_same(native_int(-2.634), -2) |
| 161 | + |
| 162 | + self.assert_same(native_int("0"), 0) |
| 163 | + self.assert_same(native_int("123"), 123) |
| 164 | + self.assert_same(native_int("abc", 16), 2748) |
| 165 | + self.assert_same(native_int("-101", base=2), -5) |
| 166 | + |
| 167 | + def test_isinstance(self): |
| 168 | + for native_int in native_int_types: |
| 169 | + assert isinstance(0, native_int) |
| 170 | + assert isinstance(1234, native_int) |
| 171 | + assert isinstance(True, native_int) |
| 172 | + assert not isinstance(1.0, native_int) |
| 173 | + |
| 174 | + def test_docstring(self): |
| 175 | + for native_int in native_int_types: |
| 176 | + # Just check that a docstring exists |
| 177 | + assert native_int.__doc__ |
| 178 | + |
| 179 | + def assert_same(self, x, y): |
| 180 | + assert type(x) is type(y) |
| 181 | + assert x == y |
| 182 | + |
| 183 | + |
143 | 184 | if __name__ == '__main__':
|
144 | 185 | main()
|
0 commit comments