def _generate_samples(self, x: np.ndarray, epsilon_map: np.ndarray) -> tuple[np.ndarray, np.ndarray]:
        """
        Generate samples around the current image.

        :param x: Sample input with shape as expected by the model.
        :param epsilon_map: Samples drawn from search space.
        :return: Two arrays of new input samples to approximate gradient.
        """
        minus = clip_and_round(
            np.repeat(x, self.num_basis, axis=0) - epsilon_map,
            self.clip_values,
            self.round_samples,
        )
        plus = clip_and_round(
            np.repeat(x, self.num_basis, axis=0) + epsilon_map,
            self.clip_values,
            self.round_samples,
        )
        return minus, plus

        Generate samples around the current image.

        :param x: Sample input with shape as expected by the model.
        :param epsilon_map: Samples drawn from search space.
        :return: Two arrays of new input samples to approximate gradient.
        
art/estimators/classification/query_efficient_bb.py