github.com/jmigpin/editor@v1.6.0/util/parseutil/util_test.go (about) 1 package parseutil 2 3 import ( 4 "testing" 5 6 "github.com/jmigpin/editor/util/iout/iorw" 7 ) 8 9 func TestDetectVar(t *testing.T) { 10 str := "aaaa$b $cd $e" 11 if !DetectEnvVar(str, "b") { 12 t.Fatal() 13 } 14 if !DetectEnvVar(str, "cd") { 15 t.Fatal() 16 } 17 if !DetectEnvVar(str, "e") { 18 t.Fatal() 19 } 20 21 str2 := "$a" 22 if !DetectEnvVar(str2, "a") { 23 t.Fatal() 24 } 25 } 26 27 func TestAddEscapes(t *testing.T) { 28 s := "a \\b" 29 s2 := AddEscapes(s, '\\', " \\") 30 if s2 != "a\\ \\\\b" { 31 t.Fatal() 32 } 33 s3 := RemoveEscapes(s2, '\\') 34 if s3 != s { 35 t.Fatal() 36 } 37 } 38 39 func TestIndexLineColumn1(t *testing.T) { 40 s := "123\n123\n123" 41 rd := iorw.NewStringReaderAt(s) 42 l, c, err := IndexLineColumn(rd, 0) 43 if err != nil { 44 t.Fatal(err) 45 } 46 i, err := LineColumnIndex(rd, l, c) 47 if err != nil { 48 t.Fatal(err) 49 } 50 if i != 0 { 51 t.Fatal(i, rd.Max()) 52 } 53 } 54 func TestIndexLineColumn2(t *testing.T) { 55 s := "123\n123\n123" 56 rd := iorw.NewStringReaderAt(s) 57 l, c, err := IndexLineColumn(rd, rd.Max()) 58 if err != nil { 59 t.Fatal(err) 60 } 61 i, err := LineColumnIndex(rd, l, c) 62 if err != nil { 63 t.Fatal(err) 64 } 65 if i != rd.Max() { 66 t.Fatal(i, rd.Max()) 67 } 68 } 69 70 func TestLineColumnIndex1(t *testing.T) { 71 s := "123\n123\n123" 72 rw := iorw.NewStringReaderAt(s) 73 i, err := LineColumnIndex(rw, 3, 10) 74 if err != nil { 75 t.Fatal(err) 76 } 77 if i != 8 { // beginning of line 78 t.Fatal(i, rw.Max()) 79 } 80 }