package service import "testing" func TestDeriveUserSegment(t *testing.T) { t.Parallel() tests := []struct { name string baselinePerDay int smokingYears float64 expectedSegment string }{ {name: "新手用户", baselinePerDay: 6, smokingYears: 1.5, expectedSegment: "newbie"}, {name: "中度用户_按日均", baselinePerDay: 12, smokingYears: 1, expectedSegment: "moderate"}, {name: "中度用户_按烟龄", baselinePerDay: 8, smokingYears: 3.2, expectedSegment: "moderate"}, {name: "重度用户_按日均", baselinePerDay: 20, smokingYears: 2, expectedSegment: "heavy"}, {name: "重度用户_按烟龄", baselinePerDay: 9, smokingYears: 10, expectedSegment: "heavy"}, } for _, tc := range tests { tc := tc t.Run(tc.name, func(t *testing.T) { t.Parallel() got := deriveUserSegment(tc.baselinePerDay, tc.smokingYears) if got != tc.expectedSegment { t.Fatalf("deriveUserSegment(%d, %.1f)=%s, want=%s", tc.baselinePerDay, tc.smokingYears, got, tc.expectedSegment) } }) } }