11import unittest
22
3- from axelrod import all_strategies , filtered_strategies , seed
4-
3+ from axelrod import filtered_strategies , seed , short_run_time_strategies
4+ from axelrod . tests . property import strategy_lists
55from hypothesis import example , given , settings
66from hypothesis .strategies import integers
77
@@ -12,7 +12,8 @@ class TestFiltersAgainstComprehensions(unittest.TestCase):
1212 match the results from using a list comprehension.
1313 """
1414
15- def test_boolean_filtering (self ):
15+ @given (strategies = strategy_lists (min_size = 20 , max_size = 20 ))
16+ def test_boolean_filtering (self , strategies ):
1617
1718 classifiers = [
1819 "stochastic" ,
@@ -23,62 +24,69 @@ def test_boolean_filtering(self):
2324 ]
2425
2526 for classifier in classifiers :
26- comprehension = set ([s for s in all_strategies if s .classifier [classifier ]])
27+ comprehension = set ([s for s in strategies if s .classifier [classifier ]])
2728 filterset = {classifier : True }
28- filtered = set (filtered_strategies (filterset ))
29+ filtered = set (filtered_strategies (filterset , strategies = strategies ))
2930 self .assertEqual (comprehension , filtered )
3031
3132 @given (
3233 min_memory_depth = integers (min_value = 1 , max_value = 10 ),
3334 max_memory_depth = integers (min_value = 1 , max_value = 10 ),
3435 memory_depth = integers (min_value = 1 , max_value = 10 ),
36+ strategies = strategy_lists (min_size = 20 , max_size = 20 ),
3537 )
3638 @example (
3739 min_memory_depth = float ("inf" ),
3840 max_memory_depth = float ("inf" ),
3941 memory_depth = float ("inf" ),
42+ strategies = short_run_time_strategies ,
4043 )
41- @settings (max_examples = 5 , max_iterations = 20 )
44+ @settings (max_examples = 5 )
4245 def test_memory_depth_filtering (
43- self , min_memory_depth , max_memory_depth , memory_depth
46+ self , min_memory_depth , max_memory_depth , memory_depth ,
47+ strategies
4448 ):
4549
4650 min_comprehension = set (
4751 [
4852 s
49- for s in all_strategies
53+ for s in strategies
5054 if s ().classifier ["memory_depth" ] >= min_memory_depth
5155 ]
5256 )
5357 min_filterset = {"min_memory_depth" : min_memory_depth }
54- min_filtered = set (filtered_strategies (min_filterset ))
58+ min_filtered = set (filtered_strategies (min_filterset ,
59+ strategies = strategies ))
5560 self .assertEqual (min_comprehension , min_filtered )
5661
5762 max_comprehension = set (
5863 [
5964 s
60- for s in all_strategies
65+ for s in strategies
6166 if s ().classifier ["memory_depth" ] <= max_memory_depth
6267 ]
6368 )
6469 max_filterset = {"max_memory_depth" : max_memory_depth }
65- max_filtered = set (filtered_strategies (max_filterset ))
70+ max_filtered = set (filtered_strategies (max_filterset ,
71+ strategies = strategies ))
6672 self .assertEqual (max_comprehension , max_filtered )
6773
6874 comprehension = set (
6975 [
7076 s
71- for s in all_strategies
77+ for s in strategies
7278 if s ().classifier ["memory_depth" ] == memory_depth
7379 ]
7480 )
7581 filterset = {"memory_depth" : memory_depth }
76- filtered = set (filtered_strategies (filterset ))
82+ filtered = set (filtered_strategies (filterset , strategies = strategies ))
7783 self .assertEqual (comprehension , filtered )
7884
79- @given (seed_ = integers (min_value = 0 , max_value = 4294967295 ))
80- @settings (max_examples = 5 , max_iterations = 20 )
81- def test_makes_use_of_filtering (self , seed_ ):
85+ @given (seed_ = integers (min_value = 0 , max_value = 4294967295 ),
86+ strategies = strategy_lists (min_size = 20 , max_size = 20 ),
87+ )
88+ @settings (max_examples = 5 )
89+ def test_makes_use_of_filtering (self , seed_ , strategies ):
8290 """
8391 Test equivalent filtering using two approaches.
8492
@@ -91,14 +99,14 @@ def test_makes_use_of_filtering(self, seed_):
9199 comprehension = set (
92100 [
93101 s
94- for s in all_strategies
102+ for s in strategies
95103 if set (classifier ).issubset (set (s ().classifier ["makes_use_of" ]))
96104 ]
97105 )
98106
99107 seed (seed_ )
100108 filterset = {"makes_use_of" : classifier }
101- filtered = set (filtered_strategies (filterset ))
109+ filtered = set (filtered_strategies (filterset , strategies = strategies ))
102110
103111 self .assertEqual (
104112 comprehension , filtered , msg = "classifier: {}" .format (classifier )
0 commit comments