package briefing import "testing" func TestWindDirectionLabelUsesSixteenPointCompass(t *testing.T) { tests := []struct { name string degrees *float64 want string }{ {name: "nil", degrees: nil, want: ""}, {name: "north", degrees: floatPtr(0), want: "N"}, {name: "below first boundary", degrees: floatPtr(11.24), want: "N"}, {name: "at first boundary", degrees: floatPtr(11.25), want: "NNE"}, {name: "northeast", degrees: floatPtr(45), want: "NE"}, {name: "south", degrees: floatPtr(180), want: "S"}, {name: "wrap to north", degrees: floatPtr(348.75), want: "N"}, {name: "full rotation", degrees: floatPtr(360), want: "N"}, {name: "negative normalizes", degrees: floatPtr(-45), want: "NW"}, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { if got := windDirectionLabel(tt.degrees); got != tt.want { t.Fatalf("windDirectionLabel(%v) = %q, want %q", tt.degrees, got, tt.want) } }) } } func TestWindDirectionTextLabelUsesLowercaseCompassText(t *testing.T) { tests := []struct { name string degrees *float64 want string }{ {name: "nil", degrees: nil, want: ""}, {name: "north", degrees: floatPtr(0), want: "north"}, {name: "north northeast", degrees: floatPtr(11.25), want: "north-northeast"}, {name: "northwest", degrees: floatPtr(315), want: "northwest"}, {name: "negative normalizes", degrees: floatPtr(-45), want: "northwest"}, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { if got := windDirectionTextLabel(tt.degrees); got != tt.want { t.Fatalf("windDirectionTextLabel(%v) = %q, want %q", tt.degrees, got, tt.want) } }) } }