code: def test_cum_max(pd_es):
      log_value_feat = IdentityFeature(pd_es["log"].ww["value"])
      cum_max = Feature(
          log_value_feat,
          groupby=IdentityFeature(pd_es["log"].ww["session_id"]),
          primitive=CumMax,
      )
      features = [cum_max]
      df = calculate_feature_matrix(
          entityset=pd_es,
          features=features,
          instance_ids=range(15),
      )
      cvalues = df[cum_max.get_name()].values
      assert len(cvalues) == 15
      cum_max_values = [0, 5, 10, 15, 20, 0, 1, 2, 3, 0, 0, 5, 0, 7, 14]
      for i, v in enumerate(cum_max_values):
          assert v == cvalues[i]
  
imports: import numpy
  import pandas
  from woodwork.column_schema import ColumnSchema
  from woodwork.logical_types import Datetime
  from featuretools import Feature, GroupByTransformFeature, IdentityFeature, calculate_feature_matrix, feature_base
  from featuretools.computational_backends.feature_set import FeatureSet
  from featuretools.computational_backends.feature_set_calculator import FeatureSetCalculator
  from featuretools.primitives import CumCount, CumMax, CumMean, CumMin, CumSum, Last
  from featuretools.primitives.base import TransformPrimitive
  from featuretools.synthesis import dfs
  from featuretools.tests.testing_utils import feature_with_name
label_desc: Use image node_id 3 for calling a global function with example usage: test_cum_max(pd_es) without return types