@@ -2410,58 +2410,44 @@ def test_impl(S):
24102410 S = pd .Series (['aa' , 'bb' , np .nan ])
24112411 self .assertEqual (hpat_func (S ), test_impl (S ))
24122412
2413+ def _mean_data_samples (self ):
2414+ yield [6 , 6 , 2 , 1 , 3 , 3 , 2 , 1 , 2 ]
2415+ yield [1.1 , 0.3 , 2.1 , 1 , 3 , 0.3 , 2.1 , 1.1 , 2.2 ]
2416+ yield [6 , 6.1 , 2.2 , 1 , 3 , 3 , 2.2 , 1 , 2 ]
2417+ yield [6 , 6 , np .nan , 2 , np .nan , 1 , 3 , 3 , np .inf , 2 , 1 , 2 , np .inf ]
2418+ yield [1.1 , 0.3 , np .nan , 1.0 , np .inf , 0.3 , 2.1 , np .nan , 2.2 , np .inf ]
2419+ yield [1.1 , 0.3 , np .nan , 1 , np .inf , 0 , 1.1 , np .nan , 2.2 , np .inf , 2 , 2 ]
2420+ yield [np .nan , np .nan , np .nan ]
2421+ yield [np .nan , np .nan , np .inf ]
2422+
2423+ def _check_mean (self , pyfunc , * args ):
2424+ cfunc = self .jit (pyfunc )
2425+
2426+ actual = cfunc (* args )
2427+ expected = pyfunc (* args )
2428+ if np .isnan (actual ) or np .isnan (expected ):
2429+ self .assertEqual (np .isnan (actual ), np .isnan (expected ))
2430+ else :
2431+ self .assertEqual (actual , expected )
2432+
24132433 def test_series_mean (self ):
24142434 def test_impl (S ):
24152435 return S .mean ()
2416- hpat_func = self .jit (test_impl )
2417-
2418- data_samples = [
2419- [6 , 6 , 2 , 1 , 3 , 3 , 2 , 1 , 2 ],
2420- [1.1 , 0.3 , 2.1 , 1 , 3 , 0.3 , 2.1 , 1.1 , 2.2 ],
2421- [6 , 6.1 , 2.2 , 1 , 3 , 3 , 2.2 , 1 , 2 ],
2422- [6 , 6 , np .nan , 2 , np .nan , 1 , 3 , 3 , np .inf , 2 , 1 , 2 , np .inf ],
2423- [1.1 , 0.3 , np .nan , 1.0 , np .inf , 0.3 , 2.1 , np .nan , 2.2 , np .inf ],
2424- [1.1 , 0.3 , np .nan , 1 , np .inf , 0 , 1.1 , np .nan , 2.2 , np .inf , 2 , 2 ],
2425- [np .nan , np .nan , np .nan ],
2426- [np .nan , np .nan , np .inf ],
2427- ]
24282436
2429- for data in data_samples :
2437+ for data in self . _mean_data_samples () :
24302438 with self .subTest (data = data ):
24312439 S = pd .Series (data )
2432- actual = hpat_func (S )
2433- expected = test_impl (S )
2434- if np .isnan (actual ) or np .isnan (expected ):
2435- self .assertEqual (np .isnan (actual ), np .isnan (expected ))
2436- else :
2437- self .assertEqual (actual , expected )
2440+ self ._check_mean (test_impl , S )
24382441
24392442 @skip_sdc_jit ("Series.mean() any parameters unsupported" )
24402443 def test_series_mean_skipna (self ):
24412444 def test_impl (S , skipna ):
24422445 return S .mean (skipna = skipna )
2443- hpat_func = self .jit (test_impl )
2444-
2445- data_samples = [
2446- [6 , 6 , 2 , 1 , 3 , 3 , 2 , 1 , 2 ],
2447- [1.1 , 0.3 , 2.1 , 1 , 3 , 0.3 , 2.1 , 1.1 , 2.2 ],
2448- [6 , 6.1 , 2.2 , 1 , 3 , 3 , 2.2 , 1 , 2 ],
2449- [6 , 6 , np .nan , 2 , np .nan , 1 , 3 , 3 , np .inf , 2 , 1 , 2 , np .inf ],
2450- [1.1 , 0.3 , np .nan , 1.0 , np .inf , 0.3 , 2.1 , np .nan , 2.2 , np .inf ],
2451- [1.1 , 0.3 , np .nan , 1 , np .inf , 0 , 1.1 , np .nan , 2.2 , np .inf , 2 , 2 ],
2452- [np .nan , np .nan , np .nan ],
2453- [np .nan , np .nan , np .inf ],
2454- ]
24552446
24562447 for skipna in [True , False ]:
2457- for data in data_samples :
2448+ for data in self . _mean_data_samples () :
24582449 S = pd .Series (data )
2459- actual = hpat_func (S , skipna )
2460- expected = test_impl (S , skipna )
2461- if np .isnan (actual ) or np .isnan (expected ):
2462- self .assertAlmostEqual (np .isnan (actual ), np .isnan (expected ))
2463- else :
2464- self .assertAlmostEqual (actual , expected )
2450+ self ._check_mean (test_impl , S , skipna )
24652451
24662452 def test_series_var1 (self ):
24672453 def test_impl (S ):
0 commit comments