Wideband autonomous SDR analysis engine forked from sdr-visual-suite
Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.

68 rindas
1.7KB

  1. package pipeline
  2. import "testing"
  3. func TestFuseCandidatesDedup(t *testing.T) {
  4. primary := []Candidate{
  5. {
  6. ID: 1,
  7. CenterHz: 100.0e6,
  8. BandwidthHz: 20000,
  9. Evidence: []LevelEvidence{
  10. {Level: AnalysisLevel{Name: "surveillance"}},
  11. },
  12. },
  13. }
  14. derived := []Candidate{
  15. {
  16. ID: -1,
  17. CenterHz: 100.0e6 + 2000,
  18. BandwidthHz: 25000,
  19. Evidence: []LevelEvidence{
  20. {Level: AnalysisLevel{Name: "surveillance-lowres"}},
  21. },
  22. },
  23. }
  24. fused := FuseCandidates(primary, derived)
  25. if len(fused) != 1 {
  26. t.Fatalf("expected 1 fused candidate, got %d", len(fused))
  27. }
  28. if got := CandidateEvidenceLevelCount(fused[0]); got != 2 {
  29. t.Fatalf("expected 2 evidence levels after fuse, got %d", got)
  30. }
  31. if fused[0].EvidenceState == nil || !fused[0].EvidenceState.Fused || !fused[0].EvidenceState.MultiLevelConfirmed {
  32. t.Fatalf("expected fused multi-level evidence state, got %+v", fused[0].EvidenceState)
  33. }
  34. }
  35. func TestFuseCandidatesSingleVsMultiResolution(t *testing.T) {
  36. primary := []Candidate{
  37. {
  38. ID: 1,
  39. CenterHz: 101.0e6,
  40. BandwidthHz: 12000,
  41. Evidence: []LevelEvidence{
  42. {Level: AnalysisLevel{Name: "surveillance"}},
  43. },
  44. },
  45. }
  46. single := FuseCandidates(primary, nil)
  47. if len(single) != 1 {
  48. t.Fatalf("expected single-resolution to keep 1 candidate, got %d", len(single))
  49. }
  50. derived := []Candidate{
  51. {
  52. ID: -2,
  53. CenterHz: 101.3e6,
  54. BandwidthHz: 15000,
  55. Evidence: []LevelEvidence{
  56. {Level: AnalysisLevel{Name: "surveillance-lowres"}},
  57. },
  58. },
  59. }
  60. multi := FuseCandidates(primary, derived)
  61. if len(multi) != 2 {
  62. t.Fatalf("expected multi-resolution to keep 2 candidates, got %d", len(multi))
  63. }
  64. }