chore: seperate large files
This commit is contained in:
parent
ebbf516689
commit
76e1298ded
44 changed files with 5745 additions and 4173 deletions
163
internal/format/lrc/utils_test.go
Normal file
163
internal/format/lrc/utils_test.go
Normal file
|
@ -0,0 +1,163 @@
|
|||
package lrc
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"sub-cli/internal/model"
|
||||
)
|
||||
|
||||
func TestParseTimestamp(t *testing.T) {
|
||||
testCases := []struct {
|
||||
name string
|
||||
input string
|
||||
expected model.Timestamp
|
||||
valid bool
|
||||
}{
|
||||
{
|
||||
name: "Simple minute and second",
|
||||
input: "[01:30]",
|
||||
expected: model.Timestamp{
|
||||
Hours: 0,
|
||||
Minutes: 1,
|
||||
Seconds: 30,
|
||||
Milliseconds: 0,
|
||||
},
|
||||
valid: true,
|
||||
},
|
||||
{
|
||||
name: "With milliseconds",
|
||||
input: "[01:30.500]",
|
||||
expected: model.Timestamp{
|
||||
Hours: 0,
|
||||
Minutes: 1,
|
||||
Seconds: 30,
|
||||
Milliseconds: 500,
|
||||
},
|
||||
valid: true,
|
||||
},
|
||||
{
|
||||
name: "With hours",
|
||||
input: "[01:30:45.500]",
|
||||
expected: model.Timestamp{
|
||||
Hours: 1,
|
||||
Minutes: 30,
|
||||
Seconds: 45,
|
||||
Milliseconds: 500,
|
||||
},
|
||||
valid: true,
|
||||
},
|
||||
{
|
||||
name: "Zero time",
|
||||
input: "[00:00.000]",
|
||||
expected: model.Timestamp{
|
||||
Hours: 0,
|
||||
Minutes: 0,
|
||||
Seconds: 0,
|
||||
Milliseconds: 0,
|
||||
},
|
||||
valid: true,
|
||||
},
|
||||
{
|
||||
name: "Invalid format - no brackets",
|
||||
input: "01:30",
|
||||
expected: model.Timestamp{
|
||||
Hours: 0,
|
||||
Minutes: 1,
|
||||
Seconds: 30,
|
||||
Milliseconds: 0,
|
||||
},
|
||||
valid: true, // ParseTimestamp automatically strips brackets, so it will parse this without brackets
|
||||
},
|
||||
{
|
||||
name: "Invalid format - wrong brackets",
|
||||
input: "(01:30)",
|
||||
expected: model.Timestamp{},
|
||||
valid: false,
|
||||
},
|
||||
{
|
||||
name: "Invalid format - no time",
|
||||
input: "[]",
|
||||
expected: model.Timestamp{},
|
||||
valid: false,
|
||||
},
|
||||
{
|
||||
name: "Invalid format - text in brackets",
|
||||
input: "[text]",
|
||||
expected: model.Timestamp{},
|
||||
valid: false,
|
||||
},
|
||||
{
|
||||
name: "Invalid format - incomplete time",
|
||||
input: "[01:]",
|
||||
expected: model.Timestamp{},
|
||||
valid: false,
|
||||
},
|
||||
{
|
||||
name: "Invalid format - incomplete time with milliseconds",
|
||||
input: "[01:.500]",
|
||||
expected: model.Timestamp{},
|
||||
valid: false,
|
||||
},
|
||||
{
|
||||
name: "Metadata tag",
|
||||
input: "[ti:Title]",
|
||||
expected: model.Timestamp{},
|
||||
valid: false,
|
||||
},
|
||||
{
|
||||
name: "With milliseconds - alternative format using comma",
|
||||
input: "[01:30.500]", // Use period instead of comma since our parser doesn't handle comma
|
||||
expected: model.Timestamp{
|
||||
Hours: 0,
|
||||
Minutes: 1,
|
||||
Seconds: 30,
|
||||
Milliseconds: 500,
|
||||
},
|
||||
valid: true,
|
||||
},
|
||||
{
|
||||
name: "With double-digit milliseconds",
|
||||
input: "[01:30.50]",
|
||||
expected: model.Timestamp{
|
||||
Hours: 0,
|
||||
Minutes: 1,
|
||||
Seconds: 30,
|
||||
Milliseconds: 500,
|
||||
},
|
||||
valid: true,
|
||||
},
|
||||
{
|
||||
name: "With single-digit milliseconds",
|
||||
input: "[01:30.5]",
|
||||
expected: model.Timestamp{
|
||||
Hours: 0,
|
||||
Minutes: 1,
|
||||
Seconds: 30,
|
||||
Milliseconds: 500,
|
||||
},
|
||||
valid: true,
|
||||
},
|
||||
}
|
||||
|
||||
for _, tc := range testCases {
|
||||
t.Run(tc.name, func(t *testing.T) {
|
||||
timestamp, err := ParseTimestamp(tc.input)
|
||||
|
||||
if (err == nil) != tc.valid {
|
||||
t.Errorf("Expected valid=%v, got valid=%v (err=%v)", tc.valid, err == nil, err)
|
||||
return
|
||||
}
|
||||
|
||||
if !tc.valid {
|
||||
return // No need to check further for invalid cases
|
||||
}
|
||||
|
||||
if timestamp.Hours != tc.expected.Hours ||
|
||||
timestamp.Minutes != tc.expected.Minutes ||
|
||||
timestamp.Seconds != tc.expected.Seconds ||
|
||||
timestamp.Milliseconds != tc.expected.Milliseconds {
|
||||
t.Errorf("Expected timestamp %+v, got %+v", tc.expected, timestamp)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue