code: def test_feature_type_equality():
      f1 = LiteFeature("f1", Double)
      f2 = LiteFeature("f2", Double)
  
      # Add Numeric is Commutative, so should all be equal
      f3 = LiteFeature(
          name="Column 1",
          primitive=AddNumeric(),
          logical_type=Double,
          base_features=[f1, f2],
      )
  
      f4 = LiteFeature(
          name="Column 10",
          primitive=AddNumeric(),
          logical_type=Double,
          base_features=[f1, f2],
      )
  
      f5 = LiteFeature(
          name="Column 20",
          primitive=AddNumeric(),
          logical_type=Double,
          base_features=[f2, f1],
      )
  
      assert f3 == f4 == f5
  
      # Divide Numeric is not Commutative, so should not be equal
      f6 = LiteFeature(
          name="Column 1",
          primitive=DivideNumeric(),
          logical_type=Double,
          base_features=[f1, f2],
      )
  
      f7 = LiteFeature(
          name="Column 1",
          primitive=DivideNumeric(),
          logical_type=Double,
          base_features=[f2, f1],
      )
  
      assert f6 != f7
  
imports: import json
  from unittest.mock import patch
  import pytest
  from woodwork.logical_types import Boolean, Double
  from featuretools.feature_discovery.feature_discovery import generate_features_from_primitives, schema_to_features
  from featuretools.feature_discovery.FeatureCollection import FeatureCollection
  from featuretools.feature_discovery.LiteFeature import LiteFeature
  from featuretools.primitives import Absolute, AddNumeric, DivideNumeric, Lag, MultiplyNumeric
  from featuretools.tests.feature_discovery.test_feature_discovery import MultiOutputPrimitiveForTest
  from featuretools.tests.testing_utils.generate_fake_dataframe import generate_fake_dataframe
label_desc: Use image node_id 1 for calling a global function with example usage: test_feature_type_equality() without return types