69 lines
2.1 KiB
Go
69 lines
2.1 KiB
Go
package ltc
|
|
|
|
import (
|
|
"reflect"
|
|
"testing"
|
|
)
|
|
|
|
func TestParseLRC(t *testing.T) {
|
|
lrc := `[ar:artist]
|
|
[al:album]
|
|
[ti:title]
|
|
[by:author]
|
|
[00:24.83] 天涯的尽头 有谁去过
|
|
[00:28.53] 山水优雅着 保持沉默
|
|
[00:32.20] 我们的青春却热闹很多
|
|
[00:35.38] 而且是谁都 不准偷
|
|
`
|
|
content := []string{
|
|
"天涯的尽头 有谁去过", "山水优雅着 保持沉默", "我们的青春却热闹很多", "而且是谁都 不准偷",
|
|
}
|
|
l := ParseLRC(lrc)
|
|
if l.Artist != "artist" {
|
|
t.Errorf("LRC Artist=%s, want=%s", l.Artist, "artist")
|
|
}
|
|
if l.Album != "album" {
|
|
t.Errorf("LRC Album=%s, want=%s", l.Album, "album")
|
|
}
|
|
if l.Title != "title" {
|
|
t.Errorf("LRC Title=%s, want=%s", l.Title, "title")
|
|
}
|
|
if l.Author != "author" {
|
|
t.Errorf("LRC Author=%s, want=%s", l.Author, "author")
|
|
}
|
|
lrcList := l.LrcList
|
|
index := 0
|
|
for it := lrcList.Iterator(); it.Has(); {
|
|
c := it.Next().content
|
|
if c != content[index] {
|
|
t.Errorf("LRCNode Content=%s, want=%s", c, content[index])
|
|
}
|
|
index++
|
|
|
|
}
|
|
}
|
|
|
|
func TestSplitLyric(t *testing.T) {
|
|
tests := []struct {
|
|
name string
|
|
args []string
|
|
want *LRCNode
|
|
}{
|
|
{"lrc:[00:49.88] 有一些话想 对你说", []string{"00", "49", ".88", " 有一些话想 对你说"},
|
|
&LRCNode{time: time2Millisecond(0, 49, 880), content: "有一些话想 对你说"}},
|
|
{"lrc:[00:49:88] 有一些话想 对你说", []string{"00", "49", ":88", " 有一些话想 对你说"},
|
|
&LRCNode{time: time2Millisecond(0, 49, 880), content: "有一些话想 对你说"}},
|
|
{"lrc:[00:49.880] 有一些话想 对你说", []string{"00", "49", ".880", " 有一些话想 对你说"},
|
|
&LRCNode{time: time2Millisecond(0, 49, 880), content: "有一些话想 对你说"}},
|
|
{"lrc:[00:49] 有一些话想 对你说", []string{"00", "49", " 有一些话想 对你说"},
|
|
&LRCNode{time: time2Millisecond(0, 49, 0), content: "有一些话想 对你说"}},
|
|
}
|
|
for _, tt := range tests {
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
if got := SplitLyric(tt.args); !reflect.DeepEqual(got, tt.want) {
|
|
t.Errorf("SplitLyric() = %v, want %v", got, tt.want)
|
|
}
|
|
})
|
|
}
|
|
}
|