code: def test_add_last_time_non_numeric_index(pd_es, spark_es, dask_es):
      # Confirm that add_last_time_index works for indices that aren't numeric
      # since numeric underlying indices can accidentally match the Woodwork index
      pd_es.add_last_time_indexes(["products"])
      dask_es.add_last_time_indexes(["products"])
      spark_es.add_last_time_indexes(["products"])
  
      assert list(
          to_pandas(pd_es["products"][LTI_COLUMN_NAME]).sort_index()
      ) == list(
          to_pandas(dask_es["products"][LTI_COLUMN_NAME]).sort_index(),
      )
      assert list(
          to_pandas(pd_es["products"][LTI_COLUMN_NAME]).sort_index()
      ) == list(
          to_pandas(spark_es["products"]).sort_values("id")[
              LTI_COLUMN_NAME
          ],
      )
  
      assert (
          pd_es["products"].ww.schema == dask_es["products"].ww.schema
      )
      assert (
          pd_es["products"].ww.schema == spark_es["products"].ww.schema
      )
  
imports: from datetime import datetime
  import numpy
  import pandas
  import pytest
  from woodwork.exceptions import TypeConversionError
  from woodwork.logical_types import Boolean, Categorical, Datetime, Double, Integer, NaturalLanguage
  from featuretools.entityset.entityset import LTI_COLUMN_NAME, EntitySet
  from featuretools.tests.testing_utils import to_pandas
  from featuretools.utils.gen_utils import Library, import_or_none, is_instance
label_desc: Use image node_id 23 for calling a global function with example usage: test_add_last_time_non_numeric_index(pd_es, spark_es, dask_es) without return types