code: def check_metrics(self, results):
      for intent_name, intent_metrics in iteritems(results["metrics"]):
          if intent_name is None or intent_name == "null":
              continue
          classification_f1 = intent_metrics["intent"]["f1"]
          self.assertGreaterEqual(
              classification_f1,
              INTENT_CLASSIFICATION_THRESHOLD,
              "Intent classification f1 score is too low (%.3f) for intent "
              "'%s'" % (classification_f1, intent_name),
          )
          for slot_name, slot_metrics in iteritems(
              intent_metrics["slots"]
          ):
              slot_f1 = slot_metrics["f1"]
              self.assertGreaterEqual(
                  slot_f1,
                  SLOT_FILLING_THRESHOLD,
                  "Slot f1 score is too low (%.3f) for slot '%s' of intent "
                  "'%s'" % (slot_f1, slot_name, intent_name),
              )
  
file_path: snips-nlu/snips_nlu/tests/integration_test.py
imports: from __future__ import print_function, unicode_literals
  from builtins import str
  from future.utils import iteritems
  from snips_nlu_metrics import compute_cross_val_metrics
  from snips_nlu.constants import LANGUAGE_EN
  from snips_nlu.nlu_engine.nlu_engine import SnipsNLUEngine
  from snips_nlu.preprocessing import tokenize_light
  from snips_nlu.tests.utils import PERFORMANCE_DATASET_PATH, SnipsTest
label_desc: Use image node_id 2 for calling the IntegrationTestSnipsNLUEngine obj's underlying member method code with example usage: obj.check_metrics(results) without return types