@@ -433,15 +433,30 @@ def test_nullable_integers_pyarrow() -> None:
433
433
tm .assert_frame_equal (result , expected )
434
434
435
435
436
- def test_nullable_integers_w_missing_values () -> None :
436
+ @pytest .mark .parametrize (
437
+ ("data" , "dtype" , "expected_dtype" ),
438
+ [
439
+ ([1 , 2 , None ], "Int64" , "int64" ),
440
+ (
441
+ [1 , 2 , None ],
442
+ "UInt64" ,
443
+ "uint64" ,
444
+ ),
445
+ ([1.0 , 2.25 , None ], "Float32" , "float32" ),
446
+ ],
447
+ )
448
+ def test_pandas_nullable_w_missing_values (
449
+ data : list , dtype : str , expected_dtype : str
450
+ ) -> None :
437
451
# https://github.com/pandas-dev/pandas/issues/57643
438
452
pytest .importorskip ("pyarrow" , "11.0.0" )
439
453
import pyarrow .interchange as pai
440
454
441
- df = pd .DataFrame ({"a" : [ 1 , 2 , None ] }, dtype = "Int64" )
455
+ df = pd .DataFrame ({"a" : data }, dtype = dtype )
442
456
result = pai .from_dataframe (df .__dataframe__ ())["a" ]
443
- assert result [0 ].as_py () == 1
444
- assert result [1 ].as_py () == 2
457
+ assert result .type == expected_dtype
458
+ assert result [0 ].as_py () == data [0 ]
459
+ assert result [1 ].as_py () == data [1 ]
445
460
assert result [2 ].as_py () is None
446
461
447
462
0 commit comments