code: def test_fillna_on_column_view(self, using_copy_on_write):
      # GH#46149 avoid unnecessary copies
      arr = np.full((40, 50), np.nan)
      df = DataFrame(arr, copy=False)
  
      if using_copy_on_write:
          with tm.raises_chained_assignment_error():
              df[0].fillna(-1, inplace=True)
          assert np.isnan(arr[:, 0]).all()
      else:
          with tm.assert_produces_warning(
              FutureWarning, match="inplace method"
          ):
              df[0].fillna(-1, inplace=True)
          assert (arr[:, 0] == -1).all()
  
      # i.e. we didn't create a new 49-column block
      assert len(df._mgr.arrays) == 1
      assert np.shares_memory(df.values, arr)
  
imports: import numpy
  import pytest
  from pandas._config import using_pyarrow_string_dtype
  from pandas import Categorical, DataFrame, DatetimeIndex, NaT, PeriodIndex, Series, TimedeltaIndex, Timestamp, date_range, to_datetime
  import pandas._testing
  from pandas.tests.frame.common import _check_mixed_float
label_desc: Use image node_id 2 for calling the TestFillNA obj's underlying member method code with example usage: obj.test_fillna_on_column_view(using_copy_on_write) without return types