code: def test_feature_trie_without_needs_full_dataframe(diamond_es):
      es = diamond_es
      country_name = IdentityFeature(es["countries"].ww["name"])
      direct_name = DirectFeature(country_name, "regions")
      amount = IdentityFeature(es["transactions"].ww["amount"])
  
      path_through_customers = backward_path(
          es, ["regions", "customers", "transactions"]
      )
      through_customers = AggregationFeature(
          amount,
          "regions",
          primitive=primitives.Mean,
          relationship_path=path_through_customers,
      )
      path_through_stores = backward_path(
          es, ["regions", "stores", "transactions"]
      )
      through_stores = AggregationFeature(
          amount,
          "regions",
          primitive=primitives.Mean,
          relationship_path=path_through_stores,
      )
      customers_to_transactions = backward_path(
          es, ["customers", "transactions"]
      )
      customers_mean = AggregationFeature(
          amount,
          "customers",
          primitive=primitives.Mean,
          relationship_path=customers_to_transactions,
      )
  
      negation = TransformFeature(customers_mean, primitives.Negate)
      regions_to_customers = backward_path(es, ["regions", "customers"])
      mean_of_mean = AggregationFeature(
          negation,
          "regions",
          primitive=primitives.Mean,
          relationship_path=regions_to_customers,
      )
  
      features = [
          direct_name,
          through_customers,
          through_stores,
          mean_of_mean,
      ]
  
      feature_set = FeatureSet(features)
      trie = feature_set.feature_trie
  
      assert trie.value == (
          False,
          set(),
          {f.unique_name() for f in features},
      )
      assert trie.get_node(direct_name.relationship_path).value == (
          False,
          set(),
          {country_name.unique_name()},
      )
      assert trie.get_node(regions_to_customers).value == (
          False,
          set(),
          {negation.unique_name(), customers_mean.unique_name()},
      )
      regions_to_stores = backward_path(es, ["regions", "stores"])
      assert trie.get_node(regions_to_stores).value == (
          False,
          set(),
          set(),
      )
      assert trie.get_node(path_through_customers).value == (
          False,
          set(),
          {amount.unique_name()},
      )
      assert trie.get_node(path_through_stores).value == (
          False,
          set(),
          {amount.unique_name()},
      )
  
file_path: featuretools/featuretools/tests/computational_backend/test_feature_set.py
imports: from featuretools import AggregationFeature, DirectFeature, IdentityFeature, TransformFeature, primitives
  from featuretools.computational_backends.feature_set import FeatureSet
  from featuretools.entityset.relationship import RelationshipPath
  from featuretools.tests.testing_utils import backward_path
  from featuretools.utils import Trie
label_desc: Use image node_id 1 for calling a global function with example usage: test_feature_trie_without_needs_full_dataframe(diamond_es) without return types