##// END OF EJS Templates
exchange: move _computeellipsis() from narrow...
exchange: move _computeellipsis() from narrow This is also referenced as part of the narrow changegroup code and therefore needs to move to core before we can integrate the narrow changegroup code into core. Differential Revision: https://phab.mercurial-scm.org/D4009

File last commit:

r37513:b1fb341d default
r38815:ea9834aa default
Show More
test_data_structures_fuzzing.py
75 lines | 3.5 KiB | text/x-python | PythonLexer
/ contrib / python-zstandard / tests / test_data_structures_fuzzing.py
Gregory Szorc
zstd: vendor python-zstandard 0.8.0...
r31796 import io
import os
Gregory Szorc
zstandard: vendor python-zstandard 0.9.0...
r37513 import sys
import unittest
Gregory Szorc
zstd: vendor python-zstandard 0.8.0...
r31796
try:
import hypothesis
import hypothesis.strategies as strategies
except ImportError:
raise unittest.SkipTest('hypothesis not available')
Gregory Szorc
zstandard: vendor python-zstandard 0.9.0...
r37513 import zstandard as zstd
Gregory Szorc
zstd: vendor python-zstandard 0.8.0...
r31796
from .common import (
make_cffi,
)
s_windowlog = strategies.integers(min_value=zstd.WINDOWLOG_MIN,
max_value=zstd.WINDOWLOG_MAX)
s_chainlog = strategies.integers(min_value=zstd.CHAINLOG_MIN,
max_value=zstd.CHAINLOG_MAX)
s_hashlog = strategies.integers(min_value=zstd.HASHLOG_MIN,
max_value=zstd.HASHLOG_MAX)
s_searchlog = strategies.integers(min_value=zstd.SEARCHLOG_MIN,
max_value=zstd.SEARCHLOG_MAX)
s_searchlength = strategies.integers(min_value=zstd.SEARCHLENGTH_MIN,
Gregory Szorc
zstandard: vendor python-zstandard 0.9.0...
r37513 max_value=zstd.SEARCHLENGTH_MAX)
Gregory Szorc
zstd: vendor python-zstandard 0.8.0...
r31796 s_targetlength = strategies.integers(min_value=zstd.TARGETLENGTH_MIN,
Gregory Szorc
zstandard: vendor python-zstandard 0.9.0...
r37513 max_value=2**32)
Gregory Szorc
zstd: vendor python-zstandard 0.8.0...
r31796 s_strategy = strategies.sampled_from((zstd.STRATEGY_FAST,
zstd.STRATEGY_DFAST,
zstd.STRATEGY_GREEDY,
zstd.STRATEGY_LAZY,
zstd.STRATEGY_LAZY2,
zstd.STRATEGY_BTLAZY2,
Gregory Szorc
zstandard: vendor python-zstandard 0.9.0...
r37513 zstd.STRATEGY_BTOPT,
zstd.STRATEGY_BTULTRA))
Gregory Szorc
zstd: vendor python-zstandard 0.8.0...
r31796
@make_cffi
@unittest.skipUnless('ZSTD_SLOW_TESTS' in os.environ, 'ZSTD_SLOW_TESTS not set')
class TestCompressionParametersHypothesis(unittest.TestCase):
@hypothesis.given(s_windowlog, s_chainlog, s_hashlog, s_searchlog,
s_searchlength, s_targetlength, s_strategy)
def test_valid_init(self, windowlog, chainlog, hashlog, searchlog,
searchlength, targetlength, strategy):
Gregory Szorc
zstandard: vendor python-zstandard 0.9.0...
r37513 zstd.ZstdCompressionParameters(window_log=windowlog,
chain_log=chainlog,
hash_log=hashlog,
search_log=searchlog,
min_match=searchlength,
target_length=targetlength,
compression_strategy=strategy)
Gregory Szorc
zstd: vendor python-zstandard 0.8.0...
r31796
@hypothesis.given(s_windowlog, s_chainlog, s_hashlog, s_searchlog,
s_searchlength, s_targetlength, s_strategy)
Gregory Szorc
zstandard: vendor python-zstandard 0.9.0...
r37513 def test_estimated_compression_context_size(self, windowlog, chainlog,
Gregory Szorc
zstd: vendor python-zstandard 0.8.0...
r31796 hashlog, searchlog,
searchlength, targetlength,
strategy):
if searchlength == zstd.SEARCHLENGTH_MIN and strategy in (zstd.STRATEGY_FAST, zstd.STRATEGY_GREEDY):
searchlength += 1
elif searchlength == zstd.SEARCHLENGTH_MAX and strategy != zstd.STRATEGY_FAST:
searchlength -= 1
Gregory Szorc
zstandard: vendor python-zstandard 0.9.0...
r37513 p = zstd.ZstdCompressionParameters(window_log=windowlog,
chain_log=chainlog,
hash_log=hashlog,
search_log=searchlog,
min_match=searchlength,
target_length=targetlength,
compression_strategy=strategy)
size = p.estimated_compression_context_size()