Wideband autonomous SDR analysis engine forked from sdr-visual-suite
Du kannst nicht mehr als 25 Themen auswählen Themen müssen entweder mit einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.

34 Zeilen
1.2KB

  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.FFTSize != 16384 || cfg.FrameRate != 8 {
  25. t.Fatalf("surveillance not merged into legacy fields: fft=%d fps=%d", cfg.FFTSize, cfg.FrameRate)
  26. }
  27. if cfg.Resources.MaxRefinementJobs != 20 {
  28. t.Fatalf("resources not merged: %+v", cfg.Resources)
  29. }
  30. }