comparison contrib/python-zstandard/tests/test_data_structures_fuzzing.py @ 42070:675775c33ab6

zstandard: vendor python-zstandard 0.11 The upstream source distribution from PyPI was extracted. Unwanted files were removed. The clang-format ignore list was updated to reflect the new source of files. The project contains a vendored copy of zstandard 1.3.8. The old version was 1.3.6. This should result in some minor performance wins. test-check-py3-compat.t was updated to reflect now-passing tests on Python 3.8. Some HTTP tests were updated to reflect new zstd compression output. # no-check-commit because 3rd party code has different style guidelines Differential Revision: https://phab.mercurial-scm.org/D6199
author Gregory Szorc <gregory.szorc@gmail.com>
date Thu, 04 Apr 2019 17:34:43 -0700
parents 73fef626dae3
children de7838053207
comparison
equal deleted inserted replaced
42069:668eff08387f 42070:675775c33ab6
22 max_value=zstd.CHAINLOG_MAX) 22 max_value=zstd.CHAINLOG_MAX)
23 s_hashlog = strategies.integers(min_value=zstd.HASHLOG_MIN, 23 s_hashlog = strategies.integers(min_value=zstd.HASHLOG_MIN,
24 max_value=zstd.HASHLOG_MAX) 24 max_value=zstd.HASHLOG_MAX)
25 s_searchlog = strategies.integers(min_value=zstd.SEARCHLOG_MIN, 25 s_searchlog = strategies.integers(min_value=zstd.SEARCHLOG_MIN,
26 max_value=zstd.SEARCHLOG_MAX) 26 max_value=zstd.SEARCHLOG_MAX)
27 s_searchlength = strategies.integers(min_value=zstd.SEARCHLENGTH_MIN, 27 s_minmatch = strategies.integers(min_value=zstd.MINMATCH_MIN,
28 max_value=zstd.SEARCHLENGTH_MAX) 28 max_value=zstd.MINMATCH_MAX)
29 s_targetlength = strategies.integers(min_value=zstd.TARGETLENGTH_MIN, 29 s_targetlength = strategies.integers(min_value=zstd.TARGETLENGTH_MIN,
30 max_value=zstd.TARGETLENGTH_MAX) 30 max_value=zstd.TARGETLENGTH_MAX)
31 s_strategy = strategies.sampled_from((zstd.STRATEGY_FAST, 31 s_strategy = strategies.sampled_from((zstd.STRATEGY_FAST,
32 zstd.STRATEGY_DFAST, 32 zstd.STRATEGY_DFAST,
33 zstd.STRATEGY_GREEDY, 33 zstd.STRATEGY_GREEDY,
34 zstd.STRATEGY_LAZY, 34 zstd.STRATEGY_LAZY,
35 zstd.STRATEGY_LAZY2, 35 zstd.STRATEGY_LAZY2,
36 zstd.STRATEGY_BTLAZY2, 36 zstd.STRATEGY_BTLAZY2,
37 zstd.STRATEGY_BTOPT, 37 zstd.STRATEGY_BTOPT,
38 zstd.STRATEGY_BTULTRA)) 38 zstd.STRATEGY_BTULTRA,
39 zstd.STRATEGY_BTULTRA2))
39 40
40 41
41 @make_cffi 42 @make_cffi
42 @unittest.skipUnless('ZSTD_SLOW_TESTS' in os.environ, 'ZSTD_SLOW_TESTS not set') 43 @unittest.skipUnless('ZSTD_SLOW_TESTS' in os.environ, 'ZSTD_SLOW_TESTS not set')
43 class TestCompressionParametersHypothesis(unittest.TestCase): 44 class TestCompressionParametersHypothesis(unittest.TestCase):
44 @hypothesis.given(s_windowlog, s_chainlog, s_hashlog, s_searchlog, 45 @hypothesis.given(s_windowlog, s_chainlog, s_hashlog, s_searchlog,
45 s_searchlength, s_targetlength, s_strategy) 46 s_minmatch, s_targetlength, s_strategy)
46 def test_valid_init(self, windowlog, chainlog, hashlog, searchlog, 47 def test_valid_init(self, windowlog, chainlog, hashlog, searchlog,
47 searchlength, targetlength, strategy): 48 minmatch, targetlength, strategy):
48 zstd.ZstdCompressionParameters(window_log=windowlog, 49 zstd.ZstdCompressionParameters(window_log=windowlog,
49 chain_log=chainlog, 50 chain_log=chainlog,
50 hash_log=hashlog, 51 hash_log=hashlog,
51 search_log=searchlog, 52 search_log=searchlog,
52 min_match=searchlength, 53 min_match=minmatch,
53 target_length=targetlength, 54 target_length=targetlength,
54 compression_strategy=strategy) 55 strategy=strategy)
55 56
56 @hypothesis.given(s_windowlog, s_chainlog, s_hashlog, s_searchlog, 57 @hypothesis.given(s_windowlog, s_chainlog, s_hashlog, s_searchlog,
57 s_searchlength, s_targetlength, s_strategy) 58 s_minmatch, s_targetlength, s_strategy)
58 def test_estimated_compression_context_size(self, windowlog, chainlog, 59 def test_estimated_compression_context_size(self, windowlog, chainlog,
59 hashlog, searchlog, 60 hashlog, searchlog,
60 searchlength, targetlength, 61 minmatch, targetlength,
61 strategy): 62 strategy):
62 if searchlength == zstd.SEARCHLENGTH_MIN and strategy in (zstd.STRATEGY_FAST, zstd.STRATEGY_GREEDY): 63 if minmatch == zstd.MINMATCH_MIN and strategy in (zstd.STRATEGY_FAST, zstd.STRATEGY_GREEDY):
63 searchlength += 1 64 minmatch += 1
64 elif searchlength == zstd.SEARCHLENGTH_MAX and strategy != zstd.STRATEGY_FAST: 65 elif minmatch == zstd.MINMATCH_MAX and strategy != zstd.STRATEGY_FAST:
65 searchlength -= 1 66 minmatch -= 1
66 67
67 p = zstd.ZstdCompressionParameters(window_log=windowlog, 68 p = zstd.ZstdCompressionParameters(window_log=windowlog,
68 chain_log=chainlog, 69 chain_log=chainlog,
69 hash_log=hashlog, 70 hash_log=hashlog,
70 search_log=searchlog, 71 search_log=searchlog,
71 min_match=searchlength, 72 min_match=minmatch,
72 target_length=targetlength, 73 target_length=targetlength,
73 compression_strategy=strategy) 74 strategy=strategy)
74 size = p.estimated_compression_context_size() 75 size = p.estimated_compression_context_size()
75 76