code: def test_combine_first(self):
      values = np.arange(20, dtype=np.float64)
      series = Series(values, index=np.arange(20, dtype=np.int64))
  
      series_copy = series * 2
      series_copy[::2] = np.nan
  
      # nothing used from the input
      combined = series.combine_first(series_copy)
  
      tm.assert_series_equal(combined, series)
  
      # Holes filled from input
      combined = series_copy.combine_first(series)
      assert np.isfinite(combined).all()
  
      tm.assert_series_equal(combined[::2], series[::2])
      tm.assert_series_equal(combined[1::2], series_copy[1::2])
  
      # mixed types
      index = pd.Index([str(i) for i in range(20)])
      floats = Series(
          np.random.default_rng(2).standard_normal(20), index=index
      )
      strings = Series(
          [str(i) for i in range(10)], index=index[::2], dtype=object
      )
  
      combined = strings.combine_first(floats)
  
      tm.assert_series_equal(strings, combined.loc[index[::2]])
      tm.assert_series_equal(
          floats[1::2].astype(object), combined.loc[index[1::2]]
      )
  
      # corner case
      ser = Series([1.0, 2, 3], index=[0, 1, 2])
      empty = Series([], index=[], dtype=object)
      msg = "The behavior of array concatenation with empty entries is deprecated"
      with tm.assert_produces_warning(FutureWarning, match=msg):
          result = ser.combine_first(empty)
      ser.index = ser.index.astype("O")
      tm.assert_series_equal(ser, result)
  
file_path: pandas/pandas/tests/series/methods/test_combine_first.py
imports: from datetime import datetime
  import numpy
  import pandas
  from pandas import Period, Series, date_range, period_range, to_datetime
  import pandas._testing
label_desc: Use image node_id 3 for calling the TestCombineFirst obj's underlying member method code with example usage: obj.test_combine_first() without return types