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.

29 wiersze
1.4KB

  1. package main
  2. import (
  3. "testing"
  4. "sdr-wideband-suite/internal/pipeline"
  5. )
  6. func TestPhaseStateCarriesPhaseResults(t *testing.T) {
  7. ps := &phaseState{
  8. surveillance: pipeline.SurveillanceResult{Level: pipeline.AnalysisLevel{Name: "surveillance"}, NoiseFloor: -90, Scheduled: []pipeline.ScheduledCandidate{{Candidate: pipeline.Candidate{ID: 1}, Priority: 5}}},
  9. refinement: pipeline.RefinementStep{
  10. Input: pipeline.RefinementInput{Scheduled: []pipeline.ScheduledCandidate{{Candidate: pipeline.Candidate{ID: 1}, Priority: 5}}, SampleRate: 2048000, FFTSize: 2048, CenterHz: 7.1e6},
  11. Result: pipeline.RefinementResult{Level: pipeline.AnalysisLevel{Name: "refinement"}, Decisions: []pipeline.SignalDecision{{ShouldRecord: true}}, Candidates: []pipeline.Candidate{{ID: 1}}},
  12. },
  13. arbitration: arbitrationState{Queue: decisionQueueStats{RecordQueued: 1}},
  14. presentation: pipeline.AnalysisLevel{Name: "presentation"},
  15. }
  16. if ps.surveillance.NoiseFloor != -90 || len(ps.surveillance.Scheduled) != 1 {
  17. t.Fatalf("unexpected surveillance state: %+v", ps.surveillance)
  18. }
  19. if len(ps.refinement.Input.Scheduled) != 1 || ps.refinement.Input.SampleRate != 2048000 {
  20. t.Fatalf("unexpected refinement input: %+v", ps.refinement.Input)
  21. }
  22. if len(ps.refinement.Result.Decisions) != 1 || !ps.refinement.Result.Decisions[0].ShouldRecord || len(ps.refinement.Result.Candidates) != 1 {
  23. t.Fatalf("unexpected refinement state: %+v", ps.refinement.Result)
  24. }
  25. }