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) } }