def test_adler32(): """ When called with a string, zlib.crc32 should compute its adler 32 checksum and return it as an unsigned 32 bit integer. """ assert rzlib.adler32('') == r_uint(1) assert rzlib.adler32('\0') == r_uint(65537) assert rzlib.adler32('hello, world.') == r_uint(571147447) assert rzlib.adler32('x' * 23) == r_uint(2172062409)
def adler32(space, string, start=rzlib.ADLER32_DEFAULT_START): """ adler32(string[, start]) -- Compute an Adler-32 checksum of string. An optional starting value can be specified. The returned checksum is an integer. """ checksum = rzlib.adler32(string, start) # See comments in crc32() for the following line checksum = unsigned_to_signed_32bit(checksum) return space.wrap(checksum)
def adler32(space, string, start = rzlib.ADLER32_DEFAULT_START): """ adler32(string[, start]) -- Compute an Adler-32 checksum of string. An optional starting value can be specified. The returned checksum is an integer. """ checksum = rzlib.adler32(string, start) # See comments in crc32() for the following line checksum = unsigned_to_signed_32bit(checksum) return space.wrap(checksum)
def adler32(space, string, start = rzlib.ADLER32_DEFAULT_START): """ adler32(string[, start]) -- Compute an Adler-32 checksum of string. An optional starting value can be specified. The returned checksum is an integer. """ checksum = rzlib.adler32(string, start) # This is, perhaps, a little stupid. zlib returns the checksum unsigned. # CPython exposes it as a signed value, though. -exarkun # The value *is* unsigned on 64-bit platforms in CPython... bah. # For now let's do the same as CPython and boldly cast to a C long. -arigo checksum = intmask(checksum) return space.wrap(checksum)
def test_adler32_start_value(): """ When called with a string and an integer, zlib.adler32 should compute the adler 32 checksum of the string using the integer as the starting value. """ assert rzlib.adler32('', 42) == r_uint(42) assert rzlib.adler32('\0', 42) == r_uint(2752554) assert rzlib.adler32('hello, world.', 42) == r_uint(606078176) assert rzlib.adler32('x' * 23, 42) == r_uint(2233862898) hello = 'hello, ' hellosum = rzlib.adler32(hello) world = 'world.' helloworldsum = rzlib.adler32(world, hellosum) assert helloworldsum == rzlib.adler32(hello + world)