mirror of
https://github.com/VictoriaMetrics/VictoriaMetrics.git
synced 2024-11-21 14:44:00 +00:00
71 lines
1.2 KiB
Go
71 lines
1.2 KiB
Go
|
package unittest
|
||
|
|
||
|
import (
|
||
|
"reflect"
|
||
|
"testing"
|
||
|
)
|
||
|
|
||
|
func TestParseInputValue(t *testing.T) {
|
||
|
testCases := []struct {
|
||
|
input string
|
||
|
exp []sequenceValue
|
||
|
failed bool
|
||
|
}{
|
||
|
{
|
||
|
"",
|
||
|
nil,
|
||
|
true,
|
||
|
},
|
||
|
{
|
||
|
"testfailed",
|
||
|
nil,
|
||
|
true,
|
||
|
},
|
||
|
{
|
||
|
"-4",
|
||
|
[]sequenceValue{{Value: -4}},
|
||
|
false,
|
||
|
},
|
||
|
{
|
||
|
"_",
|
||
|
[]sequenceValue{{Omitted: true}},
|
||
|
false,
|
||
|
},
|
||
|
{
|
||
|
"-4x1",
|
||
|
[]sequenceValue{{Value: -4}, {Value: -4}},
|
||
|
false,
|
||
|
},
|
||
|
{
|
||
|
"_x1",
|
||
|
[]sequenceValue{{Omitted: true}},
|
||
|
false,
|
||
|
},
|
||
|
{
|
||
|
"1+1x4",
|
||
|
[]sequenceValue{{Value: 1}, {Value: 2}, {Value: 3}, {Value: 4}, {Value: 5}},
|
||
|
false,
|
||
|
},
|
||
|
{
|
||
|
"2-1x4",
|
||
|
[]sequenceValue{{Value: 2}, {Value: 1}, {Value: 0}, {Value: -1}, {Value: -2}},
|
||
|
false,
|
||
|
},
|
||
|
{
|
||
|
"1+1x1 _ -4 3+20x1",
|
||
|
[]sequenceValue{{Value: 1}, {Value: 2}, {Omitted: true}, {Value: -4}, {Value: 3}, {Value: 23}},
|
||
|
false,
|
||
|
},
|
||
|
}
|
||
|
|
||
|
for _, tc := range testCases {
|
||
|
output, err := parseInputValue(tc.input, true)
|
||
|
if err != nil != tc.failed {
|
||
|
t.Fatalf("failed to parse %s, expect %t, got %t", tc.input, tc.failed, err != nil)
|
||
|
}
|
||
|
if !reflect.DeepEqual(tc.exp, output) {
|
||
|
t.Fatalf("expect %v, got %v", tc.exp, output)
|
||
|
}
|
||
|
}
|
||
|
}
|