🎉 live server seems to be working now
This commit is contained in:
90
third_party/sendspin-go/pkg/audio/output/query_test.go
vendored
Normal file
90
third_party/sendspin-go/pkg/audio/output/query_test.go
vendored
Normal file
@@ -0,0 +1,90 @@
|
||||
// ABOUTME: Tests for the pure capsFromFormats / formatBits helpers
|
||||
// ABOUTME: cgo-bound QueryDeviceCapabilities is not exercised here
|
||||
package output
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"github.com/gen2brain/malgo"
|
||||
)
|
||||
|
||||
func TestFormatBits(t *testing.T) {
|
||||
tests := []struct {
|
||||
format malgo.FormatType
|
||||
want int
|
||||
}{
|
||||
{malgo.FormatS16, 16},
|
||||
{malgo.FormatS24, 24},
|
||||
{malgo.FormatS32, 32},
|
||||
{malgo.FormatF32, 32},
|
||||
{malgo.FormatUnknown, 0},
|
||||
{malgo.FormatU8, 0}, // we don't currently advertise 8-bit formats
|
||||
}
|
||||
|
||||
for _, tt := range tests {
|
||||
if got := formatBits(tt.format); got != tt.want {
|
||||
t.Errorf("formatBits(%v) = %d, want %d", tt.format, got, tt.want)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func TestCapsFromFormats_Empty(t *testing.T) {
|
||||
rate, depth := capsFromFormats(nil)
|
||||
if rate != 0 || depth != 0 {
|
||||
t.Errorf("expected (0, 0) for empty input, got (%d, %d)", rate, depth)
|
||||
}
|
||||
}
|
||||
|
||||
func TestCapsFromFormats_TakesMaxAcrossEntries(t *testing.T) {
|
||||
// Mixed-rate / mixed-depth list. Rate and depth caps come from
|
||||
// different entries — neither field's max needs to come from the same row.
|
||||
formats := []malgo.DataFormat{
|
||||
{Format: malgo.FormatS16, Channels: 2, SampleRate: 192000},
|
||||
{Format: malgo.FormatS24, Channels: 2, SampleRate: 48000},
|
||||
}
|
||||
rate, depth := capsFromFormats(formats)
|
||||
if rate != 192000 {
|
||||
t.Errorf("expected max rate 192000, got %d", rate)
|
||||
}
|
||||
if depth != 24 {
|
||||
t.Errorf("expected max depth 24, got %d", depth)
|
||||
}
|
||||
}
|
||||
|
||||
func TestCapsFromFormats_IgnoresUnknownFormat(t *testing.T) {
|
||||
// An entry with an unknown FormatType must not contribute to either cap,
|
||||
// even if its SampleRate is huge — we'd be advertising a rate we couldn't
|
||||
// actually drive in any of our supported formats.
|
||||
formats := []malgo.DataFormat{
|
||||
{Format: malgo.FormatUnknown, Channels: 2, SampleRate: 384000},
|
||||
{Format: malgo.FormatS16, Channels: 2, SampleRate: 48000},
|
||||
}
|
||||
rate, depth := capsFromFormats(formats)
|
||||
if rate != 48000 {
|
||||
t.Errorf("expected unknown-format entry to be ignored; got rate %d", rate)
|
||||
}
|
||||
if depth != 16 {
|
||||
t.Errorf("expected depth 16, got %d", depth)
|
||||
}
|
||||
}
|
||||
|
||||
func TestCapsFromFormats_AllUnknownReturnsZero(t *testing.T) {
|
||||
formats := []malgo.DataFormat{
|
||||
{Format: malgo.FormatUnknown, Channels: 2, SampleRate: 192000},
|
||||
{Format: malgo.FormatU8, Channels: 2, SampleRate: 48000},
|
||||
}
|
||||
rate, depth := capsFromFormats(formats)
|
||||
if rate != 0 || depth != 0 {
|
||||
t.Errorf("expected (0, 0) when no entry has a known bit depth, got (%d, %d)", rate, depth)
|
||||
}
|
||||
}
|
||||
|
||||
func TestCapsFromFormats_F32MapsToThirtyTwo(t *testing.T) {
|
||||
formats := []malgo.DataFormat{
|
||||
{Format: malgo.FormatF32, Channels: 2, SampleRate: 96000},
|
||||
}
|
||||
_, depth := capsFromFormats(formats)
|
||||
if depth != 32 {
|
||||
t.Errorf("FormatF32 should map to 32 bits; got %d", depth)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user