code: def assert_statistic(checkers, expectations={}):
      for k in checkers.keys():
          # expect succ if no expectations
          succ_rate = checkers[k].succ_rate()
          total = checkers[k].total()
          average_time = checkers[k].average_time
          if expectations.get(k, "") == constants.FAIL:
              log.info(
                  f"Expect Fail: {str(k)} succ rate {succ_rate}, total: {total}, average time: {average_time:.4f}"
              )
              expect(
                  succ_rate < 0.49 or total < 2,
                  f"Expect Fail: {str(k)} succ rate {succ_rate}, total: {total}, average time: {average_time:.4f}",
              )
          else:
              log.info(
                  f"Expect Succ: {str(k)} succ rate {succ_rate}, total: {total}, average time: {average_time:.4f}"
              )
              expect(
                  succ_rate > 0.90 and total > 2,
                  f"Expect Succ: {str(k)} succ rate {succ_rate}, total: {total}, average time: {average_time:.4f}",
              )
  
imports: import threading
  import pytest
  import time
  import random
  from pathlib import Path
  from time import sleep
  from pymilvus import connections
  from chaos.checker import InsertFlushChecker, SearchChecker, QueryChecker, Op
  from common.cus_resource_opts import CustomResourceOperations
  from common.milvus_sys import MilvusSys
  from utils.util_log import test_log
  from utils.util_k8s import wait_pods_ready, get_pod_ip_name_pairs, get_milvus_instance_name
  from chaos import chaos_commons
  from common.common_type import CaseLabel
  from common import common_func
  from chaos import constants
  from delayed_assert import expect, assert_expectations
label_desc: Use image node_id 1 for calling a global function with example usage: assert_statistic(checkers, expectations) without return types