-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcsv_test.go
More file actions
131 lines (116 loc) · 2.32 KB
/
csv_test.go
File metadata and controls
131 lines (116 loc) · 2.32 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
package HLS_test
import (
"fmt"
"log"
"slices"
"strings"
"testing"
"github.com/udan-jayanith/HLS"
)
func TestParseCSV(t *testing.T) {
{
list := []string{
"PROGRAM-ID=1",
"BANDWIDTH=10768000",
`CODECS="avc1.640028,mp4a.40.2"`,
"RESOLUTION=3840x2160",
}
csv := strings.Join(list, ",")
values, err := HLS.ParseCSV(csv)
if err != nil {
t.Log(values)
t.Fatal(err)
}
if slices.Compare(values, list) != 0 {
t.Fatal("Expected", list, "but got", values)
}
}
{
list := []string{
"PROGRAM-ID=1",
"BANDWIDTH=10768000",
`CODECS="avc1.640028,mp4a.40.2",`,
"RESOLUTION=3840x2160",
}
csv := strings.Join(list, ",")
if _, err := HLS.ParseCSV(csv); err == nil {
t.Fatal("Expected a error but got no error")
}
}
{
values, err := HLS.ParseCSV(`
Enumerated-String,1240x720,"Quoted String"
`)
if err != nil {
t.Fatal(err)
}
list := []string{
"Enumerated-String",
"1240x720",
`"Quoted String"`,
}
if slices.Compare(values, list) != 0 {
t.Fatal("Expected", list, "but got", values)
}
}
{
if _, err := HLS.ParseCSV(", "); err == nil {
t.Fatal("Expected a error but got no error")
}
}
{
if _, err := HLS.ParseCSV(" ,"); err == nil {
t.Fatal("Expected a error but got no error")
}
}
{
values, err := HLS.ParseCSV("value,")
if err != nil {
t.Log("Unexpected error")
t.Fatal(err)
}
list := []string{
"value",
}
if slices.Compare(values, list) != 0 {
t.Fatal("Expected", list, "but got", values)
}
}
{
if _, err := HLS.ParseCSV(","); err == nil {
t.Fatal("Expected a error but got no error")
}
}
{
if _, err := HLS.ParseCSV(""); err == nil {
t.Fatal("Expected a error but got no error")
}
}
}
func TestCSV_String(t *testing.T) {
input := "<time>,[<title>]"
csvs, err := HLS.ParseCSV(input)
if err != nil {
t.Fatal(err)
}
if csvs.String() != input {
t.Fatal("Expected", input, "but got", csvs.String())
}
}
func ExampleParseCSV() {
// values is a type csvs []string
// csvs type contains a method called String that returns csvs as a string of comma separated value.
values, err := HLS.ParseCSV(`
Enumerated-String,1240x720,"Quoted String"
`)
if err != nil {
log.Fatal(err)
}
for _, csv := range values {
fmt.Println(csv)
}
//Output:
//Enumerated-String
//1240x720
//"Quoted String"
}