code: def test_constructor(self):
      df = pd.DataFrame(
          data=np.array(get_docs_categories_semiotic()).T,
          columns=["category", "text"],
      )
      corpus = CorpusFromPandas(
          df, "category", "text", nlp=whitespace_nlp
      ).build()
      SemioticSquare(corpus, "hamlet", "jay-z/r. kelly", ["swift"])
      with self.assertRaises(AssertionError):
          SemioticSquare(
              corpus, "XXXhamlet", "jay-z/r. kelly", ["swift"]
          )
      with self.assertRaises(AssertionError):
          SemioticSquare(
              corpus, "hamlet", "jay-z/r. kellyXXX", ["swift"]
          )
      with self.assertRaises(AssertionError):
          SemioticSquare(
              corpus, "hamlet", "jay-z/r. kelly", ["swift", "asd"]
          )
      with self.assertRaises(EmptyNeutralCategoriesError):
          SemioticSquare(corpus, "hamlet", "jay-z/r. kelly", [])
  
file_path: scattertext/scattertext/test/test_semioticSquare.py
imports: from unittest import TestCase
  import pandas
  import numpy
  from scattertext import SemioticSquare
  from scattertext.CorpusFromPandas import CorpusFromPandas
  from scattertext.WhitespaceNLP import whitespace_nlp
  from scattertext.semioticsquare.SemioticSquare import EmptyNeutralCategoriesError
label_desc: Use image node_id 1 for calling the TestSemioticSquare obj's underlying member method code with example usage: obj.test_constructor() without return types