aboutsummaryrefslogtreecommitdiff
path: root/range_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'range_test.go')
-rw-r--r--range_test.go51
1 files changed, 51 insertions, 0 deletions
diff --git a/range_test.go b/range_test.go
new file mode 100644
index 0000000..f7272ef
--- /dev/null
+++ b/range_test.go
@@ -0,0 +1,51 @@
+package awwan
+
+import (
+ "testing"
+
+ "github.com/shuLhan/share/lib/test"
+)
+
+func TestParseLineRange(t *testing.T) {
+ type testCase struct {
+ raw string
+ exp lineRange
+ }
+
+ var cases = []testCase{{
+ raw: ``,
+ }, {
+ raw: ` 1`,
+ exp: lineRange{
+ list: []linePosition{
+ {start: 1, end: 1},
+ },
+ },
+ }, {
+ raw: ` ,1,`,
+ exp: lineRange{
+ list: []linePosition{
+ {start: 1, end: 1},
+ },
+ },
+ }, {
+ raw: ` ,1,2-1,,-4,-4-6,4-6-,8-10,8-12,10-12,10-,16-,18-20`,
+ exp: lineRange{
+ list: []linePosition{
+ {start: 1, end: 1},
+ {start: 8, end: 10},
+ {start: 16, end: 0},
+ },
+ },
+ }}
+
+ var (
+ c testCase
+ got lineRange
+ )
+ for _, c = range cases {
+ got = parseLineRange(c.raw)
+ t.Logf("got.list: %+v", got.list)
+ test.Assert(t, c.raw, c.exp, got)
+ }
+}