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  }