class_docstr: This class implements the black-box attack `SimBA`.
  
  | Paper link: https://arxiv.org/abs/1905.07121
class_docstr_tok: ["This","class","implements","the","black-box","attack","`","SimBA","`",".","|","Paper","link",":","https",":","\/\/arxiv.org\/abs\/1905.07121"]
code: def _check_params(self) -> None:
      if not isinstance(self.max_iter, int) or self.max_iter <= 0:
          raise ValueError(
              "The number of iterations must be a positive integer."
          )
  
      if self.epsilon < 0:
          raise ValueError(
              "The overshoot parameter must not be negative."
          )
  
      if self.batch_size != 1:
          raise ValueError(
              "The batch size `batch_size` has to be 1 in this implementation."
          )
  
      if not isinstance(self.stride, int) or self.stride <= 0:
          raise ValueError(
              "The `stride` value must be a positive integer."
          )
  
      if not isinstance(self.freq_dim, int) or self.freq_dim <= 0:
          raise ValueError(
              "The `freq_dim` value must be a positive integer."
          )
  
      if self.order not in ("random", "diag"):
          raise ValueError(
              "The order of pixel attacks has to be `random` or `diag`."
          )
  
      if self.attack not in ("px", "dct"):
          raise ValueError("The attack type has to be `px` or `dct`.")
  
      if not isinstance(self.targeted, bool):
          raise ValueError("`targeted` has to be a Boolean value.")
  
      if not isinstance(self.verbose, bool):
          raise ValueError(
              "The argument `verbose` has to be of type bool."
          )
  
file_path: adversarial-robustness-toolbox/art/attacks/evasion/simba.py
imports: from __future__ import absolute_import, division, print_function, unicode_literals
  import logging
  from typing import Optional, TYPE_CHECKING
  import numpy
  from scipy.fftpack import idct
  from tqdm.auto import trange
  from art.attacks.attack import EvasionAttack
  from art.estimators.estimator import BaseEstimator, NeuralNetworkMixin
  from art.estimators.classification.classifier import ClassifierMixin
  from art.config import ART_NUMPY_DTYPE
  from art.utils import is_probability
label_desc: Use image node_id 3 for calling the SimBA obj's underlying member method code with example usage: obj._check_params() without return types