code: def test_add(dtype):
      a = pd.Series(["a", "b", "c", None, None], dtype=dtype)
      b = pd.Series(["x", "y", None, "z", None], dtype=dtype)
  
      result = a + b
      expected = pd.Series(["ax", "by", None, None, None], dtype=dtype)
      tm.assert_series_equal(result, expected)
  
      result = a.add(b)
      tm.assert_series_equal(result, expected)
  
      result = a.radd(b)
      expected = pd.Series(["xa", "yb", None, None, None], dtype=dtype)
      tm.assert_series_equal(result, expected)
  
      result = a.add(b, fill_value="-")
      expected = pd.Series(["ax", "by", "c-", "-z", None], dtype=dtype)
      tm.assert_series_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 10 for calling a global function with example usage: test_add(dtype) without return types