fix(11-01): update hardcoded count assertions to reflect 35 traffic classes

- Rename TestNewBankHas14Layers to TestNewBankHasAllLayers, use len(classify.AllClasses())
- Update config_test.go: replace 4 hardcoded 14 counts with len(classify.AllClasses())
- Update TestPrintConfigContainsAllClasses: replace hardcoded list with AllClasses() loop
- Update classifier_test.go: change TestAllClassesCount want from 32 to 35
This commit is contained in:
2026-03-27 16:31:26 +01:00
parent 1556ce83e9
commit 35d8915e41
3 changed files with 17 additions and 22 deletions
+2 -2
View File
@@ -457,8 +457,8 @@ func TestClassify(t *testing.T) {
func TestAllClassesCount(t *testing.T) { func TestAllClassesCount(t *testing.T) {
classes := classify.AllClasses() classes := classify.AllClasses()
if len(classes) != 32 { if len(classes) != 35 {
t.Errorf("AllClasses() returned %d classes, want 32", len(classes)) t.Errorf("AllClasses() returned %d classes, want 35", len(classes))
} }
// No plain "unknown" should exist // No plain "unknown" should exist
for _, c := range classes { for _, c := range classes {
+12 -17
View File
@@ -117,8 +117,8 @@ func TestLoadNoConfig(t *testing.T) {
t.Fatalf("Load with no config: %v", err) t.Fatalf("Load with no config: %v", err)
} }
cfgs := result.FreqCfgs cfgs := result.FreqCfgs
if len(cfgs) != 14 { if len(cfgs) != len(classify.AllClasses()) {
t.Errorf("result map size: got %d, want 14", len(cfgs)) t.Errorf("result map size: got %d, want %d", len(cfgs), len(classify.AllClasses()))
} }
// ICMP should be at its default BaseHz (65.0) // ICMP should be at its default BaseHz (65.0)
if cfgs[classify.ClassICMP].BaseHz != 65.0 { if cfgs[classify.ClassICMP].BaseHz != 65.0 {
@@ -146,8 +146,8 @@ func TestLoadUnknownClass(t *testing.T) {
t.Fatalf("Load with unknown class: %v", err) t.Fatalf("Load with unknown class: %v", err)
} }
cfgs := result.FreqCfgs cfgs := result.FreqCfgs
if len(cfgs) != 14 { if len(cfgs) != len(classify.AllClasses()) {
t.Errorf("result map size: got %d, want 14 (BOGUS should not appear)", len(cfgs)) t.Errorf("result map size: got %d, want %d (BOGUS should not appear)", len(cfgs), len(classify.AllClasses()))
} }
// Confirm BOGUS is NOT in the map // Confirm BOGUS is NOT in the map
if _, ok := cfgs["BOGUS"]; ok { if _, ok := cfgs["BOGUS"]; ok {
@@ -177,8 +177,8 @@ func TestLoadAllDefaultsPresent(t *testing.T) {
t.Fatalf("Load: %v", err) t.Fatalf("Load: %v", err)
} }
cfgs := result.FreqCfgs cfgs := result.FreqCfgs
if len(cfgs) != 14 { if len(cfgs) != len(classify.AllClasses()) {
t.Errorf("result map size: got %d, want 14", len(cfgs)) t.Errorf("result map size: got %d, want %d", len(cfgs), len(classify.AllClasses()))
} }
for _, class := range classify.AllClasses() { for _, class := range classify.AllClasses() {
if _, ok := cfgs[class]; !ok { if _, ok := cfgs[class]; !ok {
@@ -396,7 +396,7 @@ class = "MyDeterministicClass"
// --- PrintConfig tests --- // --- PrintConfig tests ---
// TestPrintConfigContainsAllClasses: defaults LoadResult produces output with all 14 class names. // TestPrintConfigContainsAllClasses: defaults LoadResult produces output with all class names.
func TestPrintConfigContainsAllClasses(t *testing.T) { func TestPrintConfigContainsAllClasses(t *testing.T) {
t.Chdir(t.TempDir()) t.Chdir(t.TempDir())
result, err := config.Load("") result, err := config.Load("")
@@ -404,14 +404,9 @@ func TestPrintConfigContainsAllClasses(t *testing.T) {
t.Fatalf("Load: %v", err) t.Fatalf("Load: %v", err)
} }
output := config.PrintConfig(result) output := config.PrintConfig(result)
classNames := []string{ for _, cls := range classify.AllClasses() {
"ICMP", "DNS", "HTTPS", "HTTP", "SSH", "SMTP", if !strings.Contains(output, string(cls)) {
"NTP", "DHCP", "other-TCP", "other-UDP", t.Errorf("PrintConfig output missing class %q", cls)
"unknown-1", "unknown-2", "unknown-3", "unknown-4",
}
for _, name := range classNames {
if !strings.Contains(output, name) {
t.Errorf("PrintConfig output missing class %q", name)
} }
} }
} }
@@ -614,8 +609,8 @@ func TestLoadNoConfigReturnsLoadResult(t *testing.T) {
if err != nil { if err != nil {
t.Fatalf("Load: %v", err) t.Fatalf("Load: %v", err)
} }
if len(result.FreqCfgs) != 14 { if len(result.FreqCfgs) != len(classify.AllClasses()) {
t.Errorf("FreqCfgs len: got %d, want 14", len(result.FreqCfgs)) t.Errorf("FreqCfgs len: got %d, want %d", len(result.FreqCfgs), len(classify.AllClasses()))
} }
if len(result.UserRules) != 0 { if len(result.UserRules) != 0 {
t.Errorf("UserRules len: got %d, want 0", len(result.UserRules)) t.Errorf("UserRules len: got %d, want 0", len(result.UserRules))
+3 -3
View File
@@ -7,10 +7,10 @@ import (
"github.com/netsynth/netsynth/classify" "github.com/netsynth/netsynth/classify"
) )
func TestNewBankHas14Layers(t *testing.T) { func TestNewBankHasAllLayers(t *testing.T) {
b := NewBank(1.0, ClassFreqConfigs) b := NewBank(1.0, ClassFreqConfigs)
if len(b.layers) != 14 { if len(b.layers) != len(classify.AllClasses()) {
t.Errorf("NewBank() has %d layers, want 14", len(b.layers)) t.Errorf("NewBank() has %d layers, want %d", len(b.layers), len(classify.AllClasses()))
} }
// Verify each class has exactly one layer // Verify each class has exactly one layer
for _, class := range classify.AllClasses() { for _, class := range classify.AllClasses() {