github.com/lmorg/murex@v0.0.0-20240217211045-e081c89cd4ef/builtins/core/expressions/expressions_test.go (about) 1 package expressions_test 2 3 import ( 4 "testing" 5 6 _ "github.com/lmorg/murex/builtins" 7 "github.com/lmorg/murex/test" 8 ) 9 10 func TestExpressionsBuiltin(t *testing.T) { 11 tests := []test.MurexTest{ 12 { 13 Block: `TestExpressionsBuiltin0=1+1+1+1+1+1+1+1+1+1`, 14 Stdout: ``, 15 }, 16 { 17 Block: `null;TestExpressionsBuiltin0=1+1+1+1+1+1+1+1+1+1`, 18 Stdout: ``, 19 }, 20 { 21 Block: `null;TestExpressionsBuiltin1=(1+1+1+1+1+1+1+1+1+1)`, 22 Stdout: ``, 23 }, 24 { 25 Block: `TestExpressionsBuiltin2=1+1+1+1+1+1+1+1+1+1;null`, 26 Stdout: ``, 27 }, 28 { 29 Block: `TestExpressionsBuiltin3=(1+1+1+1+1+1+1+1+1+1);null`, 30 Stdout: ``, 31 }, 32 { 33 Block: `null;TestExpressionsBuiltin4=1+1+1+1+1+1+1+1+1+1;null`, 34 Stdout: ``, 35 }, 36 { 37 Block: `null;TestExpressionsBuiltin5=(1+1+1+1+1+1+1+1+1+1);null`, 38 Stdout: ``, 39 }, 40 { 41 Block: `null;TestExpressionsBuiltin6=1+1+1+1+(1+1)+1+1+1+1;null`, 42 Stdout: ``, 43 }, 44 { 45 Block: `null;TestExpressionsBuiltin7=(1+1+1+1+(1+1)+1+1+1+1);null`, 46 Stdout: ``, 47 }, 48 ///// 49 { 50 Block: `null;TestExpressionsBuiltin0=1+1+1+1+1+1+1+1+1+1;out $TestExpressionsBuiltin0`, 51 Stdout: "10\n", 52 }, 53 { 54 Block: `null;TestExpressionsBuiltin1=(1+1+1+1+1+1+1+1+1+1);out $TestExpressionsBuiltin1`, 55 Stdout: "10\n", 56 }, 57 { 58 Block: `TestExpressionsBuiltin2=1+1+1+1+1+1+1+1+1+1;null;out $TestExpressionsBuiltin2`, 59 Stdout: "10\n", 60 }, 61 { 62 Block: `TestExpressionsBuiltin3=(1+1+1+1+1+1+1+1+1+1);null;out $TestExpressionsBuiltin3`, 63 Stdout: "10\n", 64 }, 65 { 66 Block: `null;TestExpressionsBuiltin4=1+1+1+1+1+1+1+1+1+1;null;out $TestExpressionsBuiltin4`, 67 Stdout: "10\n", 68 }, 69 { 70 Block: `null;TestExpressionsBuiltin5=(1+1+1+1+1+1+1+1+1+1);null;out $TestExpressionsBuiltin5`, 71 Stdout: "10\n", 72 }, 73 { 74 Block: `null;TestExpressionsBuiltin6=1+1+1+1+(1+1)+1+1+1+1;null;out $TestExpressionsBuiltin6`, 75 Stdout: "10\n", 76 }, 77 { 78 Block: `null;TestExpressionsBuiltin7=(1+1+1+1+(1+1)+1+1+1+1);null;out $TestExpressionsBuiltin7`, 79 Stdout: "10\n", 80 }, 81 ///// 82 { 83 Block: `null;1+1+1+1+1+1+1+1+1+1`, 84 Stdout: `10`, 85 }, 86 { 87 Block: `null;(1+1+1+1+1+1+1+1+1+1)`, 88 Stdout: `1+1+1+1+1+1+1+1+1+1`, 89 }, 90 { 91 Block: `1+1+1+1+1+1+1+1+1+1;null`, 92 Stdout: `10`, 93 }, 94 { 95 Block: `(1+1+1+1+1+1+1+1+1+1);null`, 96 Stdout: `1+1+1+1+1+1+1+1+1+1`, 97 }, 98 { 99 Block: `null;1+1+1+1+1+1+1+1+1+1;null`, 100 Stdout: `10`, 101 }, 102 { 103 Block: `null;(1+1+1+1+1+1+1+1+1+1);null`, 104 Stdout: `1+1+1+1+1+1+1+1+1+1`, 105 }, 106 { 107 Block: `null;1+1+1+1+(1+1)+1+1+1+1;null`, 108 Stdout: `10`, 109 }, 110 { 111 Block: `null;(1+1+1+1+(1+1)+1+1+1+1);null`, 112 Stdout: `1+1+1+1+(1+1)+1+1+1+1`, 113 }, 114 ///// 115 { 116 Block: `1+1+1+1+1+1+1+1+1+1`, 117 Stdout: `10`, 118 }, 119 { 120 Block: `null;1+1+1+1+1+1+1+1+1+1`, 121 Stdout: `10`, 122 }, 123 { 124 Block: `(1+1+1+1+1+1+1+1+1+1)`, 125 Stdout: `1+1+1+1+1+1+1+1+1+1`, 126 }, 127 { 128 Block: `1+1+1+1+1+1+1+1+1+1;null`, 129 Stdout: `10`, 130 }, 131 { 132 Block: `(1+1+1+1+1+1+1+1+1+1);null`, 133 Stdout: `1+1+1+1+1+1+1+1+1+1`, 134 }, 135 { 136 Block: `null;1+1+1+1+1+1+1+1+1+1;null`, 137 Stdout: `10`, 138 }, 139 { 140 Block: `null;(1+1+1+1+1+1+1+1+1+1);null`, 141 Stdout: `1+1+1+1+1+1+1+1+1+1`, 142 }, 143 { 144 Block: `null;1+1+1+1+(1+1)+1+1+1+1;null`, 145 Stdout: `10`, 146 }, 147 { 148 Block: `null;(1+1+1+1+(1+1)+1+1+1+1);null`, 149 Stdout: `1+1+1+1+(1+1)+1+1+1+1`, 150 }, 151 ///// 152 { 153 Block: `3*(3+1)`, 154 Stdout: `12`, 155 }, 156 } 157 158 test.RunMurexTests(tests, t) 159 } 160 161 func TestExpressionsScalars(t *testing.T) { 162 tests := []test.MurexTest{ 163 { 164 Block: `TestExpressionsScalars0="foobar";$TestExpressionsScalars0=="foobar"`, 165 Stdout: `true`, 166 }, 167 { 168 Block: `TestExpressionsScalars1="foobar";%[1,2,$TestExpressionsScalars1]`, 169 Stdout: `[1,2,"foobar"]`, 170 }, 171 } 172 173 test.RunMurexTests(tests, t) 174 } 175 176 func TestExpressionsBuiltinSubExpr(t *testing.T) { 177 tests := []test.MurexTest{ 178 { 179 Block: `(1+1);null`, 180 Stdout: `1+1`, 181 }, 182 { 183 Block: `(1+1) ;null`, 184 Stdout: `1+1`, 185 }, 186 { 187 Block: `(1+1) ; null`, 188 Stdout: `1+1`, 189 }, 190 ///// 191 { 192 Block: `bob=(1+1);null`, 193 Stdout: ``, 194 }, 195 { 196 Block: `bob=(1+1) ;null`, 197 Stdout: ``, 198 }, 199 { 200 Block: `bob=(1+1) ; null`, 201 Stdout: ``, 202 }, 203 } 204 205 test.RunMurexTests(tests, t) 206 } 207 208 func TestExpressionsBuiltinStrings(t *testing.T) { 209 tests := []test.MurexTest{ 210 { 211 Block: `%(bob)`, 212 Stdout: `bob`, 213 }, 214 } 215 216 test.RunMurexTests(tests, t) 217 }