@@ -332,6 +332,36 @@ def test_types_sum() -> None:
332
332
s .sum (numeric_only = False )
333
333
s .sum (min_count = 4 )
334
334
335
+ # Note:
336
+ # 1. Return types of `series.groupby(...).sum(...)` are NOT tested
337
+ # (waiting for stubs).
338
+ # 2. Runtime return types of `series.sum(min_count=...)` are NOT
339
+ # tested (because of potential `nan`s).
340
+
341
+ s0 = assert_type (pd .Series ([1 , 2 , 3 , np .nan ]), "pd.Series" )
342
+ check (assert_type (s0 .sum (), "Any" ), np .float64 )
343
+ check (assert_type (s0 .sum (skipna = False ), "Any" ), np .float64 )
344
+ check (assert_type (s0 .sum (numeric_only = False ), "Any" ), np .float64 )
345
+ assert_type (s0 .sum (min_count = 4 ), "Any" )
346
+
347
+ s1 = assert_type (pd .Series ([False , True ], dtype = bool ), "pd.Series[bool]" )
348
+ check (assert_type (s1 .sum (), "int" ), np .int64 )
349
+ check (assert_type (s1 .sum (skipna = False ), "int" ), np .int64 )
350
+ check (assert_type (s1 .sum (numeric_only = False ), "int" ), np .int64 )
351
+ assert_type (s1 .sum (min_count = 4 ), "int" )
352
+
353
+ s2 = assert_type (pd .Series ([0 , 1 ], dtype = int ), "pd.Series[int]" )
354
+ check (assert_type (s2 .sum (), "int" ), np .int64 )
355
+ check (assert_type (s2 .sum (skipna = False ), "int" ), np .int64 )
356
+ check (assert_type (s2 .sum (numeric_only = False ), "int" ), np .int64 )
357
+ assert_type (s2 .sum (min_count = 4 ), "int" )
358
+
359
+ s3 = assert_type (pd .Series ([1 , 2 , 3 , np .nan ], dtype = float ), "pd.Series[float]" )
360
+ check (assert_type (s3 .sum (), "float" ), np .float64 )
361
+ check (assert_type (s3 .sum (skipna = False ), "float" ), np .float64 )
362
+ check (assert_type (s3 .sum (numeric_only = False ), "float" ), np .float64 )
363
+ assert_type (s3 .sum (min_count = 4 ), "float" )
364
+
335
365
336
366
def test_types_cumsum () -> None :
337
367
s = pd .Series ([1 , 2 , 3 , np .nan ])
0 commit comments