code: def test_copy_features_does_not_copy_entityset(es):
      agg = Feature(
          es["log"].ww["value"],
          parent_dataframe_name="sessions",
          primitive=Sum,
      )
      agg_where = Feature(
          es["log"].ww["value"],
          parent_dataframe_name="sessions",
          where=IdentityFeature(es["log"].ww["value"]) == 2,
          primitive=Sum,
      )
      agg_use_previous = Feature(
          es["log"].ww["value"],
          parent_dataframe_name="sessions",
          use_previous="4 days",
          primitive=Sum,
      )
      agg_use_previous_where = Feature(
          es["log"].ww["value"],
          parent_dataframe_name="sessions",
          where=IdentityFeature(es["log"].ww["value"]) == 2,
          use_previous="4 days",
          primitive=Sum,
      )
      features = [
          agg,
          agg_where,
          agg_use_previous,
          agg_use_previous_where,
      ]
      in_memory_size = asizeof(locals())
      copied = [f.copy() for f in features]
      new_in_memory_size = asizeof(locals())
      assert new_in_memory_size < 2 * in_memory_size
  
imports: import os.path
  import re
  import pytest
  from pympler.asizeof import asizeof
  from woodwork.column_schema import ColumnSchema
  from woodwork.logical_types import Datetime, Integer
  from featuretools import Feature, config, feature_base
  from featuretools.feature_base import IdentityFeature
  from featuretools.primitives import Count, Diff, Last, Mode, Negate, NMostCommon, NumUnique, Sum, TransformPrimitive
  from featuretools.synthesis.deep_feature_synthesis import can_stack_primitive_on_inputs
  from featuretools.tests.testing_utils import check_rename
label_desc: Use image node_id 1 for calling a global function with example usage: test_copy_features_does_not_copy_entityset(es) without return types