Just use struct literals.

This commit is contained in:
David Grant 2024-06-21 08:35:02 -07:00
parent c984516edb
commit 09df750de7

View File

@ -316,38 +316,31 @@ func TestNumber1epExc(t *testing.T) {
} }
func TestNumberSeparators(t *testing.T) { func TestNumberSeparators(t *testing.T) {
type numcase struct { for _, c := range []struct {
input string input string
err string err string
tokens Tokens tokens Tokens
} }{
mknumcase := func(input string, err string, tokens Tokens) numcase { {"123_456", "", Tokens{{kind: tokenNumber, data: "123456"}}},
return numcase{input, err, tokens} {"1_750_000", "", Tokens{{kind: tokenNumber, data: "1750000"}}},
} {"1_2_3", "", Tokens{{kind: tokenNumber, data: "123"}}},
for _, c := range [...]numcase{ {"3.141_592", "", Tokens{{kind: tokenNumber, data: "3.141592"}}},
mknumcase("123_456", "", Tokens{{kind: tokenNumber, data: "123456"}}), {"01_100", "", Tokens{{kind: tokenNumber, data: "0"}, {kind: tokenNumber, data: "1100"}}},
mknumcase("1_750_000", "", Tokens{{kind: tokenNumber, data: "1750000"}}), {"1_200.0", "", Tokens{{kind: tokenNumber, data: "1200.0"}}},
mknumcase("1_2_3", "", Tokens{{kind: tokenNumber, data: "123"}}), {"0e1_01", "", Tokens{{kind: tokenNumber, data: "0e101"}}},
mknumcase("3.141_592", "", Tokens{{kind: tokenNumber, data: "3.141592"}}), {"10_10e3", "", Tokens{{kind: tokenNumber, data: "1010e3"}}},
mknumcase("01_100", "", Tokens{ {"2_3e1_2", "", Tokens{{kind: tokenNumber, data: "23e12"}}},
{kind: tokenNumber, data: "0"}, {"1.1_2e100", "", Tokens{{kind: tokenNumber, data: "1.12e100"}}},
{kind: tokenNumber, data: "1100"}, {"1.1e-10_1", "", Tokens{{kind: tokenNumber, data: "1.1e-101"}}},
}), {"9.109_383_56e-31", "", Tokens{{kind: tokenNumber, data: "9.10938356e-31"}}},
mknumcase("1_200.0", "", Tokens{{kind: tokenNumber, data: "1200.0"}}), {"123456_!", "snippet:1:8 Couldn't lex number, junk after '_': '!'", Tokens{}},
mknumcase("0e1_01", "", Tokens{{kind: tokenNumber, data: "0e101"}}), {"123__456", "snippet:1:5 Couldn't lex number, multiple consecutive _'s", Tokens{}},
mknumcase("10_10e3", "", Tokens{{kind: tokenNumber, data: "1010e3"}}), {"1_200_.0", "snippet:1:7 Couldn't lex number, junk after '_': '.'", Tokens{}},
mknumcase("2_3e1_2", "", Tokens{{kind: tokenNumber, data: "23e12"}}), {"1_200._0", "snippet:1:7 Couldn't lex number, junk after decimal point: '_'", Tokens{}},
mknumcase("1.1_2e100", "", Tokens{{kind: tokenNumber, data: "1.12e100"}}), {"1_200_e2", "snippet:1:7 Couldn't lex number, junk after '_': 'e'", Tokens{}},
mknumcase("1.1e-10_1", "", Tokens{{kind: tokenNumber, data: "1.1e-101"}}), {"1_200e_2", "snippet:1:7 Couldn't lex number, junk after 'E': '_'", Tokens{}},
mknumcase("9.109_383_56e-31", "", Tokens{{kind: tokenNumber, data: "9.10938356e-31"}}), {"200e-_2", "snippet:1:6 Couldn't lex number, junk after exponent sign: '_'", Tokens{}},
mknumcase("123456_!", "snippet:1:8 Couldn't lex number, junk after '_': '!'", Tokens{}), {"200e+_2", "snippet:1:6 Couldn't lex number, junk after exponent sign: '_'", Tokens{}},
mknumcase("123__456", "snippet:1:5 Couldn't lex number, multiple consecutive _'s", Tokens{}),
mknumcase("1_200_.0", "snippet:1:7 Couldn't lex number, junk after '_': '.'", Tokens{}),
mknumcase("1_200._0", "snippet:1:7 Couldn't lex number, junk after decimal point: '_'", Tokens{}),
mknumcase("1_200_e2", "snippet:1:7 Couldn't lex number, junk after '_': 'e'", Tokens{}),
mknumcase("1_200e_2", "snippet:1:7 Couldn't lex number, junk after 'E': '_'", Tokens{}),
mknumcase("200e-_2", "snippet:1:6 Couldn't lex number, junk after exponent sign: '_'", Tokens{}),
mknumcase("200e+_2", "snippet:1:6 Couldn't lex number, junk after exponent sign: '_'", Tokens{}),
} { } {
t.Run(fmt.Sprintf("number %s", c.input), func(t *testing.T) { t.Run(fmt.Sprintf("number %s", c.input), func(t *testing.T) {
SingleTest(t, c.input, c.err, c.tokens) SingleTest(t, c.input, c.err, c.tokens)