code: def test_extract_features_without_dropping_original_variables(
      df_datetime, df_datetime_transformed
  ):
      X = DatetimeFeatures(
          variables=["datetime_range", "date_obj2"],
          features_to_extract=["week", "quarter"],
          drop_original=False,
      ).fit_transform(df_datetime)
  
      pd.testing.assert_frame_equal(
          X,
          pd.concat(
              [
                  df_datetime_transformed[column]
                  for column in vars_non_dt
              ]
              + [df_datetime[var] for var in vars_dt]
              + [
                  df_datetime_transformed[feat]
                  for feat in [
                      var + "_" + feat
                      for var in ["datetime_range", "date_obj2"]
                      for feat in ["week", "quarter"]
                  ]
              ],
              axis=1,
          ),
      )
  
imports: import numpy
  import pandas
  import pytest
  from sklearn.exceptions import NotFittedError
  from sklearn.pipeline import Pipeline
  from feature_engine.datetime import DatetimeFeatures
  from feature_engine.datetime._datetime_constants import FEATURES_DEFAULT, FEATURES_SUFFIXES, FEATURES_SUPPORTED
label_desc: Use image node_id 20 for calling a global function with example usage: test_extract_features_without_dropping_original_variables(df_datetime, df_datetime_transformed) without return types