code: def test_append_with_timedelta(setup_path):
      # GH 3577
      # append timedelta
  
      ts = Timestamp("20130101").as_unit("ns")
      df = DataFrame(
          {
              "A": ts,
              "B": [
                  ts + timedelta(days=i, seconds=10) for i in range(10)
              ],
          }
      )
      df["C"] = df["A"] - df["B"]
      df.loc[3:5, "C"] = np.nan
  
      with ensure_clean_store(setup_path) as store:
          # table
          _maybe_remove(store, "df")
          store.append("df", df, data_columns=True)
          result = store.select("df")
          tm.assert_frame_equal(result, df)
  
          result = store.select("df", where="C<100000")
          tm.assert_frame_equal(result, df)
  
          result = store.select("df", where="C<pd.Timedelta('-3D')")
          tm.assert_frame_equal(result, df.iloc[3:])
  
          result = store.select("df", "C<'-3D'")
          tm.assert_frame_equal(result, df.iloc[3:])
  
          # a bit hacky here as we don't really deal with the NaT properly
  
          result = store.select("df", "C<'-500000s'")
          result = result.dropna(subset=["C"])
          tm.assert_frame_equal(result, df.iloc[6:])
  
          result = store.select("df", "C<'-3.5D'")
          result = result.iloc[1:]
          tm.assert_frame_equal(result, df.iloc[4:])
  
          # fixed
          _maybe_remove(store, "df2")
          store.put("df2", df)
          result = store.select("df2")
          tm.assert_frame_equal(result, df)
  
imports: import datetime
  from datetime import timedelta
  import re
  import numpy
  import pytest
  from pandas._libs.tslibs import Timestamp
  import pandas
  from pandas import DataFrame, Index, Series, _testing, concat, date_range, read_hdf
  from pandas.tests.io.pytables.common import _maybe_remove, ensure_clean_store
label_desc: Use image node_id 15 for calling a global function with example usage: test_append_with_timedelta(setup_path) without return types