11from hypothesis import strategies as st , given , settings , event , assume
22
3+
34def unpack (l ):
45 return ", " .join ([str (i ) for i in l ])
56
7+
68small_ints = st .integers (min_value = - 100 , max_value = 100 )
79
10+
811@st .composite
912def tuples (draw , children ):
1013 values = draw (st .lists (children ))
1114 return f"stdx::make_tuple({ unpack (values )} )"
1215
16+
1317@st .composite
1418def list_trees (draw , leaves = st .integers (), max_leaves = 100 ):
15- l = draw (st .recursive (leaves , lambda children : st .lists (children ), max_leaves = max_leaves ))
19+ l = draw (
20+ st .recursive (leaves , lambda children : st .lists (children ), max_leaves = max_leaves )
21+ )
1622 if not isinstance (l , list ):
1723 l = [l ]
1824 return l
1925
26+
2027def as_tuple_tree (value ):
2128 if isinstance (value , list ):
2229 values = [as_tuple_tree (v ) for v in value ]
2330 return f"stdx::make_tuple({ unpack (values )} )"
2431 else :
2532 return value
2633
34+
2735@st .composite
2836def tuple_trees (draw , leaves = st .integers ()):
2937 return draw (st .recursive (leaves , lambda children : tuples (children )))
3038
39+
3140@settings (deadline = 50000 )
3241@given (tuple_trees (small_ints ))
3342def test_tuple_trees (compile , t ):
34- assert compile (f"""
43+ assert compile (
44+ f"""
3545 #include <stdx/tuple.hpp>
3646
3747 [[maybe_unused]] constexpr auto t = { t } ;
3848
3949 int main() {{
4050 return 0;
4151 }}
42- """ )
52+ """
53+ )
54+
4355
4456@settings (deadline = 50000 )
4557@given (list_trees (small_ints ))
4658def test_tuple_size (compile , l ):
4759 t = as_tuple_tree (l )
48- assert compile (f"""
60+ assert compile (
61+ f"""
4962 #include <stdx/tuple.hpp>
5063
5164 constexpr auto t = { t } ;
@@ -55,7 +68,8 @@ def test_tuple_size(compile, l):
5568 int main() {{
5669 return 0;
5770 }}
58- """ )
71+ """
72+ )
5973
6074
6175@settings (deadline = 50000 )
@@ -67,7 +81,8 @@ def test_get_by_index(compile, l, i):
6781
6882 expected_v = as_tuple_tree (l [i ])
6983
70- assert compile (f"""
84+ assert compile (
85+ f"""
7186 #include <stdx/tuple.hpp>
7287
7388 using namespace stdx::literals;
@@ -84,7 +99,8 @@ def test_get_by_index(compile, l, i):
8499 int main() {{
85100 return 0;
86101 }}
87- """ )
102+ """
103+ )
88104
89105
90106@settings (deadline = 50000 )
@@ -95,7 +111,8 @@ def test_tuple_cat(compile, ls):
95111 flattened_ls = [i for subl in ls for i in subl ]
96112 expected = as_tuple_tree (flattened_ls )
97113
98- assert compile (f"""
114+ assert compile (
115+ f"""
99116 #include <stdx/tuple.hpp>
100117 #include <stdx/tuple_algorithms.hpp>
101118
@@ -104,7 +121,8 @@ def test_tuple_cat(compile, ls):
104121 int main() {{
105122 return 0;
106123 }}
107- """ )
124+ """
125+ )
108126
109127
110128@settings (deadline = 50000 )
@@ -120,7 +138,8 @@ def test_push(compile, l, elem):
120138
121139 t = as_tuple_tree (l )
122140
123- assert compile (f"""
141+ assert compile (
142+ f"""
124143 #include <stdx/tuple.hpp>
125144 #include <stdx/tuple_algorithms.hpp>
126145
@@ -138,24 +157,29 @@ def test_push(compile, l, elem):
138157 int main() {{
139158 return 0;
140159 }}
141- """ )
160+ """
161+ )
162+
142163
143164from itertools import product
144165
166+
145167def put_in_list (i ):
146168 if isinstance (i , list ):
147169 return i
148170 else :
149171 return [i ]
150172
173+
151174@settings (deadline = 50000 )
152175@given (list_trees (small_ints , max_leaves = 15 ))
153176def test_cartesian_product (compile , ls ):
154177 ls = [put_in_list (i ) for i in ls ]
155178 ts = [as_tuple_tree (l ) for l in ls ]
156179 expected = as_tuple_tree ([list (p ) for p in product (* ls )])
157180
158- assert compile (f"""
181+ assert compile (
182+ f"""
159183 #include <stdx/tuple.hpp>
160184 #include <stdx/tuple_algorithms.hpp>
161185
@@ -164,10 +188,13 @@ def test_cartesian_product(compile, ls):
164188 int main() {{
165189 return 0;
166190 }}
167- """ )
191+ """
192+ )
193+
168194
169195from functools import reduce
170196
197+
171198@settings (deadline = 50000 )
172199@given (st .lists (small_ints ))
173200def test_star_of (compile , l ):
@@ -177,7 +204,8 @@ def test_star_of(compile, l):
177204
178205 t = as_tuple_tree (l )
179206
180- assert compile (f"""
207+ assert compile (
208+ f"""
181209 #include <stdx/tuple.hpp>
182210 #include <stdx/tuple_algorithms.hpp>
183211
@@ -190,4 +218,5 @@ def test_star_of(compile, l):
190218 int main() {{
191219 return 0;
192220 }}
193- """ )
221+ """
222+ )
0 commit comments