code: def test_generic_description(es):
      class NoName(TransformPrimitive):
          input_types = [ColumnSchema(semantic_tags={"category"})]
          output_type = ColumnSchema(semantic_tags={"category"})
  
          def generate_name(self, base_feature_names):
              return "%s(%s%s)" % (
                  "NO_NAME",
                  ", ".join(base_feature_names),
                  self.get_args_string(),
              )
  
      class CustomAgg(AggregationPrimitive):
          name = "custom_aggregation"
          input_types = [ColumnSchema(semantic_tags={"category"})]
          output_type = ColumnSchema(semantic_tags={"category"})
  
      class CustomTrans(TransformPrimitive):
          name = "custom_transform"
          input_types = [ColumnSchema(semantic_tags={"category"})]
          output_type = ColumnSchema(semantic_tags={"category"})
  
      no_name = TransformFeature(
          IdentityFeature(es["log"].ww["zipcode"]), NoName
      )
      no_name_description = (
          'The result of applying NoName to the "zipcode".'
      )
      assert describe_feature(no_name) == no_name_description
  
      custom_agg = AggregationFeature(
          IdentityFeature(es["log"].ww["zipcode"]),
          "customers",
          CustomAgg,
      )
      custom_agg_description = 'The result of applying CUSTOM_AGGREGATION to the "zipcode" of all instances of "log" for each "id" in "customers".'
      assert describe_feature(custom_agg) == custom_agg_description
  
      custom_trans = TransformFeature(
          IdentityFeature(es["log"].ww["zipcode"]),
          CustomTrans,
      )
      custom_trans_description = (
          'The result of applying CUSTOM_TRANSFORM to the "zipcode".'
      )
      assert describe_feature(custom_trans) == custom_trans_description
  
file_path: featuretools/featuretools/tests/primitive_tests/test_feature_descriptions.py
imports: import json
  import os
  import pytest
  from woodwork.column_schema import ColumnSchema
  from featuretools import describe_feature
  from featuretools.feature_base import AggregationFeature, DirectFeature, GroupByTransformFeature, IdentityFeature, TransformFeature
  from featuretools.primitives import Absolute, AggregationPrimitive, CumMean, EqualScalar, Mean, Mode, NMostCommon, NumUnique, PercentTrue, Sum, TransformPrimitive
label_desc: Use image node_id 9 for calling a global function with example usage: test_generic_description(es) and returns: unknown