Wideband autonomous SDR analysis engine forked from sdr-visual-suite
Nie możesz wybrać więcej, niż 25 tematów Tematy muszą się zaczynać od litery lub cyfry, mogą zawierać myślniki ('-') i mogą mieć do 35 znaków.

59 wiersze
1.9KB

  1. package pipeline
  2. import (
  3. "testing"
  4. "sdr-wideband-suite/internal/config"
  5. )
  6. func TestApplyNamedProfile(t *testing.T) {
  7. cfg := config.Default()
  8. ApplyNamedProfile(&cfg, "wideband-balanced")
  9. if cfg.Pipeline.Mode != "wideband-balanced" {
  10. t.Fatalf("mode not applied: %s", cfg.Pipeline.Mode)
  11. }
  12. if cfg.Pipeline.Goals.Intent != "wideband-surveillance" {
  13. t.Fatalf("intent not applied: %s", cfg.Pipeline.Goals.Intent)
  14. }
  15. if cfg.Surveillance.AnalysisFFTSize < 4096 {
  16. t.Fatalf("analysis fft too small: %d", cfg.Surveillance.AnalysisFFTSize)
  17. }
  18. if !cfg.Refinement.Enabled {
  19. t.Fatalf("refinement should stay enabled")
  20. }
  21. if cfg.Resources.MaxRefinementJobs < 16 {
  22. t.Fatalf("refinement jobs too small: %d", cfg.Resources.MaxRefinementJobs)
  23. }
  24. }
  25. func TestPolicyFromConfig(t *testing.T) {
  26. cfg := config.Default()
  27. cfg.Pipeline.Mode = "archive"
  28. cfg.Pipeline.Goals.Intent = "archive-and-triage"
  29. cfg.Pipeline.Goals.MonitorStartHz = 88e6
  30. cfg.Pipeline.Goals.MonitorEndHz = 108e6
  31. cfg.Pipeline.Goals.MonitorSpanHz = 20e6
  32. cfg.Pipeline.Goals.SignalPriorities = []string{"broadcast-fm", "rds"}
  33. cfg.Surveillance.AnalysisFFTSize = 8192
  34. cfg.Surveillance.FrameRate = 9
  35. cfg.Surveillance.DisplayBins = 1200
  36. cfg.Surveillance.DisplayFPS = 6
  37. cfg.Refinement.Enabled = true
  38. cfg.Resources.MaxRefinementJobs = 5
  39. cfg.Refinement.MinCandidateSNRDb = 2.5
  40. cfg.Resources.PreferGPU = true
  41. p := PolicyFromConfig(cfg)
  42. if p.Mode != "archive" || p.Intent != "archive-and-triage" || p.SurveillanceFFTSize != 8192 || p.SurveillanceFPS != 9 || p.DisplayBins != 1200 || p.DisplayFPS != 6 {
  43. t.Fatalf("unexpected policy: %+v", p)
  44. }
  45. if p.MonitorSpanHz != 20e6 || len(p.SignalPriorities) != 2 {
  46. t.Fatalf("unexpected policy goals: %+v", p)
  47. }
  48. if p.MonitorCenterHz != cfg.CenterHz {
  49. t.Fatalf("unexpected monitor center: %+v", p.MonitorCenterHz)
  50. }
  51. if !p.RefinementEnabled || p.MaxRefinementJobs != 5 || p.MinCandidateSNRDb != 2.5 || !p.PreferGPU {
  52. t.Fatalf("unexpected policy details: %+v", p)
  53. }
  54. }