def pre_process(self, cent: np.ndarray, eps: np.ndarray) -> tuple[np.ndarray, np.ndarray]:
        """
        Simple helper function to reshape and adjust the zonotope values before pushing through the neural network.
        This is written with image data from MNIST and CIFAR10 in mind using L-infty bounds.
        Each feature here starts with a single eps term.
        Users can implement custom pre-processors tailored to their data if it does not conform to these requirements.

        :param cent: original feature values between 0 - 1
        :param eps: the zonotope error terms.
        :return: adjusted center and eps values if center + eps exceed 1 or if center - eps falls below 0.
        """
        original_shape = cent.shape
        cent = np.reshape(np.copy(cent), (1, -1))
        num_of_error_terms = eps.shape[0]
        cent, eps = self.adjust_to_within_bounds(cent, np.copy(eps))
        cent = np.reshape(cent, original_shape)

        reshape_dim = (num_of_error_terms,) + original_shape
        eps = np.reshape(eps, reshape_dim)

        return cent, eps

        Simple helper function to reshape and adjust the zonotope values before pushing through the neural network.
        This is written with image data from MNIST and CIFAR10 in mind using L-infty bounds.
        Each feature here starts with a single eps term.
        Users can implement custom pre-processors tailored to their data if it does not conform to these requirements.

        :param cent: original feature values between 0 - 1
        :param eps: the zonotope error terms.
        :return: adjusted center and eps values if center + eps exceed 1 or if center - eps falls below 0.
        
art/estimators/certification/deep_z/deep_z.py