content: import numpy as np
  
  from pandas import Index, Timedelta, timedelta_range
  import pandas._testing as tm
  
  
  class TestJoin:
      def test_append_join_nondatetimeindex(self):
          rng = timedelta_range("1 days", periods=10)
          idx = Index(["a", "b", "c", "d"])
  
          result = rng.append(idx)
          assert isinstance(result[0], Timedelta)
  
          # it works
          rng.join(idx, how="outer")
  
      def test_join_self(self, join_type):
          index = timedelta_range("1 day", periods=10)
          joined = index.join(index, how=join_type)
          tm.assert_index_equal(index, joined)
  
      def test_does_not_convert_mixed_integer(self):
          df = tm.makeCustomDataframe(
              10,
              10,
              data_gen_f=lambda *args, **kwargs: np.random.randn(),
              r_idx_type="i",
              c_idx_type="td",
          )
          str(df)
  
          cols = df.columns.join(df.index, how="outer")
          joined = cols.join(df.columns)
          assert cols.dtype == np.dtype("O")
          assert cols.dtype == joined.dtype
          tm.assert_index_equal(cols, joined)
  
      def test_join_preserves_freq(self):
          # GH#32157
          tdi = timedelta_range("1 day", periods=10)
          result = tdi[:5].join(tdi[5:], how="outer")
          assert result.freq == tdi.freq
          tm.assert_index_equal(result, tdi)
  
          result = tdi[:5].join(tdi[6:], how="outer")
          assert result.freq is None
          expected = tdi.delete(5)
          tm.assert_index_equal(result, expected)
  