def METHOD_NAME(self, measurement):
    """
    Compute and return the innovation that a measurement would induce if
    it were used for an update, but don't actually perform the update.
    Assumes state and measurement are time-aligned. Useful for computing
    Chi^2 stats and likelihoods.
    :param measurement: measurement
    :return: Innovation mean and covariance of hypothetical update.
    :rtype: tuple(``torch.Tensor``, ``torch.Tensor``)
    """
    assert (
        self._time == measurement.time
    ), "State time and measurement time must be aligned!"
    # Compute innovation.
    x_pv = self._dynamic_model.mean2pv(self._mean)
    H = measurement.jacobian(x_pv)[:, : self.dimension]
    R = measurement.cov
    z = measurement.mean
    z_predicted = measurement(x_pv)
    dz = measurement.geodesic_difference(z, z_predicted)
    S = H.mm(self._cov).mm(H.transpose(-1, -2)) + R  # innovation cov
    return dz, S