code: def test_add_frame(dtype):
      arr = pd.array(["a", "b", np.nan, np.nan], dtype=dtype)
      df = pd.DataFrame([["x", np.nan, "y", np.nan]])
  
      assert arr.__add__(df) is NotImplemented
  
      result = arr + df
      expected = pd.DataFrame([["ax", np.nan, np.nan, np.nan]]).astype(
          dtype
      )
      tm.assert_frame_equal(result, expected)
  
      result = df + arr
      expected = pd.DataFrame([["xa", np.nan, np.nan, np.nan]]).astype(
          dtype
      )
      tm.assert_frame_equal(result, expected)
  
imports: import operator
  import numpy
  import pytest
  from pandas.compat.pyarrow import pa_version_under12p0
  from pandas.core.dtypes.common import is_dtype_equal
  import pandas
  import pandas._testing
  from pandas.core.arrays.string_arrow import ArrowStringArray, ArrowStringArrayNumpySemantics
label_desc: Use image node_id 15 for calling a global function with example usage: test_add_frame(dtype) without return types