@@ -22,7 +22,7 @@ def plot_func(ax, x, y, ls="x", label=None, w="xyz"):
2222
2323@_preprocess_data (replace_names = ["x" , "y" ], label_namer = "y" ,
2424 positional_parameter_names = ["x" , "y" , "ls" , "label" , "w" ])
25- def plot_func_varags (ax , * args , ** kwargs ):
25+ def plot_func_varargs (ax , * args , ** kwargs ):
2626 all_args = [None , None , "x" , None , "xyz" ]
2727 for i , v in enumerate (args ):
2828 all_args [i ] = v
@@ -34,7 +34,8 @@ def plot_func_varags(ax, *args, **kwargs):
3434 list (x ), list (y ), ls , w , label ))
3535
3636
37- all_funcs = [plot_func , plot_func_varags ]
37+ all_funcs = [plot_func , plot_func_varargs ]
38+ all_func_ids = ['plot_func' , 'plot_func_varargs' ]
3839
3940
4041def test_compiletime_checks ():
@@ -106,78 +107,78 @@ def func(*args, **kwargs):
106107 func (None , x = "a" , y = "b" )
107108
108109
109- def test_function_call_without_data ():
110+ @pytest .mark .parametrize ('func' , all_funcs , ids = all_func_ids )
111+ def test_function_call_without_data (func ):
110112 """test without data -> no replacements"""
111- for func in all_funcs :
112- assert ( func ( None , "x" , "y" ) ==
113- "x: ['x'] , y: ['y'], ls: x, w: xyz, label: None" )
114- assert ( func ( None , x = "x" , y = "y" ) ==
115- "x: ['x'], y: ['y'], ls: x, w: xyz, label: None" )
116- assert ( func ( None , "x" , "y" , label = "" ) ==
117- "x: ['x'], y: ['y'], ls: x, w: xyz, label: " )
118- assert ( func ( None , "x" , "y" , label = " text" ) ==
119- "x: ['x'] , y: ['y'], ls: x, w: xyz, label: text" )
120- assert ( func ( None , x = "x" , y = "y" , label = "" ) ==
121- "x: ['x'] , y: ['y'], ls: x, w: xyz, label: " )
122- assert ( func ( None , x = "x" , y = "y" , label = " text" ) ==
123- "x: ['x'], y: ['y'], ls: x, w: xyz, label: text" )
124-
125-
126- def test_function_call_with_dict_data ():
113+ assert ( func ( None , "x" , "y" ) ==
114+ "x: ['x'], y: ['y'], ls: x, w: xyz, label: None" )
115+ assert ( func ( None , x = "x" , y = "y" ) ==
116+ "x: ['x'] , y: ['y'], ls: x, w: xyz, label: None" )
117+ assert ( func ( None , "x" , "y" , label = "" ) ==
118+ "x: ['x'], y: ['y'], ls: x, w: xyz, label: " )
119+ assert ( func ( None , "x" , "y" , label = "text" ) ==
120+ "x: ['x'], y: ['y'], ls: x, w: xyz, label: text" )
121+ assert ( func ( None , x = "x" , y = "y" , label = "" ) ==
122+ "x: ['x'] , y: ['y'], ls: x, w: xyz, label: " )
123+ assert ( func ( None , x = "x" , y = "y" , label = "text" ) ==
124+ "x: ['x'] , y: ['y'], ls: x, w: xyz, label: text" )
125+
126+
127+ @ pytest . mark . parametrize ( 'func' , all_funcs , ids = all_func_ids )
128+ def test_function_call_with_dict_data (func ):
127129 """Test with dict data -> label comes from the value of 'x' parameter """
128130 data = {"a" : [1 , 2 ], "b" : [8 , 9 ], "w" : "NOT" }
129- for func in all_funcs :
130- assert ( func ( None , "a" , "b" , data = data ) ==
131- "x: [1, 2], y: [8, 9], ls: x, w: xyz, label: b" )
132- assert ( func ( None , x = "a" , y = "b" , data = data ) ==
133- "x: [1, 2], y: [8, 9], ls: x, w: xyz, label: b" )
134- assert ( func ( None , "a" , "b" , label = "" , data = data ) ==
135- "x: [1, 2], y: [8, 9], ls: x, w: xyz, label: " )
136- assert ( func ( None , "a" , "b" , label = " text", data = data ) ==
137- "x: [1, 2], y: [8, 9], ls: x, w: xyz, label: text" )
138- assert ( func ( None , x = "a" , y = "b" , label = "" , data = data ) ==
139- "x: [1, 2], y: [8, 9], ls: x, w: xyz, label: " )
140- assert ( func ( None , x = "a" , y = "b" , label = " text", data = data ) ==
141- "x: [1, 2], y: [8, 9], ls: x, w: xyz, label: text" )
142-
143-
144- def test_function_call_with_dict_data_not_in_data ():
131+ assert ( func ( None , "a" , "b" , data = data ) ==
132+ "x: [1, 2], y: [8, 9], ls: x, w: xyz, label: b" )
133+ assert ( func ( None , x = "a" , y = "b" , data = data ) ==
134+ "x: [1, 2], y: [8, 9], ls: x, w: xyz, label: b" )
135+ assert ( func ( None , "a" , "b" , label = "" , data = data ) ==
136+ "x: [1, 2], y: [8, 9], ls: x, w: xyz, label: " )
137+ assert ( func ( None , "a" , "b" , label = "text" , data = data ) ==
138+ "x: [1, 2], y: [8, 9], ls: x, w: xyz, label: text")
139+ assert ( func ( None , x = "a" , y = "b" , label = "" , data = data ) ==
140+ "x: [1, 2], y: [8, 9], ls: x, w: xyz, label: " )
141+ assert ( func ( None , x = "a" , y = "b" , label = "text" , data = data ) ==
142+ "x: [1, 2], y: [8, 9], ls: x, w: xyz, label: text")
143+
144+
145+ @ pytest . mark . parametrize ( 'func' , all_funcs , ids = all_func_ids )
146+ def test_function_call_with_dict_data_not_in_data (func ):
145147 "test for the case that one var is not in data -> half replaces, half kept"
146148 data = {"a" : [1 , 2 ], "w" : "NOT" }
147- for func in all_funcs :
148- assert ( func ( None , "a" , "b" , data = data ) ==
149- "x: [1, 2], y: ['b'], ls: x, w: xyz, label: b" )
150- assert ( func ( None , x = "a" , y = "b" , data = data ) ==
151- "x: [1, 2], y: ['b'], ls: x, w: xyz, label: b" )
152- assert ( func ( None , "a" , "b" , label = "" , data = data ) ==
153- "x: [1, 2], y: ['b'], ls: x, w: xyz, label: " )
154- assert ( func ( None , "a" , "b" , label = " text", data = data ) ==
155- "x: [1, 2], y: ['b'], ls: x, w: xyz, label: text" )
156- assert ( func ( None , x = "a" , y = "b" , label = "" , data = data ) ==
157- "x: [1, 2], y: ['b'], ls: x, w: xyz, label: " )
158- assert ( func ( None , x = "a" , y = "b" , label = " text", data = data ) ==
159- "x: [1, 2], y: ['b'], ls: x, w: xyz, label: text" )
160-
161-
162- def test_function_call_with_pandas_data ():
149+ assert ( func ( None , "a" , "b" , data = data ) ==
150+ "x: [1, 2], y: ['b'], ls: x, w: xyz, label: b" )
151+ assert ( func ( None , x = "a" , y = "b" , data = data ) ==
152+ "x: [1, 2], y: ['b'], ls: x, w: xyz, label: b" )
153+ assert ( func ( None , "a" , "b" , label = "" , data = data ) ==
154+ "x: [1, 2], y: ['b'], ls: x, w: xyz, label: " )
155+ assert ( func ( None , "a" , "b" , label = "text" , data = data ) ==
156+ "x: [1, 2], y: ['b'], ls: x, w: xyz, label: text")
157+ assert ( func ( None , x = "a" , y = "b" , label = "" , data = data ) ==
158+ "x: [1, 2], y: ['b'], ls: x, w: xyz, label: " )
159+ assert ( func ( None , x = "a" , y = "b" , label = "text" , data = data ) ==
160+ "x: [1, 2], y: ['b'], ls: x, w: xyz, label: text")
161+
162+
163+ @ pytest . mark . parametrize ( 'func' , all_funcs , ids = all_func_ids )
164+ def test_function_call_with_pandas_data (func ):
163165 """test with pandas dataframe -> label comes from data["col"].name """
164166 pd = pytest .importorskip ('pandas' )
165167
166168 data = pd .DataFrame ({"a" : [1 , 2 ], "b" : [8 , 9 ], "w" : ["NOT" , "NOT" ]})
167169
168- for func in all_funcs :
169- assert (func (None , "a" , "b" , data = data ) ==
170- "x: [1, 2], y: [8, 9], ls: x, w: xyz, label: b" )
171- assert (func (None , x = "a" , y = "b" , data = data ) ==
172- "x: [1, 2], y: [8, 9], ls: x, w: xyz, label: b" )
173- assert (func (None , "a" , "b" , label = "" , data = data ) ==
174- "x: [1, 2], y: [8, 9], ls: x, w: xyz, label: " )
175- assert (func (None , "a" , "b" , label = "text" , data = data ) ==
176- "x: [1, 2], y: [8, 9], ls: x, w: xyz, label: text" )
177- assert (func (None , x = "a" , y = "b" , label = "" , data = data ) ==
178- "x: [1, 2], y: [8, 9], ls: x, w: xyz, label: " )
179- assert (func (None , x = "a" , y = "b" , label = "text" , data = data ) ==
180- "x: [1, 2], y: [8, 9], ls: x, w: xyz, label: text" )
170+ assert (func (None , "a" , "b" , data = data ) ==
171+ "x: [1, 2], y: [8, 9], ls: x, w: xyz, label: b" )
172+ assert (func (None , x = "a" , y = "b" , data = data ) ==
173+ "x: [1, 2], y: [8, 9], ls: x, w: xyz, label: b" )
174+ assert (func (None , "a" , "b" , label = "" , data = data ) ==
175+ "x: [1, 2], y: [8, 9], ls: x, w: xyz, label: " )
176+ assert (func (None , "a" , "b" , label = "text" , data = data ) ==
177+ "x: [1, 2], y: [8, 9], ls: x, w: xyz, label: text" )
178+ assert (func (None , x = "a" , y = "b" , label = "" , data = data ) ==
179+ "x: [1, 2], y: [8, 9], ls: x, w: xyz, label: " )
180+ assert (func (None , x = "a" , y = "b" , label = "text" , data = data ) ==
181+ "x: [1, 2], y: [8, 9], ls: x, w: xyz, label: text" )
181182
182183
183184def test_function_call_replace_all ():
0 commit comments