23 lines
649 B
Go
23 lines
649 B
Go
package sound
|
|
|
|
import (
|
|
. "github.com/onsi/ginkgo/v2"
|
|
. "github.com/onsi/gomega"
|
|
)
|
|
|
|
var _ = Describe("Float32sToInt16LEBytes", func() {
|
|
It("converts in-range samples to int16 little-endian bytes", func() {
|
|
out := Float32sToInt16LEBytes([]float32{0, 0.5, -0.5})
|
|
Expect(BytesToInt16sLE(out)).To(Equal([]int16{0, 16383, -16383}))
|
|
})
|
|
|
|
It("clamps out-of-range samples instead of wrapping", func() {
|
|
out := Float32sToInt16LEBytes([]float32{2.0, -2.0})
|
|
Expect(out).To(Equal([]byte{0xff, 0x7f, 0x00, 0x80})) // 32767, -32768
|
|
})
|
|
|
|
It("returns an empty slice for empty input", func() {
|
|
Expect(Float32sToInt16LEBytes(nil)).To(BeEmpty())
|
|
})
|
|
})
|