class_docstr: An testcase widget.
class_docstr_tok: ["An","testcase","widget","."]
code: def is_satisfy_filter(
      self, testcase, filter_tags: typing.List[str], is_fail_case: bool
  ) -> bool:
      testcase_tags = testcase["tags"]
      texts = []
      for e in testcase["examples"]:
          for tag in ["old", "new"]:
              if not e[tag]:
                  continue
              for tokens in e[tag]["tokens"]:
                  texts += tokens
  
      def raw_text_search(tag, testcase_tags, text):
          text_searched = tag in text.lower()
          return tag in testcase_tags or text_searched
  
      is_tag_filtered = all(
          [
              raw_text_search(t, testcase_tags, " ".join(texts))
              for t in filter_tags
          ]
      )
      is_failured_filtered = not (
          is_fail_case and testcase["succeed"] == 1
      )
      return is_tag_filtered and is_failured_filtered
  
file_path: checklist/checklist/viewer/test_summarizer.py
imports: import ipywidgets
  from traitlets import Unicode, List, Dict
  import os
  import typing
  from spacy.lang.en import English
  from copy import deepcopy
label_desc: Use image node_id 8 for calling the TestSummarizer obj's underlying member method code with example usage: obj.is_satisfy_filter(testcase, filter_tags, is_fail_case) and returns: unknown, unknown