|
| 1 | +import zlib |
| 2 | +from testutils import assert_raises |
| 3 | + |
| 4 | +# checksum functions |
| 5 | +assert zlib.crc32(b"123") == 2286445522 |
| 6 | +assert zlib.crc32(b"123", 1) == 2307525093 |
| 7 | +assert zlib.crc32(b"123", 2) == 2345449404 |
| 8 | +assert zlib.crc32(b"123", 3) == 2316230027 |
| 9 | +assert zlib.crc32(b"123", 4) == 2403453710 |
| 10 | +assert zlib.crc32(b"123", 5) == 2390991161 |
| 11 | +assert zlib.crc32(b"123", 6) == 2361728864 |
| 12 | +assert zlib.crc32(b"123", -123) == 3515918521 |
| 13 | +assert zlib.crc32(b"123", -122) == 3554023136 |
| 14 | +assert zlib.crc32(b"123", -121) == 3524558039 |
| 15 | +assert zlib.crc32(b"123", -120) == 3645389802 |
| 16 | +assert zlib.crc32(b"123", -119) == 3632943581 |
| 17 | +assert zlib.crc32(b"123", -118) == 3670863748 |
| 18 | +assert zlib.crc32(b"123") == zlib.crc32(b"123", 0) |
| 19 | + |
| 20 | +assert zlib.adler32(b"456") == 20906144 |
| 21 | +assert zlib.adler32(b"456", 1) == 20906144 |
| 22 | +assert zlib.adler32(b"456", 2) == 21102753 |
| 23 | +assert zlib.adler32(b"456", 3) == 21299362 |
| 24 | +assert zlib.adler32(b"456", 4) == 21495971 |
| 25 | +assert zlib.adler32(b"456", 5) == 21692580 |
| 26 | +assert zlib.adler32(b"456", 6) == 21889189 |
| 27 | +assert zlib.adler32(b"456", -123) == 393267 |
| 28 | +assert zlib.adler32(b"456", -122) == 589876 |
| 29 | +assert zlib.adler32(b"456", -121) == 786485 |
| 30 | +assert zlib.adler32(b"456", -120) == 983094 |
| 31 | +assert zlib.adler32(b"456", -119) == 1179703 |
| 32 | +assert zlib.adler32(b"456", -118) == 1376312 |
| 33 | +assert zlib.adler32(b"456") == zlib.adler32(b"456", 1) |
| 34 | + |
| 35 | +# compression |
| 36 | +lorem = bytes("Lorem ipsum dolor sit amet", "utf-8") |
| 37 | + |
| 38 | +compressed_lorem_list = [ |
| 39 | + b"x\x01\x01\x1a\x00\xe5\xffLorem ipsum dolor sit amet\x83\xd5\t\xc5", |
| 40 | + b"x\x01\xf3\xc9/J\xcdU\xc8,(.\xcdUH\xc9\xcf\xc9/R(\xce,QH\xccM-\x01\x00\x83\xd5\t\xc5", |
| 41 | + b"x^\xf3\xc9/J\xcdU\xc8,(.\xcdUH\xc9\xcf\xc9/R(\xce,QH\xccM-\x01\x00\x83\xd5\t\xc5", |
| 42 | + b"x^\xf3\xc9/J\xcdU\xc8,(.\xcdUH\xc9\xcf\xc9/R(\xce,QH\xccM-\x01\x00\x83\xd5\t\xc5", |
| 43 | + b"x^\xf3\xc9/J\xcdU\xc8,(.\xcdUH\xc9\xcf\xc9/R(\xce,QH\xccM-\x01\x00\x83\xd5\t\xc5", |
| 44 | + b"x^\xf3\xc9/J\xcdU\xc8,(.\xcdUH\xc9\xcf\xc9/R(\xce,QH\xccM-\x01\x00\x83\xd5\t\xc5", |
| 45 | + b"x\x9c\xf3\xc9/J\xcdU\xc8,(.\xcdUH\xc9\xcf\xc9/R(\xce,QH\xccM-\x01\x00\x83\xd5\t\xc5", |
| 46 | + b"x\xda\xf3\xc9/J\xcdU\xc8,(.\xcdUH\xc9\xcf\xc9/R(\xce,QH\xccM-\x01\x00\x83\xd5\t\xc5", |
| 47 | + b"x\xda\xf3\xc9/J\xcdU\xc8,(.\xcdUH\xc9\xcf\xc9/R(\xce,QH\xccM-\x01\x00\x83\xd5\t\xc5", |
| 48 | + b"x\xda\xf3\xc9/J\xcdU\xc8,(.\xcdUH\xc9\xcf\xc9/R(\xce,QH\xccM-\x01\x00\x83\xd5\t\xc5", |
| 49 | +] |
| 50 | + |
| 51 | +for level, text in enumerate(compressed_lorem_list): |
| 52 | + assert zlib.compress(lorem, level) == text |
| 53 | + |
| 54 | +# default level |
| 55 | +assert zlib.compress(lorem) == zlib.compress(lorem, -1) == zlib.compress(lorem, 6) |
| 56 | + |
| 57 | +# decompression |
| 58 | +for text in compressed_lorem_list: |
| 59 | + assert zlib.decompress(text) == lorem |
| 60 | + |
| 61 | +assert_raises(zlib.error, lambda: zlib.compress(b"123", -40)) |
| 62 | +assert_raises(zlib.error, lambda: zlib.compress(b"123", 10)) |
0 commit comments