(self)
| 1262 | self.assertRaises(TypeError, round, 3, e) |
| 1263 | |
| 1264 | def test_to_bytes(self): |
| 1265 | def check(tests, byteorder, signed=False): |
| 1266 | def equivalent_python(n, length, byteorder, signed=False): |
| 1267 | if byteorder == 'little': |
| 1268 | order = range(length) |
| 1269 | elif byteorder == 'big': |
| 1270 | order = reversed(range(length)) |
| 1271 | return bytes((n >> i*8) & 0xff for i in order) |
| 1272 | |
| 1273 | for test, expected in tests.items(): |
| 1274 | try: |
| 1275 | self.assertEqual( |
| 1276 | test.to_bytes(len(expected), byteorder, signed=signed), |
| 1277 | expected) |
| 1278 | except Exception as err: |
| 1279 | raise AssertionError( |
| 1280 | "failed to convert {} with byteorder={} and signed={}" |
| 1281 | .format(test, byteorder, signed)) from err |
| 1282 | |
| 1283 | # Test for all default arguments. |
| 1284 | if len(expected) == 1 and byteorder == 'big' and not signed: |
| 1285 | try: |
| 1286 | self.assertEqual(test.to_bytes(), expected) |
| 1287 | except Exception as err: |
| 1288 | raise AssertionError( |
| 1289 | "failed to convert {} with default arguments" |
| 1290 | .format(test)) from err |
| 1291 | |
| 1292 | try: |
| 1293 | self.assertEqual( |
| 1294 | equivalent_python( |
| 1295 | test, len(expected), byteorder, signed=signed), |
| 1296 | expected |
| 1297 | ) |
| 1298 | except Exception as err: |
| 1299 | raise AssertionError( |
| 1300 | "Code equivalent from docs is not equivalent for " |
| 1301 | "conversion of {0} with byteorder byteorder={1} and " |
| 1302 | "signed={2}".format(test, byteorder, signed)) from err |
| 1303 | |
| 1304 | # Convert integers to signed big-endian byte arrays. |
| 1305 | tests1 = { |
| 1306 | 0: b'\x00', |
| 1307 | 1: b'\x01', |
| 1308 | -1: b'\xff', |
| 1309 | -127: b'\x81', |
| 1310 | -128: b'\x80', |
| 1311 | -129: b'\xff\x7f', |
| 1312 | 127: b'\x7f', |
| 1313 | 129: b'\x00\x81', |
| 1314 | -255: b'\xff\x01', |
| 1315 | -256: b'\xff\x00', |
| 1316 | 255: b'\x00\xff', |
| 1317 | 256: b'\x01\x00', |
| 1318 | 32767: b'\x7f\xff', |
| 1319 | -32768: b'\xff\x80\x00', |
| 1320 | 65535: b'\x00\xff\xff', |
| 1321 | -65536: b'\xff\x00\x00', |
nothing calls this directly
no test coverage detected