github.com/lmorg/murex@v0.0.0-20240217211045-e081c89cd4ef/lang/expressions/parse_quote2_test.go (about) 1 package expressions 2 3 import ( 4 "testing" 5 6 "github.com/lmorg/murex/lang/expressions/symbols" 7 ) 8 9 func TestParseQuoteDouble(t *testing.T) { 10 tests := expTestsT{ 11 symbol: symbols.QuoteDouble, 12 tests: []expTestT{ 13 { 14 input: `""`, 15 expected: ``, 16 }, 17 { 18 input: `"foobar`, 19 error: true, 20 }, 21 { 22 input: `"foobar"`, 23 expected: `foobar`, 24 }, 25 { 26 input: `"foobar" `, 27 expected: `foobar`, 28 }, 29 { 30 input: ` "foobar"`, 31 expected: `foobar`, 32 pos: 1, 33 }, 34 { 35 input: ` "foobar"`, 36 expected: `foobar`, 37 pos: 2, 38 }, 39 { 40 input: ` "foobar"`, 41 expected: `foobar`, 42 pos: 3, 43 }, 44 { 45 input: "\t\"foobar\"", 46 expected: `foobar`, 47 pos: 1, 48 }, 49 { 50 input: "\t \"foobar\"", 51 expected: `foobar`, 52 pos: 2, 53 }, 54 { 55 input: "\t\t \"foobar\"", 56 expected: `foobar`, 57 pos: 4, 58 }, 59 { 60 input: ` "foobar" `, 61 expected: `foobar`, 62 pos: 2, 63 }, 64 { 65 input: `"foo bar"`, 66 expected: `foo bar`, 67 }, 68 { 69 input: `"foobar'"`, 70 expected: `foobar'`, 71 }, 72 { 73 input: `"foo-$bar-bar"`, 74 expected: `foo--bar`, 75 pos: 4, 76 }, 77 { 78 input: `"foo-$(bar)-bar"`, 79 expected: `foo--bar`, 80 pos: 6, 81 }, 82 { 83 input: `"foo-$b-bar"`, 84 expected: `foo--bar`, 85 pos: 2, 86 }, 87 { 88 input: `"foo-$(b)-bar"`, 89 expected: `foo--bar`, 90 pos: 4, 91 }, 92 { 93 input: `"foo-\$bar-bar"`, 94 expected: `foo-$bar-bar`, 95 pos: 1, 96 }, 97 { 98 input: `"foo-\$(bar)-bar"`, 99 expected: `foo-$(bar)-bar`, 100 pos: 1, 101 }, 102 { 103 input: `"\foo-\$bar-\bar"`, 104 expected: `foo-$bar-bar`, 105 pos: 3, 106 }, 107 { 108 input: `"foo-@bar-bar"`, 109 expected: `foo-@bar-bar`, 110 }, 111 { 112 input: `"\s"`, 113 expected: " ", 114 pos: 1, 115 }, 116 { 117 input: `"\t"`, 118 expected: "\t", 119 pos: 1, 120 }, 121 { 122 input: `"\r"`, 123 expected: "\r", 124 pos: 1, 125 }, 126 { 127 input: `"\n"`, 128 expected: "\n", 129 pos: 1, 130 }, 131 }, 132 } 133 134 testParserSymbol(t, tests) 135 }