package pipeline import ( "testing" "sdr-wideband-suite/internal/classifier" ) func TestDecideSignalAction(t *testing.T) { policy := Policy{AutoRecordClasses: []string{"WFM"}, AutoDecodeClasses: []string{"RDS", "WFM"}} cls := &classifier.Classification{ModType: classifier.ClassWFM} decision := DecideSignalAction(policy, Candidate{ID: 1, Hint: "WFM"}, cls) if !decision.ShouldRecord { t.Fatalf("expected record decision") } if !decision.ShouldAutoDecode { t.Fatalf("expected auto decode decision") } } func TestDecideSignalActionUsesHintWithoutClass(t *testing.T) { policy := Policy{AutoRecordClasses: []string{"WFM"}, AutoDecodeClasses: []string{"FT8"}} decision := DecideSignalAction(policy, Candidate{ID: 2, Hint: "WFM"}, nil) if !decision.ShouldRecord { t.Fatalf("expected record decision from hint") } if decision.ShouldAutoDecode { t.Fatalf("unexpected auto decode decision from hint") } if decision.Reason == "" { t.Fatalf("expected reason for hint-based decision") } }