Repository: pandas-dev/pandas

Issue:
CI/TST: hypothesis tests regularly fail due time-out
I have seen the following a few times:

```
______________ TestDataFrameAggregate.test_frequency_is_original _______________
[gw0] linux -- Python 3.7.0 /home/travis/miniconda3/envs/pandas/bin/python
self = <pandas.tests.frame.test_apply.TestDataFrameAggregate object at 0x7f17a4ae6ef0>
    @given(index=indices(5), num_columns=integers(0, 5))
>   def test_frequency_is_original(self, index, num_columns):
pandas/tests/frame/test_apply.py:1159: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
../../../miniconda3/envs/pandas/lib/python3.7/site-packages/hypothesis/core.py:695: in evaluate_test_data
    result = self.execute(data, collect=True)
../../../miniconda3/envs/pandas/lib/python3.7/site-packages/hypothesis/core.py:610: in execute
    result = self.test_runner(data, run)
../../../miniconda3/envs/pandas/lib/python3.7/site-packages/hypothesis/executors.py:58: in default_new_style_executor
    return function(data)
../../../miniconda3/envs/pandas/lib/python3.7/site-packages/hypothesis/core.py:606: in run
    return test(*args, **kwargs)
pandas/tests/frame/test_apply.py:1159: in test_frequency_is_original
    def test_frequency_is_original(self, index, num_columns):
../../../miniconda3/envs/pandas/lib/python3.7/site-packages/hypothesis/core.py:566: in test
    runtime, ceil(runtime / 100) * 100,
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
message = 'Test took 298.69ms to run. In future the default deadline setting will be 200ms, which will make this an error. You c...ue of e.g. 300 to turn tests slower than this into an error, or you can set it to None to disable this check entirely.'
s = settings(buffer_size=8192, database=DirectoryBasedExampleDatabase('/home/travis/build/jorisvandenbossche/pandas/.hypot...step_count=50, suppress_health_check=[HealthCheck.too_slow], timeout=60, use_coverage=True, verbosity=Verbosity.normal)
    def note_deprecation(message, s=None):
        # type: (str, settings) -> None
        if s is None:
            s = settings.default
        assert s is not None
        verbosity = s.verbosity
        warning = HypothesisDeprecationWarning(message)
        if verbosity > Verbosity.quiet:
>           warnings.warn(warning, stacklevel=3)
E           hypothesis.errors.HypothesisDeprecationWarning: Test took 298.69ms to run. In future the default deadline setting will be 200ms, which will make this an error. You can set deadline to an explicit value of e.g. 300 to turn tests slower than this into an error, or you can set it to None to disable this check entirely.
../../../miniconda3/envs/pandas/lib/python3.7/site-packages/hypothesis/_settings.py:828: HypothesisDeprecationWarning
---------------------------------- Hypothesis ----------------------------------
You can add @seed(169950230187726778200653375172917819369) to this test or run pytest with --hypothesis-seed=169950230187726778200653375172917819369 to reproduce this failure.
```


Discussion:
cc @Zac-HD 
Right, all the timing warnings are tuned for scalar values, so arrays tend to trigger them a bit too easily...   I'll open a PR to adjust the deadline shortly :smile:

Resolving patch:
diff --git a/pandas/conftest.py b/pandas/conftest.py
--- a/pandas/conftest.py
+++ b/pandas/conftest.py
@@ -13,6 +13,11 @@
 
 hypothesis.settings.register_profile(
     "ci",
+    # Hypothesis timing checks are tuned for scalars by default, so we bump
+    # them from 200ms to 5 secs per test case as the global default.  If this
+    # is too short for a specific test, (a) try to make it faster, and (b)
+    # if it really is slow add `@settings(timeout=...)` with a working value.
+    timeout=5000,
     suppress_health_check=(hypothesis.HealthCheck.too_slow,)
 )
 hypothesis.settings.load_profile("ci")


Test patch: