MCPcopy Index your code
hub / github.com/RustPython/RustPython / test_from_bytes

Method test_from_bytes

Lib/test/test_long.py:1403–1606  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

1401
1402 @unittest.expectedFailure # TODO: RUSTPYTHON
1403 def test_from_bytes(self):
1404 def check(tests, byteorder, signed=False):
1405 def equivalent_python(byte_array, byteorder, signed=False):
1406 if byteorder == 'little':
1407 little_ordered = list(byte_array)
1408 elif byteorder == 'big':
1409 little_ordered = list(reversed(byte_array))
1410
1411 n = sum(b << i*8 for i, b in enumerate(little_ordered))
1412 if signed and little_ordered and (little_ordered[-1] & 0x80):
1413 n -= 1 << 8*len(little_ordered)
1414
1415 return n
1416
1417 for test, expected in tests.items():
1418 try:
1419 self.assertEqual(
1420 int.from_bytes(test, byteorder, signed=signed),
1421 expected)
1422 except Exception as err:
1423 raise AssertionError(
1424 "failed to convert {} with byteorder={!r} and signed={}"
1425 .format(test, byteorder, signed)) from err
1426
1427 # Test for all default arguments.
1428 if byteorder == 'big' and not signed:
1429 try:
1430 self.assertEqual(
1431 int.from_bytes(test),
1432 expected)
1433 except Exception as err:
1434 raise AssertionError(
1435 "failed to convert {} with default arguments"
1436 .format(test)) from err
1437
1438 try:
1439 self.assertEqual(
1440 equivalent_python(test, byteorder, signed=signed),
1441 expected
1442 )
1443 except Exception as err:
1444 raise AssertionError(
1445 "Code equivalent from docs is not equivalent for "
1446 "conversion of {0} with byteorder={1!r} and signed={2}"
1447 .format(test, byteorder, signed)) from err
1448
1449 # Convert signed big-endian byte arrays to integers.
1450 tests1 = {
1451 b'': 0,
1452 b'\x00': 0,
1453 b'\x00\x00': 0,
1454 b'\x01': 1,
1455 b'\x00\x01': 1,
1456 b'\xff': -1,
1457 b'\xff\xff': -1,
1458 b'\x81': -127,
1459 b'\x80': -128,
1460 b'\xff\x7f': -129,

Callers

nothing calls this directly

Calls 11

getattrFunction · 0.85
ValidBytesClass · 0.85
InvalidBytesClass · 0.85
MissingBytesClass · 0.85
RaisingBytesClass · 0.85
checkFunction · 0.70
SubStrClass · 0.70
assertIsMethod · 0.45
from_bytesMethod · 0.45
assertEqualMethod · 0.45
assertRaisesMethod · 0.45

Tested by

no test coverage detected