|
- package pipeline
-
- import "testing"
-
- func TestMonitorWindowStatsAttribution(t *testing.T) {
- policy := Policy{
- MonitorWindows: finalizeMonitorWindows([]MonitorWindow{
- {Label: "wide", StartHz: 100, EndHz: 300, SpanHz: 200},
- {Label: "narrow", StartHz: 150, EndHz: 250, SpanHz: 100},
- }),
- MinCandidateSNRDb: 5,
- MaxRefinementJobs: 5,
- }
- candidates := []Candidate{
- {ID: 1, CenterHz: 160, BandwidthHz: 10, SNRDb: 8},
- {ID: 2, CenterHz: 260, BandwidthHz: 10, SNRDb: 2},
- {ID: 3, CenterHz: 500, BandwidthHz: 10, SNRDb: 12},
- }
- plan := BuildRefinementPlan(candidates, policy)
- if plan.DroppedByMonitor != 1 {
- t.Fatalf("expected 1 dropped by monitor, got %d", plan.DroppedByMonitor)
- }
- if len(plan.MonitorWindowStats) != 2 {
- t.Fatalf("expected 2 window stats, got %d", len(plan.MonitorWindowStats))
- }
- var wide, narrow *MonitorWindowStats
- for i := range plan.MonitorWindowStats {
- stat := &plan.MonitorWindowStats[i]
- switch stat.Label {
- case "wide":
- wide = stat
- case "narrow":
- narrow = stat
- }
- }
- if wide == nil || narrow == nil {
- t.Fatalf("expected both window stats to be present")
- }
- if wide.Candidates != 2 || wide.Planned != 1 || wide.Dropped != 1 {
- t.Fatalf("unexpected wide stats: %+v", *wide)
- }
- if narrow.Candidates != 1 || narrow.Planned != 1 || narrow.Dropped != 0 {
- t.Fatalf("unexpected narrow stats: %+v", *narrow)
- }
- }
|