dsp/fourier: fix TestReversePairs for 32 bit architectures

This commit is contained in:
Dan Kortschak
2020-11-21 12:34:57 +10:30
parent b29604be86
commit 5289638ec6

View File

@@ -10,6 +10,7 @@ import (
"math/bits"
"strconv"
"testing"
"unsafe"
"golang.org/x/exp/rand"
@@ -198,10 +199,12 @@ func TestReversePairs(t *testing.T) {
// naiveReversePairs does a bit-pair reversal by formatting as a base-4 string,
// reversing the digits of the formatted number and then re-parsing the value.
func naiveReversePairs(x uint) uint {
bits := int(unsafe.Sizeof(uint(0)) * 8)
// Format the number as a quaternary, padded with zeros.
// We avoid the leftpad issue by doing it ourselves.
b := strconv.AppendUint(bytes.Repeat([]byte("0"), 32), uint64(x), 4)
b = b[len(b)-32:]
b := strconv.AppendUint(bytes.Repeat([]byte("0"), bits/2), uint64(x), 4)
b = b[len(b)-bits/2:]
// Reverse the quits.
for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {