@@ -433,15 +433,30 @@ def test_nullable_integers_pyarrow() -> None:
433433 tm .assert_frame_equal (result , expected )
434434
435435
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 :
437451 # https://github.com/pandas-dev/pandas/issues/57643
438452 pytest .importorskip ("pyarrow" , "11.0.0" )
439453 import pyarrow .interchange as pai
440454
441- df = pd .DataFrame ({"a" : [ 1 , 2 , None ] }, dtype = "Int64" )
455+ df = pd .DataFrame ({"a" : data }, dtype = dtype )
442456 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 ]
445460 assert result [2 ].as_py () is None
446461
447462
0 commit comments