code: def test_features_enricher_with_index_and_column_same_names(
      requests_mock: Mocker,
  ):
      url = "http://fake_url2"
  
      path_to_mock_features = os.path.join(
          os.path.dirname(os.path.realpath(__file__)),
          "test_data/binary/mock_features.parquet",
      )
  
      mock_default_requests(requests_mock, url)
      search_task_id = mock_initial_search(requests_mock, url)
      validation_search_task_id = mock_validation_search(
          requests_mock, url, search_task_id
      )
      mock_initial_progress(requests_mock, url, search_task_id)
      mock_validation_progress(
          requests_mock, url, validation_search_task_id
      )
      ads_search_task_id = mock_initial_and_validation_summary(
          requests_mock,
          url,
          search_task_id,
          validation_search_task_id,
      )
      mock_get_metadata(requests_mock, url, search_task_id)
      mock_get_task_metadata_v2(
          requests_mock,
          url,
          ads_search_task_id,
          ProviderTaskMetadataV2(
              features=[
                  FeaturesMetadataV2(
                      name="feature",
                      type="NUMERIC",
                      source="ads",
                      hit_rate=99.0,
                      shap_value=10.1,
                  )
              ],
              hit_rate_metrics=HitRateMetrics(
                  etalon_row_count=10000,
                  max_hit_count=9990,
                  hit_rate=0.999,
                  hit_rate_percent=99.9,
              ),
              eval_set_metrics=[
                  ModelEvalSet(
                      eval_set_index=1,
                      hit_rate=1.0,
                      hit_rate_metrics=HitRateMetrics(
                          etalon_row_count=1000,
                          max_hit_count=1000,
                          hit_rate=1.0,
                          hit_rate_percent=100.0,
                      ),
                  ),
                  ModelEvalSet(
                      eval_set_index=2,
                      hit_rate=0.99,
                      hit_rate_metrics=HitRateMetrics(
                          etalon_row_count=1000,
                          max_hit_count=990,
                          hit_rate=0.99,
                          hit_rate_percent=99.0,
                      ),
                  ),
              ],
          ),
      )
      mock_raw_features(
          requests_mock, url, search_task_id, path_to_mock_features
      )
      mock_validation_raw_features(
          requests_mock,
          url,
          validation_search_task_id,
          path_to_mock_features,
      )
  
      path = os.path.join(
          os.path.dirname(os.path.realpath(__file__)),
          "test_data/binary/data.csv",
      )
      df = pd.read_csv(path, sep=",")
      df.drop(columns="SystemRecordId_473310000", inplace=True)
      df = df.drop_duplicates(subset="rep_date")
      df = df.set_index("rep_date")
      df["rep_date"] = df.index
      train_features = df.drop(columns="target")
      train_target = df["target"]
  
      enricher = FeaturesEnricher(
          search_keys={
              "phone_num": SearchKey.PHONE,
              "rep_date": SearchKey.DATE,
          },
          endpoint=url,
          api_key="fake_api_key",
          date_format="%Y-%m-%d",
          cv=CVType.time_series,
          logs_enabled=False,
      )
  
      min_rows_count = Dataset.MIN_ROWS_COUNT
      Dataset.MIN_ROWS_COUNT = 5
      try:
          enriched_train_features = enricher.fit_transform(
              train_features,
              train_target,
              calculate_metrics=False,
              keep_input=True,
          )
          assert enriched_train_features.shape == (6, 3)
  
          enriched_train_features = enricher.fit_transform(
              train_features,
              train_target,
              calculate_metrics=False,
              keep_input=False,
          )
          assert enriched_train_features.shape == (6, 1)
      finally:
          Dataset.MIN_ROWS_COUNT = min_rows_count
  
imports: import os
  from datetime import date
  from typing import List, Optional
  import numpy
  import pandas
  import pytest
  from pandas.testing import assert_frame_equal
  from requests_mock.mocker import Mocker
  from upgini import FeaturesEnricher, SearchKey
  from upgini.dataset import Dataset
  from upgini.errors import ValidationError
  from upgini.http import _RestClient
  from upgini.metadata import CVType, FeaturesMetadataV2, HitRateMetrics, ModelEvalSet, ModelTaskType, ProviderTaskMetadataV2, RuntimeParameters
  from upgini.resource_bundle import bundle
  from upgini.search_task import SearchTask
  from upgini.utils.datetime_utils import DateTimeSearchKeyConverter
  from .utils import mock_default_requests, mock_get_metadata, mock_get_task_metadata_v2, mock_initial_and_validation_summary, mock_initial_progress, mock_initial_search, mock_initial_summary, mock_raw_features, mock_validation_progress, mock_validation_raw_features, mock_validation_search, mock_validation_summary
label_desc: Use image node_id 4 for calling a global function with example usage: test_features_enricher_with_index_and_column_same_names(requests_mock) without return types