code: def test_remove_single_value_features():
      same_vals_df = pd.DataFrame(
          {
              "id": [0, 1, 2, 3],
              "all_numeric": [88, 88, 88, 88],
              "with_nan": [1, 1, None, 1],
              "all_nulls": [None, None, None, None],
              "all_categorical": ["a", "a", "a", "a"],
              "all_bools": [True, True, True, True],
              "diff_vals": ["hi", "bye", "bye", "hi"],
          },
      )
  
      es = EntitySet("data", {"single_vals": (same_vals_df, "id")})
      es["single_vals"].ww.set_types(
          logical_types={
              "all_nulls": "categorical",
              "all_categorical": "categorical",
              "diff_vals": "categorical",
          },
      )
      fm, features = dfs(
          entityset=es,
          target_dataframe_name="single_vals",
          trans_primitives=["is_null"],
          max_depth=1,
      )
  
      no_params, no_params_features = remove_single_value_features(
          fm, features
      )
      no_params_cols = set(no_params.columns)
      assert len(no_params_features) == 2
      assert "IS_NULL(with_nan)" in no_params_cols
      assert "diff_vals" in no_params_cols
  
      (
          nan_as_value,
          nan_as_value_features,
      ) = remove_single_value_features(
          fm,
          features,
          count_nan_as_value=True,
      )
      nan_cols = set(nan_as_value.columns)
      assert len(nan_as_value_features) == 3
      assert "IS_NULL(with_nan)" in nan_cols
      assert "diff_vals" in nan_cols
      assert "with_nan" in nan_cols
  
      without_features_param = remove_single_value_features(fm)
      assert len(no_params.columns) == len(
          without_features_param.columns
      )
      for i in range(len(no_params.columns)):
          assert (
              no_params.columns[i] == without_features_param.columns[i]
          )
          assert (
              no_params_features[i].get_name()
              == without_features_param.columns[i]
          )
  
file_path: featuretools/featuretools/tests/selection/test_selection.py
imports: import numpy
  import pandas
  import pytest
  from woodwork.column_schema import ColumnSchema
  from woodwork.logical_types import Boolean, BooleanNullable, NaturalLanguage
  from featuretools import EntitySet, Feature, dfs
  from featuretools.selection import remove_highly_correlated_features, remove_highly_null_features, remove_low_information_features, remove_single_value_features
  from featuretools.tests.testing_utils import make_ecommerce_entityset
label_desc: Use image node_id 6 for calling a global function with example usage: test_remove_single_value_features() without return types