docstr: Private method to compare test stats to thresholds. The max stats over all windows are compute for each
  feature. Drift is flagged if `max_stats` for any feature exceeds the thresholds for that feature.
  
  Parameters
  ----------
  test_stats
      Array of test statistics with shape (n_windows, n_features)
  thresholds
      Array of thresholds with shape (t_max, n_features).
  
  Returns
  -------
  An int equal to 1 if drift, 0 otherwise.
docstr_tok: ["Private","method","to","compare","test","stats","to","thresholds",".","The","max","stats","over","all","windows","are","compute","for","each","feature",".","Drift","is","flagged","if","`","max_stats","`","for","any","feature","exceeds","the","thresholds","for","that","feature",".","Parameters","--","--","--","--","--","test_stats","Array","of","test","statistics","with","shape","(","n_windows",",","n_features",")","thresholds","Array","of","thresholds","with","shape","(","t_max",",","n_features",")",".","Returns","--","--","--","-","An","int","equal","to","1","if","drift",",","0","otherwise","."]
code: def _check_drift(
      self, test_stats: np.ndarray, thresholds: np.ndarray
  ) -> int:
      """
      Private method to compare test stats to thresholds. The max stats over all windows are compute for each
      feature. Drift is flagged if `max_stats` for any feature exceeds the thresholds for that feature.
  
      Parameters
      ----------
      test_stats
          Array of test statistics with shape (n_windows, n_features)
      thresholds
          Array of thresholds with shape (t_max, n_features).
  
      Returns
      -------
      An int equal to 1 if drift, 0 otherwise.
      """
      with warnings.catch_warnings():
          warnings.filterwarnings(
              action="ignore", message="All-NaN slice encountered"
          )
          max_stats = np.nanmax(test_stats, axis=0)
  
      # If any stats greater than thresholds, flag drift and return
      if (max_stats > thresholds).any():
          return 1
  
      # If still no drift, check if any stats equal to threshold. If so, flag drift with proba self.probs_when_equal
      equal_inds = np.where(max_stats == thresholds)[0]
      for equal_ind in equal_inds:
          if (
              np.random.uniform()
              > self.permit_probs[
                  min(self.t - 1, len(self.thresholds) - 1), equal_ind
              ]
          ):
              return 1
  
      return 0
  
imports: from tqdm import tqdm
  import numpy
  from typing import Any, Callable, List, Optional, Union
  from alibi_detect.base import DriftConfigMixin
  from alibi_detect.cd.base_online import BaseUniDriftOnline
  from alibi_detect.utils.misc import quantile
  from scipy.stats import hypergeom
  import numba
  import warnings
label_desc: Use image node_id 7 for calling the FETDriftOnline obj's underlying member method code with example usage: obj._check_drift(test_stats, thresholds) and returns: int, int, int