102 lines
1.9 KiB
V
102 lines
1.9 KiB
V
module paramsparser
|
|
|
|
fn test_parse_list() ! {
|
|
mut params := parse("list0: 'Apple'")!
|
|
|
|
// Test parsing lists with single string item
|
|
mut fruit_list := [
|
|
"list0: 'Apple'",
|
|
'list1: Apple',
|
|
'list2:Apple',
|
|
'list3: Apple ',
|
|
]
|
|
|
|
for i, param in fruit_list {
|
|
params = parse(param)!
|
|
assert params == Params{
|
|
params: [
|
|
Param{
|
|
key: 'list${i}'
|
|
value: 'Apple'
|
|
comment: ''
|
|
},
|
|
]
|
|
args: []
|
|
comments: []
|
|
}
|
|
}
|
|
|
|
// Test parsing lists with multiple string items
|
|
fruit_list = [
|
|
'list0: Apple, Banana',
|
|
'list1: Apple ,Banana',
|
|
'list2: Apple , Banana',
|
|
'list3: Apple , Banana',
|
|
"list4: 'Apple', Banana",
|
|
"list5: Apple, 'Banana'",
|
|
"list6: 'Apple', 'Banana'",
|
|
]
|
|
|
|
for i, param in fruit_list {
|
|
params = parse(param)!
|
|
assert params == Params{
|
|
params: [
|
|
Param{
|
|
key: 'list${i}'
|
|
value: 'Apple,Banana'
|
|
comment: ''
|
|
},
|
|
]
|
|
args: []
|
|
comments: []
|
|
}
|
|
}
|
|
|
|
// Test parsing lists with multi-word items
|
|
fruit_list = [
|
|
'list0: Apple, "Dragon Fruit", "Passion Fruit"',
|
|
'list1: "Apple", "Dragon Fruit", "Passion Fruit"',
|
|
"list2: Apple, 'Dragon Fruit', 'Passion Fruit'",
|
|
"list3: 'Apple', 'Dragon Fruit', 'Passion Fruit'",
|
|
]
|
|
|
|
for i, param in fruit_list {
|
|
params = parse(param)!
|
|
assert params == Params{
|
|
params: [
|
|
Param{
|
|
key: 'list${i}'
|
|
value: 'Apple,"Dragon Fruit","Passion Fruit"'
|
|
comment: ''
|
|
},
|
|
]
|
|
args: []
|
|
comments: []
|
|
}
|
|
}
|
|
|
|
// // test parsing lists in square brackets
|
|
// params = parse("list1: ['Kiwi']")!
|
|
// assert params == Params{
|
|
// params: [Param{
|
|
// key: 'list1'
|
|
// value: "['Kiwi']"
|
|
// comment: ''
|
|
// }]
|
|
// args: []
|
|
// comments: []
|
|
// }
|
|
// params = parse("list2: 'Apple', 'Banana'")!
|
|
// assert params == Params{
|
|
// params: [
|
|
// Param{
|
|
// key: 'list2'
|
|
// value: "['Apple', 'Banana']"
|
|
// comment: ''
|
|
// },
|
|
// ]
|
|
// args: []
|
|
// comments: []
|
|
// }
|
|
}
|