code: def test_to_dictionary_agg(es):
      primitive = Sum()
      actual = Feature(
          es["customers"].ww["age"],
          primitive=primitive,
          parent_dataframe_name="cohorts",
      ).to_dictionary()
  
      expected = {
          "type": "AggregationFeature",
          "dependencies": ["customers: age"],
          "arguments": {
              "name": "SUM(customers.age)",
              "base_features": ["customers: age"],
              "relationship_path": [
                  {
                      "parent_dataframe_name": "cohorts",
                      "child_dataframe_name": "customers",
                      "parent_column_name": "cohort",
                      "child_column_name": "cohort",
                  },
              ],
              "primitive": primitive,
              "where": None,
              "use_previous": None,
          },
      }
  
      assert expected == actual
  
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 14 for calling a global function with example usage: test_to_dictionary_agg(es) without return types