Wideband autonomous SDR analysis engine forked from sdr-visual-suite
No puede seleccionar más de 25 temas Los temas deben comenzar con una letra o número, pueden incluir guiones ('-') y pueden tener hasta 35 caracteres de largo.

37 líneas
1.3KB

  1. package pipeline
  2. import (
  3. "testing"
  4. "sdr-wideband-suite/internal/config"
  5. )
  6. func TestResolveAndMergeProfile(t *testing.T) {
  7. cfg := config.Default()
  8. cfg.Profiles = append(cfg.Profiles, config.ProfileConfig{
  9. Name: "custom-test",
  10. Description: "test profile",
  11. Pipeline: &config.PipelineConfig{Mode: "custom", Goals: config.PipelineGoalConfig{Intent: "custom-intent", MonitorSpanHz: 12.5e6}},
  12. Surveillance: &config.SurveillanceConfig{AnalysisFFTSize: 16384, FrameRate: 8, Strategy: "single-resolution"},
  13. Refinement: &config.RefinementConfig{Enabled: true, MaxConcurrent: 20, MinCandidateSNRDb: 4},
  14. Resources: &config.ResourceConfig{PreferGPU: true, MaxRefinementJobs: 20, MaxRecordingStreams: 32},
  15. })
  16. p, ok := ResolveProfile(cfg, "custom-test")
  17. if !ok {
  18. t.Fatalf("expected profile")
  19. }
  20. MergeProfile(&cfg, p)
  21. if cfg.Pipeline.Mode != "custom" || cfg.Pipeline.Goals.Intent != "custom-intent" {
  22. t.Fatalf("pipeline not merged: %+v", cfg.Pipeline)
  23. }
  24. if cfg.Pipeline.Profile != "custom-test" {
  25. t.Fatalf("profile not applied: %+v", cfg.Pipeline.Profile)
  26. }
  27. if cfg.FFTSize != 16384 || cfg.FrameRate != 8 {
  28. t.Fatalf("surveillance not merged into legacy fields: fft=%d fps=%d", cfg.FFTSize, cfg.FrameRate)
  29. }
  30. if cfg.Resources.MaxRefinementJobs != 20 {
  31. t.Fatalf("resources not merged: %+v", cfg.Resources)
  32. }
  33. }