torch.ifft(torch.fft(X)) is not X

I run this:

t = torch.Tensor([-1, 1, -1, 1, -1, 1, -1, 1])

torch.irfft(torch.rfft(t, signal_dim=1), signal_ndim=1)

This produces
tensor([-1.7778, 1.6706, -1.3619, 0.8889, -0.3087, -0.3087, 0.8889, -1.3619, 1.6706])

Which isn’t even a linearly dependent scaling of the input.
The intermediate result from rfft seems right:

tensor([[ 0., 0.], [ 0., -0.], [ 0., 0.], [ 0., 0.], [-8., 0.]])

What am I doing wrong?

Ah, I was using a deprecated function. torch.fft.* works appropriately.