code: def test_time_cutoff_from_period():
      df = pd.DataFrame(
          {"date": pd.date_range("2020-01-01", periods=24, freq="H")}
      )
      converter = DateTimeSearchKeyConverter("date")
      dataset = converter.convert(df)
      for i in range(24):
          assert dataset.loc[i, "date"] == 1577836800000
  
      assert "datetime_time_sin_1" in dataset.columns
      for i in range(24):
          assert dataset.loc[i, "datetime_time_sin_1"] == pytest.approx(
              np.sin(i * 2 * np.pi / 24), abs=0.000001
          )
  
      assert "datetime_time_cos_1" in dataset.columns
      for i in range(24):
          assert dataset.loc[i, "datetime_time_cos_1"] == pytest.approx(
              np.cos(i * 2 * np.pi / 24), abs=0.000001
          )
  
      assert "datetime_time_sin_2" in dataset.columns
      for i in range(24):
          assert dataset.loc[i, "datetime_time_sin_2"] == pytest.approx(
              np.sin(i * 2 * np.pi / 12), abs=0.000001
          )
  
      assert "datetime_time_cos_2" in dataset.columns
      for i in range(24):
          assert dataset.loc[i, "datetime_time_cos_2"] == pytest.approx(
              np.cos(i * 2 * np.pi / 12), abs=0.000001
          )
  
      assert "datetime_time_sin_24" in dataset.columns
      for i in range(24):
          assert dataset.loc[i, "datetime_time_sin_24"] == 0.0
  
      assert "datetime_time_cos_24" in dataset.columns
      for i in range(24):
          assert dataset.loc[i, "datetime_time_cos_24"] == 1.0
  
      assert "datetime_time_sin_48" in dataset.columns
      for i in range(24):
          assert dataset.loc[i, "datetime_time_sin_48"] == 0.0
  
      assert "datetime_time_cos_48" in dataset.columns
      for i in range(24):
          assert dataset.loc[i, "datetime_time_cos_48"] == 1.0
  
imports: import ipaddress
  import random
  from datetime import date, datetime
  import numpy
  import pandas
  import pytest
  from pandas.testing import assert_frame_equal
  from upgini import Dataset, FileColumnMeaningType
  from upgini.errors import ValidationError
  from upgini.metadata import ModelTaskType, SearchKey
  from upgini.resource_bundle import bundle
  from upgini.utils.datetime_utils import DateTimeSearchKeyConverter
  from upgini.utils.email_utils import EmailSearchKeyConverter
  from upgini.utils.features_validator import FeaturesValidator
  from upgini.utils.warning_counter import WarningCounter
label_desc: Use image node_id 24 for calling a global function with example usage: test_time_cutoff_from_period() without return types