code: def test_concat_with_all_na():
      # https://github.com/pandas-dev/pandas/pull/47762
      # ensure that attribute of the column array is preserved (when it gets
      # preserved in reindexing the array) during merge/concat
      arr = FloatAttrArray(
          np.array([np.nan, np.nan], dtype="float64"), attr="test"
      )
  
      df1 = pd.DataFrame({"col": arr, "key": [0, 1]})
      df2 = pd.DataFrame({"key": [0, 1], "col2": [1, 2]})
      result = pd.merge(df1, df2, on="key")
      expected = pd.DataFrame(
          {"col": arr, "key": [0, 1], "col2": [1, 2]}
      )
      tm.assert_frame_equal(result, expected)
      assert result["col"].array.attr == "test"
  
      df1 = pd.DataFrame({"col": arr, "key": [0, 1]})
      df2 = pd.DataFrame({"key": [0, 2], "col2": [1, 2]})
      result = pd.merge(df1, df2, on="key")
      expected = pd.DataFrame(
          {"col": arr.take([0]), "key": [0], "col2": [1]}
      )
      tm.assert_frame_equal(result, expected)
      assert result["col"].array.attr == "test"
  
      result = pd.concat(
          [df1.set_index("key"), df2.set_index("key")], axis=1
      )
      expected = pd.DataFrame(
          {
              "col": arr.take([0, 1, -1]),
              "col2": [1, np.nan, 2],
              "key": [0, 1, 2],
          }
      ).set_index("key")
      tm.assert_frame_equal(result, expected)
      assert result["col"].array.attr == "test"
  
imports: import numpy
  import pandas
  import pandas._testing
  from pandas.tests.extension.array_with_attr import FloatAttrArray
label_desc: Use image node_id 1 for calling a global function with example usage: test_concat_with_all_na() without return types