code: def test_build_df_from_nullable_pandas_dtype(pd_dtype, expect_dtype):
      if pd_dtype == pd.StringDtype():
          data = ["a", pd.NA, "c", pd.NA, "e"]
      elif pd_dtype == pd.BooleanDtype():
          data = [True, pd.NA, False, pd.NA, True]
      else:
          data = [1, pd.NA, 3, pd.NA, 5]
  
      pd_data = pd.DataFrame.from_dict({"a": data}, dtype=pd_dtype)
      gd_data = cudf.DataFrame.from_pandas(pd_data)
  
      assert gd_data["a"].dtype == expect_dtype
  
      # check mask
      expect_mask = [x is not pd.NA for x in pd_data["a"]]
      got_mask = mask_to_bools(
          gd_data["a"]._column.base_mask, 0, len(gd_data)
      ).values_host
  
      np.testing.assert_array_equal(expect_mask, got_mask)
  
imports: import cupy
  import numpy
  import pandas
  import pyarrow
  import pytest
  import cudf
  from cudf._lib.transform import mask_to_bools
  from cudf.core.column.column import as_column
  from cudf.testing._utils import assert_eq, assert_exceptions_equal
  from cudf.utils import dtypes
label_desc: Use image node_id 21 for calling a global function with example usage: test_build_df_from_nullable_pandas_dtype(pd_dtype, expect_dtype) without return types