Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update alternate words through 2025-01-15 #485

Merged
merged 1 commit into from
Jan 16, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions pkg/parser/alphacheck_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,18 @@ func TestParserAlphaCheck(t *testing.T) {
Callsign: "hornet 1 2",
},
},
{
text: TestCallsign + ", Gunmetal 2-1, AlphaJack, Bullseye.",
expected: &brevity.AlphaCheckRequest{
Callsign: "gunmetal 2 1",
},
},
{
text: TestCallsign + " Eagle 11, AlphaJuck.",
expected: &brevity.AlphaCheckRequest{
Callsign: "eagle 1 1",
},
},
}
runParserTestCases(t, New(TestCallsign, true), testCases, func(t *testing.T, test parserTestCase, request any) {
t.Helper()
Expand Down
208 changes: 54 additions & 154 deletions pkg/parser/bogeydope_test.go
Original file line number Diff line number Diff line change
@@ -1,12 +1,23 @@
package parser

import (
"fmt"
"testing"

"github.com/dharmab/skyeye/pkg/brevity"
"github.com/stretchr/testify/require"
)

func simpleBogeyDopeTestCase(tail string) parserTestCase {
return parserTestCase{
text: fmt.Sprintf("%s, eagle 1-1, %s", TestCallsign, tail),
expected: &brevity.BogeyDopeRequest{
Callsign: "eagle 1 1",
Filter: brevity.Aircraft,
},
}
}

func TestParserBogeyDope(t *testing.T) {
t.Parallel()
testCases := []parserTestCase{
Expand Down Expand Up @@ -45,41 +56,11 @@ func TestParserBogeyDope(t *testing.T) {
Filter: brevity.Aircraft,
},
},
{
text: TestCallsign + ", Gunfighter 2-1, request 'BOGIDOPE",
expected: &brevity.BogeyDopeRequest{
Callsign: "gunfighter 2 1",
Filter: brevity.Aircraft,
},
},
{
text: TestCallsign + ", REVA 1-3, POGGY DOPE.",
expected: &brevity.BogeyDopeRequest{
Callsign: "reva 1 3",
Filter: brevity.Aircraft,
},
},
{
text: TestCallsign + ", MAKO, POGY",
expected: &brevity.BogeyDopeRequest{
Callsign: "mako",
Filter: brevity.Aircraft,
},
},
{
text: TestCallsign + ", MAKO 1-1, request POGGY DOPE",
expected: &brevity.BogeyDopeRequest{
Callsign: "mako 1 1",
Filter: brevity.Aircraft,
},
},
{
text: TestCallsign + " Viper11 BuggyDoke.",
expected: &brevity.BogeyDopeRequest{
Callsign: "viper 1 1",
Filter: brevity.Aircraft,
},
},
simpleBogeyDopeTestCase("request 'BOGIDOPE"),
simpleBogeyDopeTestCase("request 'POGGY DOPE."),
simpleBogeyDopeTestCase("POGY"),
simpleBogeyDopeTestCase("request POGGY DOPE"),
simpleBogeyDopeTestCase("request BuggyDoke."),
{
text: TestCallsign + ", HORNET, 1, 2, BOGGID, 2.",
expected: &brevity.BogeyDopeRequest{
Expand All @@ -101,62 +82,20 @@ func TestParserBogeyDope(t *testing.T) {
Filter: brevity.Aircraft,
},
},
{
text: TestCallsign + ", Viking31, request POGIDOP.",
expected: &brevity.BogeyDopeRequest{
Callsign: "viking 3 1",
Filter: brevity.Aircraft,
},
},
{
text: TestCallsign + ", Waking Free 1, request to log it up.",
expected: &brevity.BogeyDopeRequest{
Callsign: "waking 3 1",
Filter: brevity.Aircraft,
},
},
{
text: TestCallsign + " HUD 13, PUGGY DOPE.",
expected: &brevity.BogeyDopeRequest{
Callsign: "hud 1 3",
Filter: brevity.Aircraft,
},
},
{
text: TestCallsign + " Mage 1-2, Bugga Dope.",
expected: &brevity.BogeyDopeRequest{
Callsign: "mage 1 2",
Filter: brevity.Aircraft,
},
},
simpleBogeyDopeTestCase("request POGIDOP."),
simpleBogeyDopeTestCase("request to log it up."),
simpleBogeyDopeTestCase("PUGGY DOPE."),
simpleBogeyDopeTestCase("Bugga Dope."),
{
text: TestCallsign + " serpent, 6/8, BUBBYDO.",
expected: &brevity.BogeyDopeRequest{
Callsign: "serpent 6 8",
Filter: brevity.Aircraft,
},
},
{
text: TestCallsign + " REBEL 1-1, POGADO.",
expected: &brevity.BogeyDopeRequest{
Callsign: "rebel 1 1",
Filter: brevity.Aircraft,
},
},
{
text: TestCallsign + " REBEL 1-1, POGY-DO.",
expected: &brevity.BogeyDopeRequest{
Callsign: "rebel 1 1",
Filter: brevity.Aircraft,
},
},
{
text: TestCallsign + " REBEL 1-1, POGIDO.",
expected: &brevity.BogeyDopeRequest{
Callsign: "rebel 1 1",
Filter: brevity.Aircraft,
},
},
simpleBogeyDopeTestCase("POGADO."),
simpleBogeyDopeTestCase("POGY-DO."),
simpleBogeyDopeTestCase("POGIDO."),
{
text: TestCallsign + ", Glimmer, Buggetto.",
expected: &brevity.BogeyDopeRequest{
Expand Down Expand Up @@ -195,129 +134,90 @@ func TestParserBogeyDope(t *testing.T) {
Filter: brevity.Aircraft,
},
},
{
text: TestCallsign + ", CAT1/1, request BOGUETTO.",
expected: &brevity.BogeyDopeRequest{
Callsign: "cat 1 1",
Filter: brevity.Aircraft,
},
},
{
text: TestCallsign + "Cat 1.1 request BOGUE.",
expected: &brevity.BogeyDopeRequest{
Callsign: "cat 1 1",
Filter: brevity.Aircraft,
},
},
{
text: TestCallsign + "Serptants, 6-8, Bogeydove.",
expected: &brevity.BogeyDopeRequest{
Callsign: "serptants 6 8",
Filter: brevity.Aircraft,
},
},
{
text: TestCallsign + ", Spartan 1-1, Boogitope.",
expected: &brevity.BogeyDopeRequest{
Callsign: "spartan 1 1",
Filter: brevity.Aircraft,
},
},
{
text: TestCallsign + ", COPWIPE11, BOKI NOLA.",
expected: &brevity.BogeyDopeRequest{
Callsign: "copwipe 1 1",
Filter: brevity.Aircraft,
},
},
simpleBogeyDopeTestCase("request BOGUETTO."),
simpleBogeyDopeTestCase("request BOGUE."),
simpleBogeyDopeTestCase("Bogeydove."),
simpleBogeyDopeTestCase("Boogitope."),
simpleBogeyDopeTestCase("BOKI NOLA."),
{
text: TestCallsign + ", Hornet one two, Bowie dope.",
expected: &brevity.BogeyDopeRequest{
Callsign: "hornet 1 2",
Filter: brevity.Aircraft,
},
},
{
text: TestCallsign + ", radon11, boobydope.",
expected: &brevity.BogeyDopeRequest{
Callsign: "radon 1 1",
Filter: brevity.Aircraft,
},
},
simpleBogeyDopeTestCase("boobydope."),
{
text: TestCallsign + ", stubs on one, poke it up.",
expected: &brevity.BogeyDopeRequest{
Callsign: "stubs on 1",
Filter: brevity.Aircraft,
},
},
{
text: TestCallsign + ", Hollywood 11, VOGUE IT UP!",
expected: &brevity.BogeyDopeRequest{
Callsign: "hollywood 1 1",
Filter: brevity.Aircraft,
},
},
simpleBogeyDopeTestCase("VOGUE IT UP!"),
{
text: TestCallsign + "'s far on 1-1. Buggydope.",
expected: &brevity.BogeyDopeRequest{
Callsign: "s far on 1 1",
Filter: brevity.Aircraft,
},
},
simpleBogeyDopeTestCase("poke it open."),
{
text: TestCallsign + ", copwhip11, poke it open.",
expected: &brevity.BogeyDopeRequest{
Callsign: "copwhip 1 1",
Filter: brevity.Aircraft,
},
},
{
text: TestCallsign + ", copwhip11, poke it open.",
text: TestCallsign + " who is saying one-on-one request, Buggydope.",
expected: &brevity.BogeyDopeRequest{
Callsign: "copwhip 1 1",
Callsign: "who is saying 1 1",
Filter: brevity.Aircraft,
},
},
simpleBogeyDopeTestCase("BOBBYDO."),
{
text: TestCallsign + " who is saying one-on-one request, Buggydope.",
text: TestCallsign + ", CAT11 request \"BOGI\".",
expected: &brevity.BogeyDopeRequest{
Callsign: "who is saying 1 1",
Callsign: "cat 1 1",
Filter: brevity.Aircraft,
},
},
simpleBogeyDopeTestCase("BOGUIDO, please."),
{
text: TestCallsign + ", hood 1-3, BOBBYDO.",
text: TestCallsign + ", CAT1/1 \"BOGI\"",
expected: &brevity.BogeyDopeRequest{
Callsign: "hood 1 3",
Callsign: "cat 1 1",
Filter: brevity.Aircraft,
},
},
{
text: TestCallsign + ", CAT11 request \"BOGI\".",
text: TestCallsign + ", hurry one, two. Bogeydome.",
expected: &brevity.BogeyDopeRequest{
Callsign: "cat 1 1",
Callsign: "hurry 1 2",
Filter: brevity.Aircraft,
},
},
{
text: TestCallsign + ", Voodoo11, BOGUIDO, please.",
text: TestCallsign + ", this is Bulldog 1-1, request by Vito.",
expected: &brevity.BogeyDopeRequest{
Callsign: "voodoo 1 1",
Callsign: "bulldog 1 1",
Filter: brevity.Aircraft,
},
},
{
text: TestCallsign + ", CAT1/1 \"BOGI\"",
text: fmt.Sprintf("- %s, this is TANKAN11, request boat be doped.", TestCallsign),
expected: &brevity.BogeyDopeRequest{
Callsign: "cat 1 1",
Callsign: "tankan 1 1",
Filter: brevity.Aircraft,
},
},
simpleBogeyDopeTestCase("Boogado."),
simpleBogeyDopeTestCase("VOGUY-DOPE."),
simpleBogeyDopeTestCase("Bugadoop."),
simpleBogeyDopeTestCase("Bogeynope."),
simpleBogeyDopeTestCase("doggy dope."),
simpleBogeyDopeTestCase("Povey-Dope."),
simpleBogeyDopeTestCase("Boogitup."),
{
text: TestCallsign + ", hurry one, two. Bogeydome.",
text: TestCallsign + " and eagle 1-1, BoogieDote.",
expected: &brevity.BogeyDopeRequest{
Callsign: "hurry 1 2",
Callsign: "and eagle 1 1",
Filter: brevity.Aircraft,
},
},
Expand Down
15 changes: 13 additions & 2 deletions pkg/parser/parser_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ func runParserTestCases(
t.Helper()
t.Parallel()
actual := p.Parse(test.text)
require.NotNil(t, actual)
require.IsType(t, test.expected, actual)
fn(t, test, actual)
})
Expand All @@ -43,12 +44,22 @@ func TestParserSadPaths(t *testing.T) {
text: "anyface radio check",
expected: &brevity.UnableToUnderstandRequest{},
},
{
text: "anyface eagle 1",
expected: &brevity.UnableToUnderstandRequest{
Callsign: "eagle 1",
},
},
}
runParserTestCases(
t,
New(TestCallsign, true),
testCases,
// Nothing more to do, since the type is already checked
func(*testing.T, parserTestCase, any) {},
func(t *testing.T, test parserTestCase, request any) {
t.Helper()
expected := test.expected.(*brevity.UnableToUnderstandRequest)
actual := request.(*brevity.UnableToUnderstandRequest)
require.Equal(t, expected.Callsign, actual.Callsign)
},
)
}
6 changes: 6 additions & 0 deletions pkg/parser/radiocheck_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,12 @@ func TestParserRadioCheck(t *testing.T) {
Callsign: "call me 1 2",
},
},
{
text: TestCallsign + ", EAGLE-1, RADIOTRIC",
expected: &brevity.RadioCheckRequest{
Callsign: "eagle 1",
},
},
}
runParserTestCases(t, New(TestCallsign, true), testCases, func(t *testing.T, test parserTestCase, request any) {
t.Helper()
Expand Down
Loading
Loading