code: def test_concat_token(self):
      # test wrong data
      self.assertRaises(AssertionError, sa_sample.concat_token, [])
      self.assertRaises(AssertionError, sa_sample.concat_token, 0)
      concat_tokens = sa_sample.concat_token(5)
      # test output
      for concat_token in concat_tokens:
          self.assertTrue(isinstance(concat_token, dict))
          self.assertEqual(
              concat_token["string"],
              " ".join(
                  sa_sample.get_words("x")[
                      concat_token["indices"][0] : concat_token[
                          "indices"
                      ][1]
                  ]
              ),
          )
  
file_path: textflint/test/input/component/sample/test_sa_sample.py
imports: import unittest
  from textflint.input.component.sample.sa_sample import *
label_desc: Use image node_id 4 for calling the TestSASample obj's underlying member method code with example usage: obj.test_concat_token() without return types