1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 package proto
25
26 import "testing"
27
28 func TestUnQuoteCases(t *testing.T) {
29 singleQuoteRune := rune('\'')
30 for i, each := range []struct {
31 input, output string
32 quoteRune rune
33 }{
34 {"thanos", "thanos", doubleQuoteRune},
35 {"`bucky`", "`bucky`", doubleQuoteRune},
36 {"'nat", "'nat", doubleQuoteRune},
37 {"'bruce'", "bruce", singleQuoteRune},
38 {"\"tony\"", "tony", doubleQuoteRune},
39 {"\"'\"\"' -> \"\"\"\"\"\"", `'""' -> """""`, doubleQuoteRune},
40 {`"''"`, "''", doubleQuoteRune},
41 {"''", "", singleQuoteRune},
42 {"", "", doubleQuoteRune},
43 } {
44 got, gotRune := unQuote(each.input)
45 if gotRune != each.quoteRune {
46 t.Errorf("[%d] got [%v] want [%v]", i, gotRune, each.quoteRune)
47 }
48 want := each.output
49 if got != want {
50 t.Errorf("[%d] got [%s] want [%s]", i, got, want)
51 }
52 }
53 }
54
55 func TestIsNumber(t *testing.T) {
56 for i, each := range []struct {
57 input string
58 isNumber bool
59 }{
60 {`1`, true},
61 {`1.2`, true},
62 {`-1.02`, true},
63 {`a1`, false},
64 {`0x12`, true},
65 {`0X77777`, true},
66 } {
67 got := isNumber(each.input)
68 if got != each.isNumber {
69 t.Errorf("[%d] got [%v] want [%v]", i, got, each.isNumber)
70 }
71 }
72 }
73
View as plain text