code: def test_text_feature_transformation(self):
      feature = TextFeature(text, 0)
      tokenizer = Tokenizer()
      tokenized = tokenizer.transform(feature)
      assert tokenized.get_tokens() == [
          "Hello",
          "my",
          "friend,",
          "please",
          "annotate",
          "my",
          "text",
      ]
      normalizer = Normalizer()
      normalized = normalizer.transform(tokenized)
      assert normalized.get_tokens() == [
          "hello",
          "my",
          "friend",
          "please",
          "annotate",
          "my",
          "text",
      ]
      word_index = {"my": 1, "please": 2, "friend": 3}
      indexed = WordIndexer(word_index).transform(normalized)
      shaped = SequenceShaper(5).transform(indexed)
      transformed = TextFeatureToSample().transform(shaped)
      assert set(transformed.keys()) == {
          "text",
          "label",
          "tokens",
          "indexedTokens",
          "sample",
      }
      sample = transformed.get_sample()
      assert list(sample.feature.storage) == [1.0, 3.0, 2.0, 1.0, 0.0]
      assert list(sample.label.storage) == [0.0]
  
file_path: analytics-zoo/pyzoo/test/zoo/feature/text/test_text_feature.py
imports: import pytest
  from zoo.feature.text import *
  from test.zoo.pipeline.utils.test_utils import ZooTestCase
label_desc: Use image node_id 3 for calling the TestTextFeature obj's underlying member method code with example usage: obj.test_text_feature_transformation() without return types