feat: implement embedded memo renderer

This commit is contained in:
Steven
2024-01-20 01:56:10 +08:00
parent 67f5ac3657
commit 8a34013558
18 changed files with 915 additions and 441 deletions

View File

@@ -77,3 +77,144 @@ func TestTokenize(t *testing.T) {
require.Equal(t, test.tokens, result)
}
}
func TestSplit(t *testing.T) {
tests := []struct {
tokens []*Token
sep TokenType
result [][]*Token
}{
{
tokens: []*Token{
{
Type: Asterisk,
Value: "*",
},
{
Type: Text,
Value: "Hello",
},
{
Type: Space,
Value: " ",
},
{
Type: Text,
Value: "world",
},
{
Type: ExclamationMark,
Value: "!",
},
},
sep: Asterisk,
result: [][]*Token{
{
{
Type: Text,
Value: "Hello",
},
{
Type: Space,
Value: " ",
},
{
Type: Text,
Value: "world",
},
{
Type: ExclamationMark,
Value: "!",
},
},
},
},
{
tokens: []*Token{
{
Type: Asterisk,
Value: "*",
},
{
Type: Text,
Value: "Hello",
},
{
Type: Space,
Value: " ",
},
{
Type: Text,
Value: "world",
},
{
Type: ExclamationMark,
Value: "!",
},
},
sep: Text,
result: [][]*Token{
{
{
Type: Asterisk,
Value: "*",
},
},
{
{
Type: Space,
Value: " ",
},
},
{
{
Type: ExclamationMark,
Value: "!",
},
},
},
},
{
tokens: []*Token{
{
Type: Text,
Value: "Hello",
},
{
Type: Space,
Value: " ",
},
{
Type: Text,
Value: "world",
},
{
Type: Newline,
Value: "\n",
},
},
sep: Newline,
result: [][]*Token{
{
{
Type: Text,
Value: "Hello",
},
{
Type: Space,
Value: " ",
},
{
Type: Text,
Value: "world",
},
},
},
},
}
for _, test := range tests {
result := Split(test.tokens, test.sep)
require.Equal(t, test.result, result)
}
}