docstr: Compute the test-statistic (FET) between the reference window(s) and test window.
  If a given test-window is not yet full then a test-statistic of np.nan is returned for that window.
  
  Parameters
  ----------
  x_t
      A single instance.
  
  Returns
  -------
  Estimated FET test statistics (1-p_val) between reference window and test windows.
docstr_tok: ["Compute","the","test-statistic","(","FET",")","between","the","reference","window","(","s",")","and","test","window",".","If","a","given","test-window","is","not","yet","full","then","a","test-statistic","of","np.nan","is","returned","for","that","window",".","Parameters","--","--","--","--","--","x_t","A","single","instance",".","Returns","--","--","--","-","Estimated","FET","test","statistics","(","1-p_val",")","between","reference","window","and","test","windows","."]
code: def score(self, x_t: Union[np.ndarray, Any]) -> np.ndarray:
      """
      Compute the test-statistic (FET) between the reference window(s) and test window.
      If a given test-window is not yet full then a test-statistic of np.nan is returned for that window.
  
      Parameters
      ----------
      x_t
          A single instance.
  
      Returns
      -------
      Estimated FET test statistics (1-p_val) between reference window and test windows.
      """
      values = set(np.unique(x_t))
      if not set(values).issubset(["0", "1", True, False]):
          raise ValueError(
              "The `x_t` data must consist of only (0,1)'s or (False,True)'s for the "
              "FETDriftOnline detector."
          )
  
      x_t = super()._preprocess_xt(x_t)
      self._update_state(x_t)
  
      stats = np.zeros(
          (len(self.window_sizes), self.n_features), dtype=np.float32
      )
      for k, ws in enumerate(self.window_sizes):
          if self.t >= ws:
              sum_last_ws = np.sum(self.xs[-ws:, :], axis=0)
  
              # Perform FET with hypergeom.cdf (this is vectorised over features)
              if self.alternative == "greater":
                  p_vals = hypergeom.cdf(
                      self.sum_ref,
                      self.n + ws,
                      self.sum_ref + sum_last_ws,
                      self.n,
                  )
              else:
                  p_vals = hypergeom.cdf(
                      sum_last_ws,
                      self.n + ws,
                      self.sum_ref + sum_last_ws,
                      ws,
                  )
  
              # Compute test stat and apply smoothing
              stats_k = 1 - p_vals
              for f in range(self.n_features):
                  if len(self.test_stats) != 0 and not np.isnan(
                      self.test_stats[-1, k, f]
                  ):
                      stats_k[f] = (1 - self.lam) * self.test_stats[
                          -1, k, f
                      ] + self.lam * stats_k[f]
              stats[k, :] = stats_k
          else:
              stats[k, :] = np.nan
      return stats
  
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 8 for calling the FETDriftOnline obj's underlying member method code with example usage: obj.score(x_t) and returns: stats