feat(capability): 转码能力包(vendor 纯 Go AMR-NB 解码器 + 黄金向量逐样本对照 + 8 哨兵 + 注册面)
This commit is contained in:
1 parent
89715d1813
commit
4a2d276881
100 files changed
+11319
No files matched your search
@@ -0,0 +1,51 @@
|
||||
package transcode
|
||||
|
||||
import (
|
||||
"testing"
|
||||
"time"
|
||||
)
|
||||
|
||||
// TestDefaultLimitsPinnedToDesign 把 design/25 §2.5 的**取值**钉在测试里:
|
||||
// 谁改了默认限额(比如把输入上限从 5 MiB 调大),这条断言就会红,逼他回设计对账。
|
||||
// 设计原文:5 MiB 进 / 64 MiB 出 / 10 分钟 / 并发 2 / 超时 10s。
|
||||
func TestDefaultLimitsPinnedToDesign(t *testing.T) {
|
||||
got := DefaultLimits()
|
||||
if got.MaxInputBytes != 5<<20 {
|
||||
t.Errorf("MaxInputBytes = %d, want %d (5 MiB)", got.MaxInputBytes, 5<<20)
|
||||
}
|
||||
if got.MaxOutputBytes != 64<<20 {
|
||||
t.Errorf("MaxOutputBytes = %d, want %d (64 MiB)", got.MaxOutputBytes, 64<<20)
|
||||
}
|
||||
if got.MaxDuration != 10*time.Minute {
|
||||
t.Errorf("MaxDuration = %s, want %s", got.MaxDuration, 10*time.Minute)
|
||||
}
|
||||
if got.Concurrency != 2 {
|
||||
t.Errorf("Concurrency = %d, want 2", got.Concurrency)
|
||||
}
|
||||
if got.Timeout != 10*time.Second {
|
||||
t.Errorf("Timeout = %s, want %s", got.Timeout, 10*time.Second)
|
||||
}
|
||||
}
|
||||
|
||||
// TestLimitsWithDefaults 断言零值与负值都被补成默认(限额的零值若照字面生效
|
||||
// 会变成「一字节都不许」,那不是任何调用方想要的行为)。
|
||||
func TestLimitsWithDefaults(t *testing.T) {
|
||||
zero := Limits{}.withDefaults()
|
||||
if zero != DefaultLimits() {
|
||||
t.Fatalf("zero limits = %+v, want %+v", zero, DefaultLimits())
|
||||
}
|
||||
negative := Limits{
|
||||
MaxInputBytes: -1, MaxOutputBytes: -1, MaxDuration: -1, Concurrency: -1, Timeout: -1,
|
||||
}.withDefaults()
|
||||
if negative != DefaultLimits() {
|
||||
t.Fatalf("negative limits = %+v, want %+v", negative, DefaultLimits())
|
||||
}
|
||||
}
|
||||
|
||||
// TestWAVSizeLimitIsBelowOutputLimit 断言 64 MiB 的产物上限落在 44 字节头能如实
|
||||
// 声明的范围内(否则会出现「闸放过了、头写不出」的死角)。
|
||||
func TestWAVSizeLimitIsBelowOutputLimit(t *testing.T) {
|
||||
if uint64(DefaultMaxOutputBytes) > uint64(wavMaxDataBytes) {
|
||||
t.Fatalf("MaxOutputBytes %d exceeds the RIFF limit %d", DefaultMaxOutputBytes, wavMaxDataBytes)
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user