code: def test_to_sparse_sentence_features():
      features = [
          Features(
              scipy.sparse.csr_matrix(
                  np.random.randint(5, size=(5, 10))
              ),
              FEATURE_TYPE_SEQUENCE,
              TEXT,
              "some-featurizer",
          )
      ]
  
      sentence_features = (
          SingleStateFeaturizer._to_sparse_sentence_features(features)
      )
  
      assert len(sentence_features) == 1
      assert FEATURE_TYPE_SENTENCE == sentence_features[0].type
      assert features[0].origin == sentence_features[0].origin
      assert features[0].attribute == sentence_features[0].attribute
      assert sentence_features[0].features.shape == (1, 10)
  
imports: from typing import Text
  import numpy
  import re
  import scipy.sparse
  import pytest
  from rasa.nlu.tokenizers.tokenizer import Token
  from rasa.nlu.constants import TOKENS_NAMES
  from rasa.core.featurizers.precomputation import MessageContainerForCoreFeaturization
  from rasa.core.featurizers.single_state_featurizer import SingleStateFeaturizer
  from rasa.shared.nlu.training_data.features import Features
  from rasa.shared.nlu.training_data.message import Message
  from rasa.shared.nlu.constants import ACTION_TEXT, ACTION_NAME, ENTITIES, TEXT, INTENT, FEATURE_TYPE_SEQUENCE, FEATURE_TYPE_SENTENCE, ENTITY_ATTRIBUTE_TYPE, ENTITY_ATTRIBUTE_VALUE, ENTITY_ATTRIBUTE_START, ENTITY_ATTRIBUTE_END, ENTITY_TAGS
  from rasa.shared.core.domain import Domain
  from rasa.shared.core.slots import TextSlot
  from rasa.shared.core.constants import ACTION_LISTEN_NAME, ACTIVE_LOOP, PREVIOUS_ACTION, SLOTS, ENTITY_LABEL_SEPARATOR, USER
  from rasa.utils.tensorflow.constants import SENTENCE, SEQUENCE
label_desc: Use image node_id 2 for calling a global function with example usage: test_to_sparse_sentence_features() without return types