|
- package rds
-
- import (
- "math"
- "testing"
- )
-
- func TestEncoderGenerate(t *testing.T) {
- cfg := DefaultConfig()
- enc, err := NewEncoder(cfg)
- if err != nil {
- t.Fatalf("unexpected error: %v", err)
- }
-
- samples := enc.Generate(128)
- if len(samples) != 128 {
- t.Fatalf("expected 128 samples, got %d", len(samples))
- }
-
- var max float64
- var sum float64
- for _, s := range samples {
- sum += math.Abs(s)
- if math.Abs(s) > max {
- max = math.Abs(s)
- }
- }
-
- if sum == 0 {
- t.Fatalf("expected non-zero samples")
- }
-
- if max > 0.1 {
- t.Fatalf("samples exceed configured amplitude: %v", max)
- }
- }
-
- func TestEncoderReset(t *testing.T) {
- cfg := DefaultConfig()
- enc, err := NewEncoder(cfg)
- if err != nil {
- t.Fatalf("unexpected error: %v", err)
- }
-
- sampleA := enc.Generate(1)[0]
- enc.Generate(10)
- enc.Reset()
- if sampleB := enc.Generate(1)[0]; math.Abs(sampleA-sampleB) > 1e-9 {
- t.Fatalf("expected reset to replay initial sample: %v vs %v", sampleA, sampleB)
- }
- }
|