modl 0.3.10 → 0.3.11

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,1363 +1,2987 @@
1
1
  [
2
- { "input": "*l=grammar_tests/test_import_dir/nested_import1.txt;\nfiles=%*load",
3
- "minimised_modl": "*l=grammar_tests/test_import_dir/nested_import1.txt;files=%*load",
4
- "expected_output": "{\"files\":[\"grammar_tests/test_import_dir/nested_import1.txt\",\"grammar_tests/test_import_dir/nested_import2.txt\",\"grammar_tests/test_import_dir/nested_import3.txt\",\"grammar_tests/test_import_dir/test_import.txt\"]}",
5
- "tested_features":["load"]
6
- },
7
- { "input": "*l=grammar_tests/1:grammar_tests/2:grammar_tests/3:grammar_tests/1;\nfiles=%*load",
8
- "minimised_modl": "*l=grammar_tests/1:grammar_tests/2:grammar_tests/3:grammar_tests/1;files=%*load",
9
- "expected_output": "{\"files\":[\"grammar_tests/1.modl\",\"grammar_tests/2.modl\",\"grammar_tests/3.modl\",\"grammar_tests/1.modl\"]}",
10
- "tested_features":["load"]
11
- },
12
- { "input": "*L=\"https://www.modl.uk/tests/message-thread.txt\";\n\nclasses=*class",
13
- "minimised_modl": "*L=\"https://www.modl.uk/demo/message-thread.txt\";classes=*class",
14
- "expected_output": "{\"classes\":\"*class\"}",
15
- "tested_features":["load"]
16
- },
17
- { "input": "*method(\n ## The method can be called by it's ID or name\n *id=cn;\n *name=company_name;\n ## The value of the object that the method is called on is transformed using the following methods:\n *transform=`replace(-, ).trim(.).initcap`\n);\n\nm=%*method",
18
- "minimised_modl": "*m(*i=cn;*n=company_name;*transform=`replace(-, ).trim(.).initcap`);m=%*method",
19
- "expected_output": "{\"m\":[{\"cn\":{\"name\":\"company_name\",\"transform\":\"replace(-,).trim(.).initcap\"}}]}",
20
- "tested_features":["method"]
21
- },
22
- { "input": "*L=\"https://www.modl.uk/tests/message-thread.txt\";\n*class(\n *id=a;\n *name=alpha;\n *superclass=map;\n v=victor\n);\n*class(\n *id=b;\n *name=bravo;\n *superclass=alpha;\n w=whisky\n);\n*class(\n *id=c;\n *name=charlie;\n *superclass=bravo;\n x=xray\n);\n*class(\n *id=d;\n *name=delta;\n *superclass=charlie;\n y=yankee\n);\nclasses=%*class",
23
- "minimised_modl": "*L=\"https://www.modl.uk/tests/message-thread.txt\";*class(*id=a;*name=alpha;*superclass=map;v=victor)*class(*id=b;*name=bravo;*superclass=alpha;w=whisky);*class(*id=c;*name=charlie;*superclass=bravo;x=xray)*class(*id=d;*name=delta;*superclass=charlie;y=yankee)classes=%*class",
24
- "expected_output": "{\n \"classes\": [\n {\n \"m\": {\n \"name\": \"message\",\n \"superclass\": \"map\",\n \"assign\": [\n [\n \"direction\",\n \"date_time\",\n \"message\"\n ]\n ],\n \"method\": \"sms\"\n }\n },\n {\n \"a\": {\n \"name\": \"alpha\",\n \"superclass\": \"map\",\n \"v\": \"victor\"\n }\n },\n {\n \"b\": {\n \"name\": \"bravo\",\n \"superclass\": \"alpha\",\n \"w\": \"whisky\"\n }\n },\n {\n \"c\": {\n \"name\": \"charlie\",\n \"superclass\": \"bravo\",\n \"x\": \"xray\"\n }\n },\n {\n \"d\": {\n \"name\": \"delta\",\n \"superclass\": \"charlie\",\n \"y\": \"yankee\"\n }\n }\n ]\n}",
25
- "tested_features":["load", "class"]
26
- },
27
- { "input": "_test1=one;\n_one=two;\n{\ntest1=`one`?\n result=match\n/?\n result=nomatch\n}",
28
- "minimised_modl": "_test1=one;_one=two{test1=`one`?result=match/?result=nomatch}",
29
- "expected_output": "{\n \"result\": \"match\"\n}",
30
- "tested_features": ["conditional"]
31
- },
32
- { "input": "_test1=one;\n_one=two;\n{\ntest1=`two`?\n result=match\n/?\n result=nomatch\n}",
33
- "minimised_modl": "_test1=one;_one=two{test1=`two`?result=match/?result=nomatch}",
34
- "expected_output": "{\n \"result\": \"nomatch\"\n}",
35
- "tested_features": ["conditional"]
36
- },
37
- { "input": "_test1=one;\n_one=two;\n{\ntest1=\"one\"?\n result=match\n/?\n result=nomatch\n}",
38
- "minimised_modl": "_test1=one;_one=two{test1=\"one\"?result=match/?result=nomatch}",
39
- "expected_output": "{\n \"result\": \"match\"\n}",
40
- "tested_features": ["conditional"]
41
- },
42
- { "input": "_test1=one;\n_one=two;\n{\ntest1=\"two\"?\n result=match\n/?\n result=nomatch\n}",
43
- "minimised_modl": "_test1=one;_one=two{test1=\"two\"?result=match/?result=nomatch}",
44
- "expected_output": "{\n \"result\": \"nomatch\"\n}",
45
- "tested_features": ["conditional"]
46
- },
47
- { "input": "_test1=one;\n_one=two;\n{\ntest1=\"one\"?\n result=match\n/?\n result=nomatch\n}",
48
- "minimised_modl": "_test1=one;_one=two{test1=`one`?result=match/?result=nomatch}",
49
- "expected_output": "{\n \"result\": \"match\"\n}",
50
- "tested_features": ["conditional"]
51
- },
52
- { "input": "_x=a:b:c:d;\n_y=[1;2;3;4];\nz={%x.1=b | %y.2=1?}\n",
53
- "minimised_modl": "_x=a:b:c:d;_y=[1;2;3;4];z={%x.1=b | %y.2=1?}",
54
- "expected_output": "{\"z\":true}",
55
- "tested_features":["conditional", "object_ref"]
56
- },
57
- { "input": "_x=a:b:c:d;\n_y=[1;2;3;4];\nz={%x.1=b & %y.2=1?}\n",
58
- "minimised_modl": "_x=a:b:c:d;_y=[1;2;3;4];z={%x.1=b & %y.2=1?}",
59
- "expected_output": "{\"z\":false}",
60
- "tested_features":["conditional", "object_ref"]
61
- },
62
- { "input": "_x=a:b:c:d;\n_y=[1;2;3;4];\nz={%x.1=b&%y.2=3?}",
63
- "minimised_modl": "_x=a:b:c:d;_y=[1;2;3;4];z={%x.1=b&%y.2=3?}",
64
- "expected_output": "{\"z\":true}",
65
- "tested_features":["conditional", "object_ref"]
66
- },
67
- { "input": "_x=a:b:c:d;\n_y=[1;2;3;4];\nz={%x.1=b|%y.2=3?}",
68
- "minimised_modl": "_x=a:b:c:d;_y=[1;2;3;4];z={%x.1=b|%y.2=3?}",
69
- "expected_output": "{\"z\":true}",
70
- "tested_features":["conditional", "object_ref"]
71
- },
72
- { "input": "_x=a:b:c:d;\n_y=[1;2;3;4];\nz={%x.1=b|%y.2=x?}",
73
- "minimised_modl": "_x=a:b:c:d;_y=[1;2;3;4];z={%x.1=b|%y.2=x?}",
74
- "expected_output": "{\"z\":true}",
75
- "tested_features":["conditional", "object_ref"]
76
- },
77
- { "input": "_x=a:b:c:d;\n_y=[1;2;3;4];\nz={%x.1=a|%y.2=3?}",
78
- "minimised_modl": "_x=a:b:c:d;_y=[1;2;3;4];z={%x.1=a|%y.2=3?}",
79
- "expected_output": "{\"z\":true}",
80
- "tested_features":["conditional", "object_ref"]
81
- },
82
- { "input": "_x=a:b:c:d;\n_y=[1;2;3;4];\nx={%x.1=%y.2?}",
83
- "minimised_modl": "_x=a:b:c:d;_y=[1;2;3;4];x={%x.1=%y.2?}",
84
- "expected_output": "{\"x\":false}",
85
- "tested_features":["conditional", "object_ref"]
86
- },
87
- { "input": "_x=[1;2;3;4];\n_y=[1;2;3;4];\nx={%x.2=%y.2?}",
88
- "minimised_modl": "_x=[1;2;3;4];_y=[1;2;3;4];x={%x.2=%y.2?}",
89
- "expected_output": "{\"x\":true}",
90
- "tested_features":["conditional", "object_ref"]
91
- },
92
- { "input": "_country=gb;\n{\n country = gb | country = us?\n support_number=+441270123456\n /?\n support_number=+14161234567\n}",
93
- "minimised_modl": "_country=gb{country = gb | country = us?support_number=+441270123456/?support_number=+14161234567}",
94
- "expected_output": "{\n \"support_number\": \"+441270123456\"\n}",
95
- "tested_features":["conditional", "object_ref"]
96
- },
97
- { "input": "_country=gb;\n{\n country = us | country = gb?\n support_number=+441270123456\n /?\n support_number=+14161234567\n}",
98
- "minimised_modl": "_country=gb{country = us | country = gb?support_number=+441270123456/?support_number=+14161234567}",
99
- "expected_output": "{\n \"support_number\": \"+441270123456\"\n}",
100
- "tested_features":["conditional", "object_ref"]
101
- },
102
- { "input": "?=a:b:c:d;12%3=1",
103
- "minimised_modl": "?=a:b:c:d;12%3=1",
104
- "expected_output": "{\"12d\":1}",
105
- "tested_features":["object_ref"]
106
- },
107
- { "input": "(name=`e1afmkfd`.p;department=` -7sbcecqbdsccxfizhcp6b8ah`.p)",
108
- "minimised_modl": "(name=`e1afmkfd`.p;department=` -7sbcecqbdsccxfizhcp6b8ah`.p)",
109
- "expected_output": "{\n \"name\": \"пример\",\n \"department\": \"обслуживание клиентов\"\n}",
110
- "tested_features":["puny"]
111
- },
112
- { "input": "`80aafnhi4ae`.p.u=`lsa12dvaxki`.p.u",
113
- "minimised_modl": "`80aafnhi4ae`.p=`lsa12dvaxki`.p",
114
- "expected_output": "{\n \"НАЗВАНИЕ\":\"БОРИ́С\"\n}",
115
- "tested_features":["puny", "string_method"]
116
- },
117
- { "input": "(\n _name = John;\n %name.u = \"Developer\";\n foo = %name.u\n)",
118
- "minimised_modl": "(_name = John;%name.u = \"Developer\";foo = %name.u)",
119
- "expected_output": "{\n \"JOHN\" : \"Developer\", \n \"foo\" : \"JOHN\"\n}",
120
- "tested_features":["string_method"]
121
- },
122
- { "input": "(\n _name = John;\n %name.u = \"Developer\";\n foo = %JOHN\n)",
123
- "minimised_modl": "(_name=John;%name.u=\"Developer\";foo = %JOHN)",
124
- "expected_output": "{\n \"JOHN\" : \"Developer\", \n \"foo\" : \"Developer\"\n}",
125
- "tested_features":["string_method", "object_ref"]
126
- },
127
- { "input": "(\n _name = John;\n %name = \"Developer\";\n foo = %John\n)",
128
- "minimised_modl": "(_name=John;%name=\"Developer\";foo = %John)",
129
- "expected_output": "{\n \"John\" : \"Developer\", \n \"foo\" : \"Developer\"\n}",
130
- "tested_features":["object_ref"]
131
- },
132
- { "input": "_array[1;2];\n_array_item=%array.0;\ntest={\n array_item=%array.0?\n yes\n /?\n no\n}",
133
- "minimised_modl": "_array[1;2];_array_item=%array.0;test={array_item=%array.0?yes/?no}",
134
- "expected_output": "{\n \"test\": \"yes\"\n}",
135
- "tested_features":["conditional", "object_ref"]
136
- },
137
- { "input": "_array[1;2];\ntest={\n %array.0=1?\n yes\n /?\n no\n}",
138
- "minimised_modl": "_array[1;2];test={%array.0=1?yes/?no}",
139
- "expected_output": "{\n \"test\": \"yes\"\n}",
140
- "tested_features":["conditional", "object_ref"]
141
- },
142
- { "input": "_array[1;2];\n_array_item=%array.0;\ntest={\n array_item=1?\n yes\n /?\n no\n}",
143
- "minimised_modl": "_array[1;2];_array_item=%array.0;test={array_item=1?yes/?no}",
144
- "expected_output": "{\n \"test\": \"yes\"\n}",
145
- "tested_features":["conditional", "object_ref"]
146
- },
147
- { "input": "_person( \n name(\n speak=say;\n first=John;\n last=Smith\n )\n);\njust `%person.name.speak.u`_this=Hello %person.name.first.d!",
148
- "minimised_modl": "_person(name(speak=say;first=John;last=Smith));just `%person.name.speak.u`_this=Hello %person.name.first.d!",
149
- "expected_output": "{\n \"just SAY_this\": \"Hello john!\"\n}",
150
- "tested_features":["string_method", "object_ref"]
151
- },
152
- { "input": "*class(\n *i=test;\n *a=[\n [one;two;three]\n ]\n);\ntest=1:2:3",
153
- "minimised_modl": "*class(\n *i=test\n *a=[\n [one;two;three]\n ]\n)\ntest=1:2:3",
154
- "expected_output": "{\n \"test\": {\n \"one\": 1,\n \"two\": 2,\n \"three\": 3\n }\n}",
155
- "tested_features":["class", "assign"]
156
- },
157
- { "input": "*class(\n *i=test;\n *a=[\n [one;two;three]\n ]\n);\n\ntest=1:2:(a=Alpha;b=Bravo;c=Charlie)",
158
- "minimised_modl": "*class(\n *i=test\n *a=[\n [one;two;three]\n ]\n)\n\ntest=1:2:(a=Alpha;b=Bravo;c=Charlie)",
159
- "expected_output": "{\n \"test\": {\n \"one\": 1,\n \"two\": 2,\n \"three\": {\n \"a\": \"Alpha\",\n \"b\": \"Bravo\",\n \"c\": \"Charlie\"\n }\n }\n}",
160
- "tested_features":["class", "assign"]
161
- },
162
- { "input": "*class(\n *i=test;\n *a=[\n [one;two;three]\n ]\n);\n\ntest=1:2:[a;b;c]",
163
- "minimised_modl": "*class(\n *i=test\n *a=[\n [one;two;three]\n ]\n)\n\ntest=1:2:[a;b;c]",
164
- "expected_output": "{\n \"test\": {\n \"one\": 1,\n \"two\": 2,\n \"three\": [\n \"a\",\n \"b\",\n \"c\"\n ]\n }\n}\n",
165
- "tested_features":["class", "assign"]
166
- },
167
- { "input": "_name = John;\n%name = \"123\"",
168
- "minimised_modl": "_name = John;%name = \"123\"",
169
- "expected_output": "{\"John\":\"123\"}",
170
- "tested_features":["object_ref"]
171
- },
172
- { "input": "[\none;\ntwo;\nthree;\n]",
173
- "minimised_modl": "[one;two;three;]",
174
- "expected_output": "[\"one\",\"two\",\"three\"]",
175
- "tested_features":["array"]
176
- },
177
- { "input": "[\none;\ntwo;\nthree\n]",
178
- "minimised_modl": "[one;two;three]",
179
- "expected_output": "[\"one\",\"two\",\"three\"]",
180
- "tested_features":["array"]
181
- },
182
- { "input": "_country = gb;\nsupport_contact = {\ncountry=gb?\n}",
183
- "minimised_modl": "_country=gb;support_contact={country=gb?}",
184
- "expected_output": "{\"support_contact\": true}",
185
- "tested_features":["object_ref", "conditional"]
186
- },
187
- { "input": " *class(\n *id=a;\n *name=alpha;\n *superclass=map;\n v=victor\n);\n*class(\n *id=b;\n *name=bravo;\n *superclass=alpha;\n w=whisky\n);\n*class(\n *id=c;\n *name=charlie;\n *superclass=bravo;\n x=xray\n);\n*class(\n *id=d;\n *name=delta;\n *superclass=charlie;\n y=yankee\n);\nd(test1=test2)",
188
- "minimised_modl": "*class(*id=a;*name=alpha;*superclass=map;v=victor)*class(*id=b;*name=bravo;*superclass=alpha;w=whisky)*class(*id=c;*name=charlie;*superclass=bravo;x=xray);*class(*id=d;*name=delta;*superclass=charlie;y=yankee)d(test1=test2)",
189
- "expected_output": "{\"delta\": {\"test1\": \"test2\",\"y\": \"yankee\",\"x\": \"xray\",\"w\": \"whisky\",\"v\": \"victor\"}}",
190
- "tested_features":["class"]
191
- },
192
- { "input": "*class(\n *id=a;\n *name=alpha;\n *superclass=map;\n v=victor\n);\n*class(\n *id=b;\n *name=bravo;\n *superclass=a;\n w=whisky\n);\n*class(\n *id=c;\n *name=charlie;\n *superclass=b;\n x=xray\n);\n*class(\n *id=d;\n *name=delta;\n *superclass=c;\n y=yankee\n);\nd(test1=test2)",
193
- "minimised_modl": "*class(*id=a;*name=alpha;*superclass=map;v=victor)*class(*id=b;*name=bravo;*superclass=a;w=whisky)*class(*id=c;*name=charlie;*superclass=b;x=xray)*class(*id=d;*name=delta;*superclass=c;y=yankee)d(test1=test2)",
194
- "expected_output": "{\"delta\": {\"test1\": \"test2\",\"y\": \"yankee\",\"x\": \"xray\",\"w\": \"whisky\",\"v\": \"victor\"}}",
195
- "tested_features":["class"]
196
- },
197
- { "input": "_test=[[a;b]];letters2=%test.0.0",
198
- "minimised_modl": "_test=[[a;b]];letters2=%test.0.0",
199
- "expected_output": "{\"letters2\": \"a\"}",
200
- "tested_features":["object_ref"]
201
- },
202
- { "input": "?=`e1afmkfd`:` -7sbcecqbdsccxfizhcp6b8ah`;(name=%0.p;department=%1.p)",
203
- "minimised_modl": "?=`e1afmkfd`:` -7sbcecqbdsccxfizhcp6b8ah`;(name=%0.p;department=%1.p)",
204
- "expected_output": "{\"name\":\"пример\",\"department\":\"обслуживание клиентов\"}",
205
- "tested_features":["object_ref", "puny"]
206
- },
207
- { "input": "*class(*id=object;*superclass=arr);sales(name=John Smith;telephone=44800 555 555);service(name=Jim Brown;telephone=44800 666 666)",
208
- "minimised_modl": "*c(*id=object;*superclass=arr);sales(name=John Smith;telephone=44800 555 555);service(name=Jim Brown;telephone=44800 666 666)",
209
- "expected_output": "[{\"sales\": {\"name\": \"John Smith\",\"telephone\": \"44800 555 555\"}},{\"service\": {\"name\": \"Jim Brown\",\"telephone\": \"44800 666 666\"}}]",
210
- "tested_features":["class"]
211
- },
212
- { "input": "*class(\n *id=p;\n *NAME=person\n);\n\np(name=John Smith;dob=01/01/2001)",
213
- "minimised_modl": "*c(*i=p;*N=person);p(name=John Smith;dob=01/01/2001)",
214
- "expected_output": "{\n \"person\" : {\n \"name\" : \"John Smith\",\n \"dob\" : \"01/01/2001\"\n }\n}\n",
215
- "tested_features":["class"]
216
- },
217
- { "input": "*class(*id=a;*name=age);a=10",
218
- "minimised_modl": "*class(*id=a;*name=age);a=10",
219
- "expected_output": "{\"age\":10}",
220
- "tested_features":["class"]
221
- },
222
- { "input": "*class(*id=a;*name=age;*superclass=num);a=10",
223
- "minimised_modl": "*class(*id=a;*name=age;*superclass=num);a=10",
224
- "expected_output": "{\"age\":10}",
225
- "tested_features":["class"]
226
- },
227
- { "input": "*class(*id=a;*name=age;*superclass=str);a=10",
228
- "minimised_modl": "*class(*id=a;*name=age;*superclass=str);a=10",
229
- "expected_output": "{\"age\":\"10\"}",
230
- "tested_features":["class"]
231
- },
232
- { "input": "*class(*id=newstr;*superclass=str);*class(*id=a;*name=age;*superclass=newstr);a=10",
233
- "minimised_modl": "*class(*id=newstr;*superclass=str);*class(*id=a;*name=age;*superclass=newstr);a=10",
234
- "expected_output": "{\"age\":\"10\"}",
235
- "tested_features":["class"]
236
- },
237
- { "input": "?[[a;b;c]];letters=%0",
238
- "minimised_modl": "?[[a;b;c]];letters=%0",
239
- "expected_output": "{\"letters\": [ \"a\", \"b\", \"c\"]}",
240
- "tested_features":["object_ref"]
241
- },
242
- { "input": "?=[a;b;c;d]:[1;2;3;4;5];\ntest=%1.0",
243
- "minimised_modl": "?=[a;b;c;d]:[1;2;3;4;5];test=%1.0",
244
- "expected_output": "{\n \"test\" : 1\n}\n",
245
- "tested_features":["object_ref"]
246
- },
247
- { "input": "_test=123;object(print_test = %test.test)",
248
- "minimised_modl": "_test=123;object(print_test = %test.test)",
249
- "expected_output": "{\"object\":{\"print_test\":\"123.test\"}}",
250
- "tested_features":["object_ref"]
251
- },
252
- { "input": "?=one:two:three;test1=%0;test2=%1;test3=%2;test4=%3;test5=%4;test6=%5;test7=%6;test8=%7;test9=%8",
253
- "minimised_modl": "?=one:two:three;test1=%0;test2=%1;test3=%2;test4=%3;test5=%4;test6=%5;test7=%6;test8=%7;test9=%8",
254
- "expected_output": "[{\"test1\": \"one\"},{\"test2\": \"two\"},{\"test3\": \"three\"},{\"test4\": \"%3\"},{\"test5\": \"%4\"},{\"test6\": \"%5\"},{\"test7\": \"%6\"},{\"test8\": \"%7\"},{\"test9\": \"%8\"}]",
255
- "tested_features":["object_ref"]
256
- },
257
- { "input": "a=1:2:3;b=4:5:6",
258
- "minimised_modl": "a=1:2:3;b=4:5:6",
259
- "expected_output": "[ {\n \"a\" : [ 1, 2, 3 ]\n}, {\n \"b\" : [ 4, 5, 6 ]\n} ]",
260
- "tested_features":["nbArray"]
261
- },
262
- { "input": "a=1:2:3;b=4:5:6",
263
- "minimised_modl": "a=1:2:3;b=4:5:6;",
264
- "expected_output": "[ {\n \"a\" : [ 1, 2, 3 ]\n}, {\n \"b\" : [ 4, 5, 6 ]\n} ]",
265
- "tested_features":["nbArray"]
266
- },
267
- { "input": "a=1:2:3;b=4:5:6",
268
- "minimised_modl": "a=1:2:3;b=4:5:6",
269
- "expected_output": "[ {\n \"a\" : [ 1, 2, 3 ]\n}, {\n \"b\" : [ 4, 5, 6 ]\n} ]",
270
- "tested_features":["nbArray"]
271
- },
272
- { "input": "a=1:2:3;\nb=4:5:6",
273
- "minimised_modl": "a=1:2:3;\nb=4:5:6",
274
- "expected_output": "[ {\n \"a\" : [ 1, 2, 3 ]\n}, {\n \"b\" : [ 4, 5, 6 ]\n} ]",
275
- "tested_features":["nbArray"]
276
- },
277
- { "input": "a=1:2:3;\nb=4:5:6",
278
- "minimised_modl": "a=1:2:3\nb=4:5:6",
279
- "expected_output": "[ {\n \"a\" : [ 1, 2, 3 ]\n}, {\n \"b\" : [ 4, 5, 6 ]\n} ]",
280
- "tested_features":["nbArray"]
281
- },
282
- { "input": "a=1:2:3\n;\nb=4:5:6",
283
- "minimised_modl": "a=1:2:3\n;\nb=4:5:6",
284
- "expected_output": "[ {\n \"a\" : [ 1, 2, 3 ]\n}, {\n\"b\" : [ 4, 5, 6 ]\n} ]",
285
- "tested_features":["nbArray"]
286
- },
287
- { "input": "_test=(a=b=c=d=f);\nx=%test.a.b.c.d",
288
- "minimised_modl": "_test=(a=b=c=d=f)\nx=%test.a.b.c.d",
289
- "expected_output": "{\"x\":\"f\"}",
290
- "tested_features":["object_ref"]
291
- },
292
- { "input": "a(b(c(d(e(f=1)))));\ntesting=%a.b.c.d.e.f",
293
- "minimised_modl": "a(b(c(d(e(f=1)))))\ntesting=%a.b.c.d.e.f",
294
- "expected_output": "[ {\"a\" : {\"b\" : {\"c\" : {\"d\" : {\"e\" : {\"f\" : 1}}}}}}, {\"testing\":1}]",
295
- "tested_features":["object_ref"]
296
- },
297
- { "input": "_test=(a=b=c=d=f);\ntesting=%test.a.b.c.d",
298
- "minimised_modl": "_test=(a=b=c=d=f)\ntesting=%test.a.b.c.d",
299
- "expected_output": "{\"testing\":\"f\"}",
300
- "tested_features":["object_ref"]
301
- },
302
- { "input": "a=\nb\n=c;\nd=e",
303
- "minimised_modl": "a=\nb\n=c\nd=e",
304
- "expected_output": "[ {\"a\" : {\"b\" : \"c\"}}, {\"d\" : \"e\"} ]",
305
- "tested_features":["map"]
306
- },
307
- { "input": "test=this is a #hashtag test;test2=#testing 123",
308
- "minimised_modl": "test=this is a #hashtag test;test2=#testing 123",
309
- "expected_output": "[ {\"test\" : \"this is a #hashtag test\"}, {\"test2\" : \"#testing 123\"} ]",
310
- "tested_features":["pair"]
311
- },
312
- { "input": "a=(b=c=d=e=f)",
313
- "minimised_modl": "a=(b=c=d=e=f)",
314
- "expected_output": "{\"a\": {\"b\": {\"c\": {\"d\": {\"e\": \"f\"}}}}}",
315
- "tested_features":["map"]
316
- },
317
- { "input": "a=b=c=d=e=f",
318
- "minimised_modl": "a=b=c=d=e=f",
319
- "expected_output": "{\"a\": {\"b\": {\"c\": {\"d\": {\"e\": \"f\"}}}}}",
320
- "tested_features":["map"]
321
- },
322
- { "input": "a=(b=(c=(d=(e=f))))",
323
- "minimised_modl": "a=(b=(c=(d=(e=f))))",
324
- "expected_output": "{\"a\": {\"b\": {\"c\": {\"d\": {\"e\": \"f\"}}}}}",
325
- "tested_features":["map"]
326
- },
327
- { "input": "country=gb;\nx=[{ country=gb ? this /country=us? that }]",
328
- "minimised_modl": "country=gb;x=[{ country=gb? this /country=us? that }]",
329
- "expected_output": "[{\"country\" : \"gb\"}, { \"x\" : [ \"this\" ]}]",
330
- "tested_features":["object_ref", "conditional"]
331
- },
332
- { "input": "_a=3;_b=3;c={a=b?true/?false}",
333
- "minimised_modl": "_a=3;_b=3;c={a=b?true/?false}",
334
- "expected_output": "{\"c\": true}",
335
- "tested_features":["object_ref", "conditional"]
336
- },
337
- { "input": "a=1;b=2;b={{a=1}|{b=2}?true/?false}",
338
- "minimised_modl": "a=1;b=2;b={{a=1}|{b=2}?true/?false}",
339
- "expected_output": "[{\"a\": 1},{\"b\": 2},{\"b\": true}]",
340
- "tested_features":["conditional"]
341
- },
342
- { "input": "_a=1;\n_b=2;\nx={a=b?}",
343
- "minimised_modl": "_a=1;_b=2;x={a=b?}",
344
- "expected_output": "{\"x\":false}",
345
- "tested_features":["object_ref", "conditional"]
346
- },
347
- { "input": "_a=1;\n_b=1;\nx={a=b?}",
348
- "minimised_modl": "_a=1;_b=1;x={a=b?}",
349
- "expected_output": "{\"x\":true}",
350
- "tested_features":["object_ref", "conditional"]
351
- },
352
- { "input": "_testing = quick-test of John's variable_methods;\nupcase_example = %testing.u;\ndowncase_example = %testing.d;\ninitcap_example = %testing.i;\nsentence_example = %testing.s;\nurl_encode_example = %testing.u.e",
353
- "minimised_modl": "_testing=quick-test of John's variable_methods;upcase_example=%testing.u;downcase_example=%testing.d;initcap_example=%testing.i;sentence_example=%testing.s;url_encode_example=%testing.u.e",
354
- "expected_output": "[ {\n \"upcase_example\" : \"QUICK-TEST OF JOHN'S VARIABLE_METHODS\"\n}, {\n \"downcase_example\" : \"quick-test of john's variable_methods\"\n}, {\n \"initcap_example\" : \"Quick-test Of John's Variable_methods\"\n}, {\n \"sentence_example\" : \"Quick-test of John's variable_methods\"\n}, {\n \"url_encode_example\" : \"QUICK-TEST+OF+JOHN%27S+VARIABLE_METHODS\"\n} ]",
355
- "tested_features":["string_method"]
356
- },
357
- { "input": "*VERSION=1;\n\"test\"=1",
358
- "minimised_modl": "*VERSION=1;test=1",
359
- "expected_output": "{\"test\" : 1}",
360
- "tested_features":["version"]
361
- },
362
- { "input": "*VERSION=100;\n\"test\"=1",
363
- "minimised_modl": "*VERSION=100;test=1",
364
- "expected_output": "{\"test\" : 1}",
365
- "tested_features":["version"]
366
- },
367
- { "input": "*class(\n *id=g;\n *name=glossary;\n *superclass=map\n);\n*class(\n *id=t;\n *name=title;\n *superclass=str\n);\n*class(\n *id=d;\n *name=GlossDiv;\n *superclass=map\n);\n*class(\n *id=l;\n *name=GlossList;\n *superclass=map\n);\n*class(\n *id=e;\n *name=GlossEntry;\n *superclass=map;\n *assign[\n [i;s;gt;a;ab;gd;gs]\n ]\n);\n*class(\n *id=i;\n *name=ID;\n *superclass=str\n);\n*class(\n *id=s;\n *name=SortAs;\n *superclass=str\n);\n*class(\n *id=gt;\n *name=GlossTerm;\n *superclass=str\n);\n*class(\n *id=a;\n *name=Acronym;\n *superclass=str\n);\n*class(\n *id=ab;\n *name=Abbrev;\n *superclass=str\n);\n*class(\n *id=gd;\n *name=GlossDef;\n *superclass=map;\n *assign=[\n [p];\n [p;sa]\n ]\n);\n*class(\n *id=p;\n *name=para;\n *superclass=str\n);\n*class(\n *id=sa;\n *name=SeeAlso;\n *superclass=arr\n);\n*class(\n *id=gs;\n *name=GlossSee;\n *superclass=str\n);\n\ng(\n ?=[SGML;markup;language];\n t=example glossary;\n d(\n t=S;\n l(\n e(\n i=%0;\n s=%0;\n gt=Standard Generalized %1.s %2.s;\n a=%0;\n ab=ISO 8879\\:1986;\n gd=A meta-%1 %2, used to create %1 %2s such as DocBook.\n :[GML;XML];\n gs=%1\n )\n )\n )\n)",
368
- "minimised_modl": "*c(*i=g;*n=glossary;*s=map);*c(*i=t;*n=title;*s=str);*c(*i=d;*n=GlossDiv;*s=map);*c(*i=l;*n=GlossList;*s=map);*c(*i=e;*n=GlossEntry;*s=map;*a[[i;s;gt;a;ab;gd;gs]]);*c(*i=i;*n=ID;*s=str);*c(*i=s;*n=SortAs;*s=str);*c(*i=gt;*n=GlossTerm;*s=str);*c(*i=a;*n=Acronym;*s=str);*c(*i=ab;*n=Abbrev;*s=str);*c(*i=gd;*n=GlossDef;*s=map;*a=[p]:[p;sa]);*c(*i=p;*n=para;*s=str);*c(*i=sa;*n=SeeAlso;*s=arr);*c(*i=gs;*n=GlossSee;*s=str);g(?=SGML:markup:language;t=example glossary;d(t=S;l(e(i=%0;s=%0;gt=Standard Generalized %1.s %2.s;a=%0;ab=ISO 8879~:1986;gd=A meta-%1 %2, used to create %1 %2s such as DocBook.:[GML;XML];gs=%1))))",
369
- "expected_output": "{\n \"glossary\" : {\n \"title\" : \"example glossary\",\n \"GlossDiv\" : {\n \"title\" : \"S\",\n \"GlossList\" : {\n \"GlossEntry\" : {\n \"ID\" : \"SGML\",\n \"SortAs\" : \"SGML\",\n \"GlossTerm\" : \"Standard Generalized Markup Language\",\n \"Acronym\" : \"SGML\",\n \"Abbrev\" : \"ISO 8879:1986\",\n \"GlossDef\" : {\n \"para\" : \"A meta-markup language, used to create markup languages such as DocBook.\",\n \"SeeAlso\" : [ \"GML\", \"XML\" ]\n },\n \"GlossSee\" : \"markup\"\n }\n }\n }\n }\n}\n",
370
- "tested_features":["class", "object_ref", "string_method"]
371
- },
372
- { "input": "_test=1~:2;\n\nresult={\n test=1~:2?\n yes\n /?\n no\n}",
373
- "minimised_modl": "_test=1~:2;result={test=1~:2?yes/?no}",
374
- "expected_output": "{\n \"result\" : \"yes\"\n}\n",
375
- "tested_features":["class", "object_ref", "conditional"]
376
- },
377
- { "input": "_test=\"http://www.tesco.com\";\n\nresult={\n test=\"http://www.tesco.com\"?\n yes\n /?\n no\n}",
378
- "minimised_modl": "_test=http~://www.tesco.com;result={test=\"http://www.tesco.com\"?yes/?no}",
379
- "expected_output": "{\n \"result\" : \"yes\"\n}\n",
380
- "tested_features":["class", "object_ref", "conditional"]
381
- },
382
- { "input": "_test=\"http://www.tesco.com\";\n\nresult={\n test=\"http://www.tesco.com\"?\n yes\n /?\n no\n}",
383
- "minimised_modl": "_test=http~://www.tesco.com;result={test=\"http://www.tesco.com\"?yes/?no}",
384
- "expected_output": "{\n \"result\" : \"yes\"\n}\n",
385
- "tested_features":["class", "object_ref", "conditional"]
386
- },
387
- { "input": "_branch=\"alex.\";_root=d;namespace=`%branch`blah.`%root`",
388
- "minimised_modl": "_branch=alex.;_root=d;namespace=`%branch`blah.`%root`",
389
- "expected_output": "{\n \"namespace\" : \"alex.blah.d\"\n}\n",
390
- "tested_features":["object_ref"]
391
- },
392
- { "input": "namespace=`%branch`blah.`%root`",
393
- "minimised_modl": "namespace=`%branch`blah.`%root`",
394
- "expected_output": "{\n \"namespace\" : \"%branchblah.%root\"\n}\n",
395
- "tested_features":["pair", "graves"]
396
- },
397
- { "input": "_root=tesco.com;\n_branch=direct.;\nnamespace1=`%branch`numrecord.`%root`;\nnamespace2=`%branch`_`%root`.numq.net",
398
- "minimised_modl": "_root=tesco.com;_branch=direct.;namespace1=`%branch`numrecord.`%root`;namespace2=`%branch`_`%root`.numq.net",
399
- "expected_output": "[ {\n \"namespace1\" : \"direct.numrecord.tesco.com\"\n}, {\n \"namespace2\" : \"direct._tesco.com.numq.net\"\n} ]\n",
400
- "tested_features":["object_ref", "graves"]
401
- },
402
- { "input": "_branch=\"\";\n_root=\"\";\nnamespace=`%branch`numrecord.`%root`",
403
- "minimised_modl": "_branch=\"\";_root=\"\";namespace=`%branch`numrecord.`%root`",
404
- "expected_output": "{\n \"namespace\" : \"numrecord.\"\n}\n",
405
- "tested_features":["object_ref", "graves"]
406
- },
407
- { "input": "*class(\n *id=desc;\n *name=description;\n *superclass=str\n);\n\n*class(\n *id=val;\n *name=value;\n *superclass=str\n);\n\n*class(\n *id=media1;\n *name=media1;\n *superclass=map;\n *assign=[\n [desc;val]\n ]\n);\n\n*class(\n *id=media2;\n *name=media2;\n *superclass=map;\n *assign=[\n [desc;val]\n ]\n);\n*class(\n *id=list;\n *name=list;\n *superclass=map;\n *assign[\n [media1;media2]\n ]\n);\n\n\nlist=[tel;fb]:[yt;tw]",
408
- "minimised_modl": "*c(*i=desc;*n=description;*s=str);*c(*i=val;*n=value;*s=str);*c(*i=media1;*n=media1;*s=map;*a[[desc;val]]);*c(*i=media2;*n=media2;*s=map;*a[[desc;val]]);*c(*i=list;*n=list;*s=map;*a[[media1;media2]]);list=[tel;fb]:[yt;tw]",
409
- "expected_output": "{\n \"list\" : {\n \"media1\" : {\n \"description\" : \"tel\",\n \"value\" : \"fb\"\n },\n \"media2\" : {\n \"description\" : \"yt\",\n \"value\" : \"tw\"\n }\n }\n}\n",
410
- "tested_features":["class", "assign"]
411
- },
412
- { "input": "*CLASS(\n *id=p;\n *name=person;\n *SUPERCLASS=map\n);\n\np(name=John Smith;dob=01/01/2000)",
413
- "minimised_modl": "*C(*i=p;*n=person;*S=map);p(name=John Smith;dob=01/01/2000)",
414
- "expected_output": "{\n \"person\" : {\n \"name\" : \"John Smith\",\n \"dob\" : \"01/01/2000\"\n }\n}\n",
415
- "tested_features":["class"]
416
- },
417
- { "input": "*c(\n *i=m;\n *n=message;\n *S=map;\n *a=[\n [direction;date_time;message]\n ];\n method=sms\n);\nm=in:2018-03-22:hi",
418
- "minimised_modl": "*c(*i=m;*n=message;*S=map;*a[[direction;date_time;message]];method=sms);m=in:2018-03-22:hi",
419
- "expected_output": "{\n \"message\" : {\n \"direction\" : \"in\",\n \"date_time\" : \"2018-03-22\",\n \"message\" : \"hi\",\n \"method\" : \"sms\"\n }\n}\n",
420
- "tested_features":["class", "assign"]
421
- },
422
- { "input": "*class(\n *id=car;\n *name=car;\n *superclass=map\n);\n\ncar(\n make=Bentley\n)",
423
- "minimised_modl": "*c(*i=car;*n=car;*s=map);car(make=Bentley)",
424
- "expected_output": "{\n \"car\" : {\n \"make\" : \"Bentley\"\n }\n}\n",
425
- "tested_features":["class"]
426
- },
427
- { "input": "?=[one;two];\ntest=Blah `%0.s` %1.s",
428
- "minimised_modl": "?=one:two;test=Blah `%0.s` %1.s",
429
- "expected_output": "{\n \"test\" : \"Blah One Two\"\n}\n",
430
- "tested_features":["object_ref", "graves","string_method"]
431
- },
432
- { "input": "?=one:two;\ntest=Blah `%0.r(o,huzzah)` `%1.t(w)`",
433
- "minimised_modl": "?=one:two;test=Blah `%0.r(o,huzzah)` `%1.t(w)`",
434
- "expected_output": "{\n \"test\" : \"Blah huzzahne t\"\n}\n",
435
- "tested_features":["object_ref", "graves", "string_method"]
436
- },
437
- { "input": "_test=\"123\";\nobject(\n print_test = %test.test\n)",
438
- "minimised_modl": "_test=\"123\";object(print_test=%test.test)",
439
- "expected_output": "{\n \"object\" : {\n \"print_test\" : \"123.test\"\n }\n}\n",
440
- "tested_features":["object_ref"]
441
- },
442
- { "input": "_var = NotThisOne;_var=`%var`blah;out=`%var`deblah",
443
- "minimised_modl": "_var=NotThisOne;_var=`%var`blah;out=`%var`deblah",
444
- "expected_output": "{\n \"out\" : \"NotThisOneblahdeblah\"\n}\n",
445
- "tested_features":["object_ref"]
446
- },
447
- { "input": "_var = NotThisOne;_var=blah;out=`%var`deblah",
448
- "minimised_modl": "_var=NotThisOne;_var=blah;out=`%var`deblah",
449
- "expected_output": "{\n \"out\" : \"blahdeblah\"\n}\n",
450
- "tested_features":["object_ref"]
451
- },
452
- { "input": "test(\n map(\n array[]\n );\n array[\n map();\n array[1;2;3]\n ]\n)",
453
- "minimised_modl": "test(map(array[]);array[map();array=1:2:3])",
454
- "expected_output": "{\n \"test\" : {\n \"map\" : {\n \"array\" : [ ]\n },\n \"array\" : [ {\n \"map\" : { }\n }, {\n \"array\" : [ 1, 2, 3 ]\n } ]\n }\n}\n",
455
- "tested_features":["array", "map"]
456
- },
457
- { "input": "{\n01?\n test=1\n}",
458
- "minimised_modl": "{01?test=1}",
459
- "expected_output": "{\n \"test\" : 1\n}\n",
460
- "tested_features":["conditional", "pair"]
461
- },
462
- { "input": "test=()",
463
- "minimised_modl": "test()",
464
- "expected_output": "{\n \"test\" : { }\n}\n",
465
- "tested_features":["map"]
466
- },
467
- { "input": "_co=at;\n_l=de;\n{\n co=at?\n country=Austria\n language={\n l=fr?\n French\n /l=de?\n German\n /?\n Other\n }\n /?\n country=Other\n}",
468
- "minimised_modl": "_co=at;_l=de;{co=at?country=Austria;language={l=fr?French/l=de?German/?Other}/?country=Other}",
469
- "expected_output": "[ {\n \"country\" : \"Austria\"\n}, {\n \"language\" : \"German\"\n} ]\n",
470
- "tested_features":["conditional"]
471
- },
472
- { "input": "true2 = 01;\ntrue1 = true;\nfalse2 = 00;\nfalse1 = false;\nnull2 = 000;\nnull1 = null",
473
- "minimised_modl": "true2=01;true1=01;false2=00;false1=00;null2=000;null1=000",
474
- "expected_output": "[ {\n \"true2\" : true\n}, {\n \"true1\" : true\n}, {\n \"false2\" : false\n}, {\n \"false1\" : false\n}, {\n \"null2\" : null\n}, {\n \"null1\" : null\n} ]\n",
475
- "tested_features":["bool", "map", "null"]
476
- },
477
- { "input": "_person( \n name(\n first=John;\n last=Smith\n )\n);\nsay=%person.name.first",
478
- "minimised_modl": "_person(name(first=John;last=Smith));say=%person.name.first",
479
- "expected_output": "{\"say\":\"John\"}",
480
- "tested_features":["object_ref"]
481
- },
482
- { "input": "_person( \n name(\n first=John;\n last=Smith\n )\n);\nsay=%person.name.first",
483
- "minimised_modl": "_person(name(first=John;last=Smith));say=%person.name.first",
484
- "expected_output": "{\n \"say\" : \"John\"\n}\n",
485
- "tested_features":["object_ref"]
486
- },
487
- { "input": "_C=gb;\n_COUNTRIES(\n us=United States;\n gb=United Kingdom;\n de=Germany\n);\n\ncountry_name = %COUNTRIES.%C",
488
- "minimised_modl": "_C=gb;_COUNTRIES(us=United States;gb=United Kingdom;de=Germany);country_name=%COUNTRIES.%C",
489
- "expected_output": "{\n \"country_name\" : \"United Kingdom\"\n}\n",
490
- "tested_features":["object_ref"]
491
- },
492
- { "input": "*class(\n *id=car;\n *name=car;\n *superclass=map;\n *assign=[\n [m];\n [m;md]\n ]\n);\n\n_C=gb;\n\ncar=Bentley:{C=ru?ContinentalRussia GT/?Continental GT}",
493
- "minimised_modl": "*c(*i=car;*n=car;*s=map;*a=[m]:[m;md]);_C=gb;car=Bentley:{C=ru?ContinentalRussia GT/?Continental GT}",
494
- "expected_output": "{\n \"car\" : {\n \"m\" : \"Bentley\",\n \"md\" : \"Continental GT\"\n }\n}\n",
495
- "tested_features":["object_ref", "class", "assign", "conditional"]
496
- },
497
- { "input": "_person( \n name(\n first=\"John\"\n )\n);\na=%person.name.first",
498
- "minimised_modl": "_person(name(first=John));a=%person.name.first",
499
- "expected_output": "{\n \"a\" : \"John\"\n}\n",
500
- "tested_features":["object_ref"]
501
- },
502
- { "input": "?=[a;b;c;d]:[1;2;3;4;5];\ntest=%1",
503
- "minimised_modl": "?=[a;b;c;d]:[1;2;3;4;5];test=%1",
504
- "expected_output": "{\n \"test\" : [ 1, 2, 3, 4, 5 ]\n}\n",
505
- "tested_features":["object_ref"]
506
- },
507
- { "input": "_test=123;\nprint=%_test",
508
- "minimised_modl": "_test=123;print=%_test",
509
- "expected_output": "{\n \"print\" : 123\n}\n",
510
- "tested_features":["object_ref"]
511
- },
512
- { "input": "_test=abc;\n\n{\n test?\n result=test is defined\n /?\n result=test is not defined\n}",
513
- "minimised_modl": "_test=abc;{test?result=test is defined/?result=test is not defined}",
514
- "expected_output": "{\n \"result\" : \"test is defined\"\n}\n",
515
- "tested_features":["object_ref", "conditional"]
516
- },
517
- { "input": "{\n true?\n result=true\n}\n",
518
- "minimised_modl": "{01?result=01}",
519
- "expected_output": "{\n \"result\" : true\n}\n",
520
- "tested_features":["conditional"]
521
- },
522
- { "input": "_test=true;\n\n{\n test?\n result=%test\n}\n",
523
- "minimised_modl": "_test=01;{test?result=%test}",
524
- "expected_output": "{\n \"result\" : true\n}\n",
525
- "tested_features":["object_ref", "conditional"]
526
- },
527
- { "input": "_test=false;\n\n{\n test?\n result=result is true\n /?\n result=result is false\n}",
528
- "minimised_modl": "_test=00;{test?result=result is true/?result=result is false}",
529
- "expected_output": "{\n \"result\" : \"result is false\"\n}\n",
530
- "tested_features":["object_ref", "conditional"]
531
- },
532
- { "input": "{\n test?\n result=test is defined\n /?\n result=test is not defined\n}\n",
533
- "minimised_modl": "{test?result=test is defined/?result=test is not defined}",
534
- "expected_output": "{\n \"result\" : \"test is not defined\"\n}\n",
535
- "tested_features":["conditional"]
536
- },
537
- { "input": "{\n !test?\n result=test is not defined\n /?\n result=test is defined\n}\n",
538
- "minimised_modl": "{!test?result=test is not defined/?result=test is defined}",
539
- "expected_output": "{\n \"result\" : \"test is not defined\"\n}\n",
540
- "tested_features":["conditional"]
541
- },
542
- { "input": "_colour = green;\n_test = { colour=green? true /? false }; \n\n{\n !test?\n result=it's not green\n /?\n result=it's green\n}",
543
- "minimised_modl": "_colour=green;_test={colour=green?01/?00};{!test?result=it's not green/?result=it's green}",
544
- "expected_output": "{\n \"result\" : \"it's green\"\n}\n",
545
- "tested_features":["object_ref", "conditional"]
546
- },
547
- { "input": "_test=1;\nresult={\n %test=1?\n yes\n /?\n no\n}",
548
- "minimised_modl": "_test=1;result={%test=1?yes/?no}",
549
- "expected_output": "{\n \"result\" : \"yes\"\n}\n",
550
- "tested_features":["conditional", "object_ref"]
551
- },
552
- { "input": "_test=1;\nresult={\n test=1?\n yes\n /?\n no\n}",
553
- "minimised_modl": "_test=1;result={test=1?yes/?no}",
554
- "expected_output": "{\n \"result\" : \"yes\"\n}\n",
555
- "tested_features":["conditional", "object_ref"]
556
- },
557
- { "input": "_test=1;\nresult={\n _test=1?\n yes\n /?\n no\n}",
558
- "minimised_modl": "_test=1;result={_test=1?yes/?no}",
559
- "expected_output": "{\n \"result\" : \"yes\"\n}\n",
560
- "tested_features":["conditional", "object_ref"]
561
- },
562
- { "input": "_test=1;\nresult={\n %_test=1?\n yes\n /?\n no\n}",
563
- "minimised_modl": "_test=1;result={%_test=1?yes/?no}",
564
- "expected_output": "{\n \"result\" : \"yes\"\n}\n",
565
- "tested_features":["conditional", "object_ref"]
566
- },
567
- { "input": "?[[a;b;c];[one;two;three]];letters=%0;numbers=%1",
568
- "minimised_modl": "?=[a;b;c]:[one;two;three];letters=%0;numbers=%1",
569
- "expected_output": "[ {\n \"letters\" : [ \"a\", \"b\", \"c\" ]\n}, {\n \"numbers\" : [ \"one\", \"two\", \"three\" ]\n} ]\n",
570
- "tested_features":["object_ref"]
571
- },
572
- { "input": "?=[a;b;c]:[one;two;three];letters=%0;numbers=%1",
573
- "minimised_modl": "?=[a;b;c]:[one;two;three];letters=%0;numbers=%1",
574
- "expected_output": "[ {\n \"letters\" : [ \"a\", \"b\", \"c\" ]\n}, {\n \"numbers\" : [ \"one\", \"two\", \"three\" ]\n} ]\n",
575
- "tested_features":["object_ref"]
576
- },
577
- { "input": "?[a;b;c];letters=%0",
578
- "minimised_modl": "?=a:b:c;letters=%0",
579
- "expected_output": "{\n \"letters\" : \"a\"\n}\n",
580
- "tested_features":["object_ref"]
581
- },
582
- { "input": "?=[a;b;c]:[one;two;three];letters=%0;numbers=%1",
583
- "minimised_modl": "?=[a;b;c]:[one;two;three];letters=%0;numbers=%1",
584
- "expected_output": "[ {\n \"letters\" : [ \"a\", \"b\", \"c\" ]\n}, {\n \"numbers\" : [ \"one\", \"two\", \"three\" ]\n} ]\n",
585
- "tested_features":["object_ref"]
586
- },
587
- { "input": "test=[zero;one]:[a;b]",
588
- "minimised_modl": "test=[zero;one]:[a;b]",
589
- "expected_output": "{\n \"test\" : [ [ \"zero\", \"one\" ], [ \"a\", \"b\" ] ]\n}\n",
590
- "tested_features":["map", "array"]
591
- },
592
- { "input": "test=[zero;one]:[a;b]",
593
- "minimised_modl": "test=[zero;one]:[a;b]",
594
- "expected_output": "{\n \"test\" : [ [ \"zero\", \"one\" ], [ \"a\", \"b\" ] ]\n}\n",
595
- "tested_features":["map", "array"]
596
- },
597
- { "input": "?[zero;one;two];\nfirst_var=%0;\nsecond_var=%1;\nthird_var=%2",
598
- "minimised_modl": "?=zero:one:two;first_var=%0;second_var=%1;third_var=%2",
599
- "expected_output": "[ {\n \"first_var\" : \"zero\"\n}, {\n \"second_var\" : \"one\"\n}, {\n \"third_var\" : \"two\"\n} ]\n",
600
- "tested_features":["object_ref"]
601
- },
602
- { "input": "_C=gb;\no(\n{C=gb?test1=123};\ntest2=456\n)",
603
- "minimised_modl": "_C=gb;o({C=gb?test1=123};test2=456)",
604
- "expected_output": "{\n \"o\" : {\n \"test1\" : 123,\n \"test2\" : 456\n }\n}\n",
605
- "tested_features":["object_ref", "conditional"]
606
- },
607
- { "input": "{\ntrue?\n test=1\n}",
608
- "minimised_modl": "{01?test=1}",
609
- "expected_output": "{\n \"test\" : 1\n}\n",
610
- "tested_features":["conditional"]
611
- },
612
- { "input": "_test[a;b;c];alex=%test",
613
- "minimised_modl": "_test=a:b:c;alex=%test",
614
- "expected_output": "{\n \"alex\" : [ \"a\", \"b\", \"c\" ]\n}\n",
615
- "tested_features":["object_ref"]
616
- },
617
- { "input": "_test[a;b;c];alex=%test.0",
618
- "minimised_modl": "_test=a:b:c;alex=%test.0",
619
- "expected_output": "{\n \"alex\" : \"a\"\n}\n",
620
- "tested_features":["object_ref"]
621
- },
622
- { "input": "?[a;b;c];alex=%0",
623
- "minimised_modl": "?=a:b:c;alex=%0",
624
- "expected_output": "{\n \"alex\" : \"a\"\n}\n",
625
- "tested_features":["object_ref"]
626
- },
627
- { "input": "_bool=true;\n{\n%bool?\n test=1\n}",
628
- "minimised_modl": "_bool=01;{%bool?test=1}",
629
- "expected_output": "{\n \"test\" : 1\n}\n",
630
- "tested_features":["object_ref", "conditional"]
631
- },
632
- { "input": "_co = gb;\ntest = {\n co = gb?\n UK\n /?\n Other\n}",
633
- "minimised_modl": "_co=gb;test={co=gb?UK/?Other}",
634
- "expected_output": "{\n \"test\" : \"UK\"\n}\n",
635
- "tested_features":["object_ref", "conditional"]
636
- },
637
- { "input": "?=0:1:2;\nresult={\n%1>1?\n yes\n/?\n no\n}",
638
- "minimised_modl": "?=0:1:2;result={%1>1?yes/?no}",
639
- "expected_output": "{\n \"result\" : \"no\"\n}\n",
640
- "tested_features":["object_ref", "conditional"]
641
- },
642
- { "input": "_test_vars(\n one = 1;\n two = 2\n);\n\nfirst_number = %test_vars.one",
643
- "minimised_modl": "_test_vars(one=1;two=2);first_number=%test_vars.one",
644
- "expected_output": "{\n \"first_number\" : 1\n}\n",
645
- "tested_features":["object_ref", "conditional"]
646
- },
647
- { "input": "_C=gb;\n_COUNTRIES[\n United States;\n United Kingdom;\n Germany\n];\n\ncountry_name = %COUNTRIES.0",
648
- "minimised_modl": "_C=gb;_COUNTRIES=United States:United Kingdom:Germany;country_name=%COUNTRIES.0",
649
- "expected_output": "{\n \"country_name\" : \"United States\"\n}\n",
650
- "tested_features":["object_ref", "conditional"]
651
- },
652
- { "input": "(_C=gb;\n{C=gb?test1=123};\ntest2=456)",
653
- "minimised_modl": "(_C=gb;{C=gb?test1=123};test2=456)",
654
- "expected_output": "{\n \"test1\" : 123,\n \"test2\" : 456\n}\n",
655
- "tested_features":["object_ref", "conditional"]
656
- },
657
- { "input": "alex=1.2345",
658
- "minimised_modl": "alex=1.2345",
659
- "expected_output": "{\n \"alex\" : 1.2345\n}\n",
660
- "tested_features":["pair"]
661
- },
662
- { "input": "?=zero:one:two;\ndiscount=%30",
663
- "minimised_modl": "?=zero:one:two;discount=%30",
664
- "expected_output": "{\n \"discount\" : \"%30\"\n}\n",
665
- "tested_features":["object_ref"]
666
- },
667
- { "input": "{\ntrue?\n test=1\n}",
668
- "minimised_modl": "{01?test=1}",
669
- "expected_output": "{\n \"test\" : 1\n}\n",
670
- "tested_features":["conditional"]
671
- },
672
- { "input": "{\nTRUE?\n test=1\n}",
673
- "minimised_modl": "{01?test=1}",
674
- "expected_output": "{\n \"test\" : 1\n}\n",
675
- "tested_features":["conditional"]
676
- },
677
- { "input": "_test=abcdefg;\nresult={\n {test!=a*}?\n in\n /?\n out\n}",
678
- "minimised_modl": "_test=abcdefg;result={{test!=a*}?in/?out}",
679
- "expected_output": "{\n \"result\" : \"out\"\n}\n",
680
- "tested_features":["object_ref", "conditional"]
681
- },
682
- { "input": "test=[]",
683
- "minimised_modl": "test[]",
684
- "expected_output": "{\n \"test\" : [ ]\n}\n",
685
- "tested_features":["pair", "array"]
686
- },
687
- { "input": "test(\n empty_array=[];\n empty_map=()\n)\n",
688
- "minimised_modl": "test(empty_array[];empty_map())",
689
- "expected_output": "{\n \"test\" : {\n \"empty_array\" : [ ],\n \"empty_map\" : { }\n }\n}\n",
690
- "tested_features":["map", "array"]
691
- },
692
- { "input": "_num1 = 2;\n_num2 = 1000;\n\nresult={\n num1>num2?\n num1 is bigger\n /?\n num1 is not bigger\n}\n",
693
- "minimised_modl": "_num1=2;_num2=1000;result={num1>num2?num1 is bigger/?num1 is not bigger}",
694
- "expected_output": "{\n \"result\" : \"num1 is not bigger\"\n}\n",
695
- "tested_features":["object_ref", "conditional"]
696
- },
697
- { "input": "?=0:1:2;\nzero=%0;\none=%1;\ntwo=%2",
698
- "minimised_modl": "?=0:1:2;zero=%0;one=%1;two=%2",
699
- "expected_output": "[ {\n \"zero\" : 0\n}, {\n \"one\" : 1\n}, {\n \"two\" : 2\n} ]\n",
700
- "tested_features":["object_ref"]
701
- },
702
- { "input": "?=a:b:c;\nzero=%0;\none=%1;\ntwo=%2\n",
703
- "minimised_modl": "?=a:b:c;zero=%0;one=%1;two=%2",
704
- "expected_output": "[ {\n \"zero\" : \"a\"\n}, {\n \"one\" : \"b\"\n}, {\n \"two\" : \"c\"\n} ]\n",
705
- "tested_features":["object_ref"]
706
- },
707
- { "input": "_num1 = 5;\n_num2 = 2;\n\nresult={\n num1>num2?\n num1 is bigger\n /?\n num1 is not bigger\n}",
708
- "minimised_modl": "_num1=5;_num2=2;result={num1>num2?num1 is bigger/?num1 is not bigger}",
709
- "expected_output": "{\n \"result\" : \"num1 is bigger\"\n}\n",
710
- "tested_features":["object_ref", "conditional"]
711
- },
712
- { "input": "?=\"A\":B:C;\nfirst_letter=%0",
713
- "minimised_modl": "?=A:B:C;first_letter=%0",
714
- "expected_output": "{\n \"first_letter\" : \"A\"\n}\n",
715
- "tested_features":["object_ref"]
716
- },
717
- { "input": "test=100%",
718
- "minimised_modl": "test=100%",
719
- "expected_output": "{\n \"test\" : \"100%\"\n}\n",
720
- "tested_features":["pair"]
721
- },
722
- { "input": "test=`test`",
723
- "minimised_modl": "test=`test`",
724
- "expected_output": "{\n \"test\" : \"test\"\n}\n",
725
- "tested_features":["pair", "graves"]
726
- },
727
- { "input": "test=\u0021",
728
- "minimised_modl": "test=\u0021",
729
- "expected_output": "{\n \"test\" : \"!\"\n}\n",
730
- "tested_features":["pair"]
731
- },
732
- { "input": "test=[zero;one]",
733
- "minimised_modl": "test=zero:one",
734
- "expected_output": "{\n \"test\" : [ \"zero\", \"one\" ]\n}\n",
735
- "tested_features":["pair", "array"]
736
- },
737
- { "input": "_C=fr;\n{C=gb?test1=123};\ntest2=456",
738
- "minimised_modl": "_C=fr;{C=gb?test1=123};test2=456",
739
- "expected_output": "{\n \"test2\" : 456\n}\n",
740
- "tested_features":["object_ref", "conditional"]
741
- },
742
- { "input": "_C=ca;\n_L=en;\n{\n C=ca?\n n=Tesco Canada\n {L=fr?\n s=Chaque Petite Contribution\n }\n}",
743
- "minimised_modl": "_C=ca;_L=en;{C=ca?n=Tesco Canada;{L=fr?s=Chaque Petite Contribution}}",
744
- "expected_output": "{\n \"n\" : \"Tesco Canada\"\n}\n",
745
- "tested_features":["object_ref", "conditional"]
746
- },
747
- { "input": "_L=en;\n{\n C=ca?\n o(\n n=Tesco Canada;\n s={L=fr?\n Chaque Petite Contribution\n /?\n Every Little Helps\n }\n )\n}",
748
- "minimised_modl": "_L=en;{C=ca?o(n=Tesco Canada;s={L=fr?Chaque Petite Contribution/?Every Little Helps})}",
2
+ {
3
+ "id": "1",
4
+ "input": "*l=grammar_tests/test_import_dir/nested_import1.txt;\nfiles=%*load",
5
+ "expected_output": "{\n \"files\": [\n \"grammar_tests/test_import_dir/nested_import1.txt\",\n \"grammar_tests/test_import_dir/nested_import2.txt\",\n \"grammar_tests/test_import_dir/nested_import3.txt\",\n \"grammar_tests/test_import_dir/test_import.txt\"\n ]\n}",
6
+ "tested_features": [
7
+ "load"
8
+ ],
9
+ "minimised_modl": "*l=grammar_tests/test_import_dir/nested_import1.txt;files=%*load"
10
+ },
11
+ {
12
+ "id": "2",
13
+ "input": "*l=grammar_tests/1:grammar_tests/2:grammar_tests/3:grammar_tests/1;\nfiles=%*load",
14
+ "expected_output": "{\n \"files\": [\n \"grammar_tests/1.modl\",\n \"grammar_tests/2.modl\",\n \"grammar_tests/3.modl\",\n \"grammar_tests/1.modl\"\n ]\n}",
15
+ "tested_features": [
16
+ "load"
17
+ ],
18
+ "minimised_modl": "*l=grammar_tests/1:grammar_tests/2:grammar_tests/3:grammar_tests/1;files=%*load"
19
+ },
20
+ {
21
+ "id": "3",
22
+ "input": "*L=\"https://www.modl.uk/tests/message-thread.txt\";\n\nclasses=*class",
23
+ "expected_output": "{\n \"classes\": \"*class\"\n}",
24
+ "tested_features": [
25
+ "load"
26
+ ],
27
+ "minimised_modl": "*L=\"https://www.modl.uk/demo/message-thread.txt\";classes=*class"
28
+ },
29
+ {
30
+ "id": "4",
31
+ "input": "*method(\n *id=cn;\n *name=company_name;\n *transform=replace<-, >.trim<.>.initcap\n);\n\nm=%*method",
32
+ "expected_output": "{\n \"m\": [\n {\n \"cn\": {\n \"name\": \"company_name\",\n \"transform\": \"replace<-,>.trim<.>.initcap\"\n }\n }\n ]\n}",
33
+ "tested_features": [
34
+ "method"
35
+ ],
36
+ "minimised_modl": "*m(*i=cn;*n=company_name;*transform=replace<-, >.trim<.>.initcap);m=%*method"
37
+ },
38
+ {
39
+ "id": "5",
40
+ "input": "*L=\"https://www.modl.uk/tests/message-thread.txt\";\n*class(\n *id=a;\n *name=alpha;\n *superclass=map;\n v=victor\n);\n*class(\n *id=b;\n *name=bravo;\n *superclass=alpha;\n w=whisky\n);\n*class(\n *id=c;\n *name=charlie;\n *superclass=bravo;\n x=xray\n);\n*class(\n *id=d;\n *name=delta;\n *superclass=charlie;\n y=yankee\n);\nclasses=%*class",
41
+ "expected_output": "{\n \"classes\": [\n {\n \"m\": {\n \"name\": \"message\",\n \"superclass\": \"map\",\n \"assign\": [\n [\n \"direction\",\n \"date_time\",\n \"message\"\n ]\n ],\n \"method\": \"sms\"\n }\n },\n {\n \"a\": {\n \"name\": \"alpha\",\n \"superclass\": \"map\",\n \"v\": \"victor\"\n }\n },\n {\n \"b\": {\n \"name\": \"bravo\",\n \"superclass\": \"alpha\",\n \"w\": \"whisky\"\n }\n },\n {\n \"c\": {\n \"name\": \"charlie\",\n \"superclass\": \"bravo\",\n \"x\": \"xray\"\n }\n },\n {\n \"d\": {\n \"name\": \"delta\",\n \"superclass\": \"charlie\",\n \"y\": \"yankee\"\n }\n }\n ]\n}",
42
+ "tested_features": [
43
+ "load",
44
+ "class"
45
+ ],
46
+ "minimised_modl": "*L=\"https://www.modl.uk/tests/message-thread.txt\";*class(*id=a;*name=alpha;*superclass=map;v=victor)*class(*id=b;*name=bravo;*superclass=alpha;w=whisky);*class(*id=c;*name=charlie;*superclass=bravo;x=xray)*class(*id=d;*name=delta;*superclass=charlie;y=yankee)classes=%*class"
47
+ },
48
+ {
49
+ "id": "6",
50
+ "input": "_test1=one;\n_one=two;\n{\ntest1=`one`?\n result=match\n/?\n result=nomatch\n}",
51
+ "expected_output": "{\n \"result\": \"match\"\n}",
52
+ "tested_features": [
53
+ "conditional"
54
+ ],
55
+ "minimised_modl": "_test1=one;_one=two{test1=`one`?result=match/?result=nomatch}"
56
+ },
57
+ {
58
+ "id": "7",
59
+ "input": "_test1=one;\n_one=two;\n{\ntest1=`two`?\n result=match\n/?\n result=nomatch\n}",
60
+ "expected_output": "{\n \"result\": \"nomatch\"\n}",
61
+ "tested_features": [
62
+ "conditional"
63
+ ],
64
+ "minimised_modl": "_test1=one;_one=two{test1=`two`?result=match/?result=nomatch}"
65
+ },
66
+ {
67
+ "id": "8",
68
+ "input": "_test1=one;\n_one=two;\n{\ntest1=\"one\"?\n result=match\n/?\n result=nomatch\n}",
69
+ "expected_output": "{\n \"result\": \"match\"\n}",
70
+ "tested_features": [
71
+ "conditional"
72
+ ],
73
+ "minimised_modl": "_test1=one;_one=two{test1=\"one\"?result=match/?result=nomatch}"
74
+ },
75
+ {
76
+ "id": "9",
77
+ "input": "_test1=one;\n_one=two;\n{\ntest1=\"two\"?\n result=match\n/?\n result=nomatch\n}",
78
+ "expected_output": "{\n \"result\": \"nomatch\"\n}",
79
+ "tested_features": [
80
+ "conditional"
81
+ ],
82
+ "minimised_modl": "_test1=one;_one=two{test1=\"two\"?result=match/?result=nomatch}"
83
+ },
84
+ {
85
+ "id": "10",
86
+ "input": "DELETED",
87
+ "expected_output": "DELETED",
88
+ "tested_features": [
89
+ "DELETED"
90
+ ],
91
+ "minimised_modl": "DELETED"
92
+ },
93
+ {
94
+ "id": "11",
95
+ "input": "_x=a:b:c:d;\n_y=[1;2;3;4];\nz={%x.1=b | %y.2=1?}\n",
96
+ "expected_output": "{\n \"z\": true\n}",
97
+ "tested_features": [
98
+ "conditional",
99
+ "object_ref"
100
+ ],
101
+ "minimised_modl": "_x=a:b:c:d;_y=[1;2;3;4];z={%x.1=b | %y.2=1?}"
102
+ },
103
+ {
104
+ "id": "12",
105
+ "input": "_x=a:b:c:d;\n_y=[1;2;3;4];\nz={%x.1=b & %y.2=1?}\n",
106
+ "expected_output": "{\n \"z\": false\n}",
107
+ "tested_features": [
108
+ "conditional",
109
+ "object_ref"
110
+ ],
111
+ "minimised_modl": "_x=a:b:c:d;_y=[1;2;3;4];z={%x.1=b & %y.2=1?}"
112
+ },
113
+ {
114
+ "id": "13",
115
+ "input": "_x=a:b:c:d;\n_y=[1;2;3;4];\nz={%x.1=b&%y.2=3?}",
116
+ "expected_output": "{\n \"z\": true\n}",
117
+ "tested_features": [
118
+ "conditional",
119
+ "object_ref"
120
+ ],
121
+ "minimised_modl": "_x=a:b:c:d;_y=[1;2;3;4];z={%x.1=b&%y.2=3?}"
122
+ },
123
+ {
124
+ "id": "14",
125
+ "input": "_x=a:b:c:d;\n_y=[1;2;3;4];\nz={%x.1=b|%y.2=3?}",
126
+ "expected_output": "{\n \"z\": true\n}",
127
+ "tested_features": [
128
+ "conditional",
129
+ "object_ref"
130
+ ],
131
+ "minimised_modl": "_x=a:b:c:d;_y=[1;2;3;4];z={%x.1=b|%y.2=3?}"
132
+ },
133
+ {
134
+ "id": "15",
135
+ "input": "_x=a:b:c:d;\n_y=[1;2;3;4];\nz={%x.1=b|%y.2=x?}",
136
+ "expected_output": "{\n \"z\": true\n}",
137
+ "tested_features": [
138
+ "conditional",
139
+ "object_ref"
140
+ ],
141
+ "minimised_modl": "_x=a:b:c:d;_y=[1;2;3;4];z={%x.1=b|%y.2=x?}"
142
+ },
143
+ {
144
+ "id": "16",
145
+ "input": "_x=a:b:c:d;\n_y=[1;2;3;4];\nz={%x.1=a|%y.2=3?}",
146
+ "expected_output": "{\n \"z\": true\n}",
147
+ "tested_features": [
148
+ "conditional",
149
+ "object_ref"
150
+ ],
151
+ "minimised_modl": "_x=a:b:c:d;_y=[1;2;3;4];z={%x.1=a|%y.2=3?}"
152
+ },
153
+ {
154
+ "id": "17",
155
+ "input": "_x=a:b:c:d;\n_y=[1;2;3;4];\nx={%x.1=%y.2?}",
156
+ "expected_output": "{\n \"x\": false\n}",
157
+ "tested_features": [
158
+ "conditional",
159
+ "object_ref"
160
+ ],
161
+ "minimised_modl": "_x=a:b:c:d;_y=[1;2;3;4];x={%x.1=%y.2?}"
162
+ },
163
+ {
164
+ "id": "18",
165
+ "input": "_x=[1;2;3;4];\n_y=[1;2;3;4];\nx={%x.2=%y.2?}",
166
+ "expected_output": "{\n \"x\": true\n}",
167
+ "tested_features": [
168
+ "conditional",
169
+ "object_ref"
170
+ ],
171
+ "minimised_modl": "_x=[1;2;3;4];_y=[1;2;3;4];x={%x.2=%y.2?}"
172
+ },
173
+ {
174
+ "id": "19",
175
+ "input": "_country=gb;\n{\n country = gb | country = us?\n support_number=+441270123456\n /?\n support_number=+14161234567\n}",
176
+ "expected_output": "{\n \"support_number\": \"+441270123456\"\n}",
177
+ "tested_features": [
178
+ "conditional",
179
+ "object_ref"
180
+ ],
181
+ "minimised_modl": "_country=gb{country = gb | country = us?support_number=+441270123456/?support_number=+14161234567}"
182
+ },
183
+ {
184
+ "id": "20",
185
+ "input": "_country=gb;\n{\n country = us | country = gb?\n support_number=+441270123456\n /?\n support_number=+14161234567\n}",
186
+ "expected_output": "{\n \"support_number\": \"+441270123456\"\n}",
187
+ "tested_features": [
188
+ "conditional",
189
+ "object_ref"
190
+ ],
191
+ "minimised_modl": "_country=gb{country = us | country = gb?support_number=+441270123456/?support_number=+14161234567}"
192
+ },
193
+ {
194
+ "id": "21",
195
+ "input": "?=a:b:c:d;12%3=1",
196
+ "expected_output": "{\n \"12d\": 1\n}",
197
+ "tested_features": [
198
+ "object_ref"
199
+ ],
200
+ "minimised_modl": "?=a:b:c:d;12%3=1"
201
+ },
202
+ {
203
+ "id": "22",
204
+ "input": "(\n name=%`e1afmkfd`.p;\n department=%` -7sbcecqbdsccxfizhcp6b8ah`.p\n)",
205
+ "expected_output": "{\n \"name\": \"пример\",\n \"department\": \"обслуживание клиентов\"\n}",
206
+ "tested_features": [
207
+ "puny"
208
+ ],
209
+ "minimised_modl": "(name=%`e1afmkfd`.p;department=%` -7sbcecqbdsccxfizhcp6b8ah`.p)"
210
+ },
211
+ {
212
+ "id": "23",
213
+ "input": "\"%`80aafnhi4ae`.p.u\"=%`lsa12dvaxki`.p.u",
214
+ "expected_output": "{\n \"НАЗВАНИЕ\": \"БОРИ́С\"\n}",
215
+ "tested_features": [
216
+ "puny",
217
+ "string_method"
218
+ ],
219
+ "minimised_modl": "%`80aafnhi4ae`.p=%`lsa12dvaxki`.p"
220
+ },
221
+ {
222
+ "id": "24",
223
+ "input": "(\n _name = John;\n %name.u = \"Developer\";\n foo = %name.u\n)",
224
+ "expected_output": "{\n \"JOHN\": \"Developer\",\n \"foo\": \"JOHN\"\n}",
225
+ "tested_features": [
226
+ "string_method"
227
+ ],
228
+ "minimised_modl": "(_name = John;%name.u = \"Developer\";foo = %name.u)"
229
+ },
230
+ {
231
+ "id": "25",
232
+ "input": "(\n _name = John;\n %name.u = \"Developer\";\n foo = %JOHN\n)",
233
+ "expected_output": "{\n \"JOHN\": \"Developer\",\n \"foo\": \"Developer\"\n}",
234
+ "tested_features": [
235
+ "string_method",
236
+ "object_ref"
237
+ ],
238
+ "minimised_modl": "(_name=John;%name.u=\"Developer\";foo = %JOHN)"
239
+ },
240
+ {
241
+ "id": "26",
242
+ "input": "(\n _name = John;\n %name = \"Developer\";\n foo = %John\n)",
243
+ "expected_output": "{\n \"John\": \"Developer\",\n \"foo\": \"Developer\"\n}",
244
+ "tested_features": [
245
+ "object_ref"
246
+ ],
247
+ "minimised_modl": "(_name=John;%name=\"Developer\";foo = %John)"
248
+ },
249
+ {
250
+ "id": "27",
251
+ "input": "_array[1;2];\n_array_item=%array.0;\ntest={\n array_item=%array.0?\n yes\n /?\n no\n}",
252
+ "expected_output": "{\n \"test\": \"yes\"\n}",
253
+ "tested_features": [
254
+ "conditional",
255
+ "object_ref"
256
+ ],
257
+ "minimised_modl": "_array[1;2];_array_item=%array.0;test={array_item=%array.0?yes/?no}"
258
+ },
259
+ {
260
+ "id": "28",
261
+ "input": "_array[1;2];\ntest={\n %array.0=1?\n yes\n /?\n no\n}",
262
+ "expected_output": "{\n \"test\": \"yes\"\n}",
263
+ "tested_features": [
264
+ "conditional",
265
+ "object_ref"
266
+ ],
267
+ "minimised_modl": "_array[1;2];test={%array.0=1?yes/?no}"
268
+ },
269
+ {
270
+ "id": "29",
271
+ "input": "_array[1;2];\n_array_item=%array.0;\ntest={\n array_item=1?\n yes\n /?\n no\n}",
272
+ "expected_output": "{\n \"test\": \"yes\"\n}",
273
+ "tested_features": [
274
+ "conditional",
275
+ "object_ref"
276
+ ],
277
+ "minimised_modl": "_array[1;2];_array_item=%array.0;test={array_item=1?yes/?no}"
278
+ },
279
+ {
280
+ "id": "30",
281
+ "input": "_person( \n name(\n speak=say;\n first=John;\n last=Smith\n )\n);\njust %person.name.speak.u%_this=Hello %person.name.first.d!",
282
+ "expected_output": "{\n \"just SAY_this\": \"Hello john!\"\n}",
283
+ "tested_features": [
284
+ "string_method",
285
+ "object_ref"
286
+ ],
287
+ "minimised_modl": "_person(name(speak=say;first=John;last=Smith));just %person.name.speak.u%_this=Hello %person.name.first.d!"
288
+ },
289
+ {
290
+ "id": "31",
291
+ "input": "*class(\n *i=test;\n *a=[\n [one;two;three]\n ]\n);\ntest=1:2:3",
292
+ "expected_output": "{\n \"test\": {\n \"one\": 1,\n \"two\": 2,\n \"three\": 3\n }\n}",
293
+ "tested_features": [
294
+ "class",
295
+ "assign"
296
+ ],
297
+ "minimised_modl": "*class(\n *i=test\n *a=[\n [one;two;three]\n ]\n)\ntest=1:2:3"
298
+ },
299
+ {
300
+ "id": "32",
301
+ "input": "*class(\n *i=test;\n *a=[\n [one;two;three]\n ]\n);\n\ntest=1:2:(a=Alpha;b=Bravo;c=Charlie)",
302
+ "expected_output": "{\n \"test\": {\n \"one\": 1,\n \"two\": 2,\n \"three\": {\n \"a\": \"Alpha\",\n \"b\": \"Bravo\",\n \"c\": \"Charlie\"\n }\n }\n}",
303
+ "tested_features": [
304
+ "class",
305
+ "assign"
306
+ ],
307
+ "minimised_modl": "*class(\n *i=test\n *a=[\n [one;two;three]\n ]\n)\n\ntest=1:2:(a=Alpha;b=Bravo;c=Charlie)"
308
+ },
309
+ {
310
+ "id": "33",
311
+ "input": "*class(\n *i=test;\n *a=[\n [one;two;three]\n ]\n);\n\ntest=1:2:[a;b;c]",
312
+ "expected_output": "{\n \"test\": {\n \"one\": 1,\n \"two\": 2,\n \"three\": [\n \"a\",\n \"b\",\n \"c\"\n ]\n }\n}",
313
+ "tested_features": [
314
+ "class",
315
+ "assign"
316
+ ],
317
+ "minimised_modl": "*class(\n *i=test\n *a=[\n [one;two;three]\n ]\n)\n\ntest=1:2:[a;b;c]"
318
+ },
319
+ {
320
+ "id": "34",
321
+ "input": "_name = John;\n%name = \"123\"",
322
+ "expected_output": "{\n \"John\": \"123\"\n}",
323
+ "tested_features": [
324
+ "object_ref"
325
+ ],
326
+ "minimised_modl": "_name = John;%name = \"123\""
327
+ },
328
+ {
329
+ "id": "35",
330
+ "input": "[\none;\ntwo;\nthree;\n]",
331
+ "expected_output": "[\n \"one\",\n \"two\",\n \"three\"\n]",
332
+ "tested_features": [
333
+ "array"
334
+ ],
335
+ "minimised_modl": "[one;two;three;]"
336
+ },
337
+ {
338
+ "id": "36",
339
+ "input": "[\none;\ntwo;\nthree\n]",
340
+ "expected_output": "[\n \"one\",\n \"two\",\n \"three\"\n]",
341
+ "tested_features": [
342
+ "array"
343
+ ],
344
+ "minimised_modl": "[one;two;three]"
345
+ },
346
+ {
347
+ "id": "37",
348
+ "input": "_country = gb;\nsupport_contact = {\ncountry=gb?\n}",
349
+ "expected_output": "{\n \"support_contact\": true\n}",
350
+ "tested_features": [
351
+ "object_ref",
352
+ "conditional"
353
+ ],
354
+ "minimised_modl": "_country=gb;support_contact={country=gb?}"
355
+ },
356
+ {
357
+ "id": "38",
358
+ "input": " *class(\n *id=a;\n *name=alpha;\n *superclass=map;\n v=victor\n);\n*class(\n *id=b;\n *name=bravo;\n *superclass=alpha;\n w=whisky\n);\n*class(\n *id=c;\n *name=charlie;\n *superclass=bravo;\n x=xray\n);\n*class(\n *id=d;\n *name=delta;\n *superclass=charlie;\n y=yankee\n);\nd(test1=test2)",
359
+ "expected_output": "{\n \"delta\": {\n \"test1\": \"test2\",\n \"y\": \"yankee\",\n \"x\": \"xray\",\n \"w\": \"whisky\",\n \"v\": \"victor\"\n }\n}",
360
+ "tested_features": [
361
+ "class"
362
+ ],
363
+ "minimised_modl": "*class(*id=a;*name=alpha;*superclass=map;v=victor)*class(*id=b;*name=bravo;*superclass=alpha;w=whisky)*class(*id=c;*name=charlie;*superclass=bravo;x=xray);*class(*id=d;*name=delta;*superclass=charlie;y=yankee)d(test1=test2)"
364
+ },
365
+ {
366
+ "id": "39",
367
+ "input": "*class(\n *id=a;\n *name=alpha;\n *superclass=map;\n v=victor\n);\n*class(\n *id=b;\n *name=bravo;\n *superclass=a;\n w=whisky\n);\n*class(\n *id=c;\n *name=charlie;\n *superclass=b;\n x=xray\n);\n*class(\n *id=d;\n *name=delta;\n *superclass=c;\n y=yankee\n);\nd(test1=test2)",
368
+ "expected_output": "{\n \"delta\": {\n \"test1\": \"test2\",\n \"y\": \"yankee\",\n \"x\": \"xray\",\n \"w\": \"whisky\",\n \"v\": \"victor\"\n }\n}",
369
+ "tested_features": [
370
+ "class"
371
+ ],
372
+ "minimised_modl": "*class(*id=a;*name=alpha;*superclass=map;v=victor)*class(*id=b;*name=bravo;*superclass=a;w=whisky)*class(*id=c;*name=charlie;*superclass=b;x=xray)*class(*id=d;*name=delta;*superclass=c;y=yankee)d(test1=test2)"
373
+ },
374
+ {
375
+ "id": "40",
376
+ "input": "_test=[[a;b]];letters2=%test.0.0",
377
+ "expected_output": "{\n \"letters2\": \"a\"\n}",
378
+ "tested_features": [
379
+ "object_ref"
380
+ ],
381
+ "minimised_modl": "_test=[[a;b]];letters2=%test.0.0"
382
+ },
383
+ {
384
+ "id": "41",
385
+ "input": "?=`e1afmkfd`:` -7sbcecqbdsccxfizhcp6b8ah`;(name=%0.p;department=%1.p)",
386
+ "expected_output": "{\n \"name\": \"пример\",\n \"department\": \"обслуживание клиентов\"\n}",
387
+ "tested_features": [
388
+ "object_ref",
389
+ "puny"
390
+ ],
391
+ "minimised_modl": "?=`e1afmkfd`:` -7sbcecqbdsccxfizhcp6b8ah`;(name=%0.p;department=%1.p)"
392
+ },
393
+ {
394
+ "id": "42",
395
+ "input": "*class(*id=object;*superclass=arr);sales(name=John Smith;telephone=44800 555 555);service(name=Jim Brown;telephone=44800 666 666)",
396
+ "expected_output": "[\n {\n \"sales\": {\n \"name\": \"John Smith\",\n \"telephone\": \"44800 555 555\"\n }\n },\n {\n \"service\": {\n \"name\": \"Jim Brown\",\n \"telephone\": \"44800 666 666\"\n }\n }\n]",
397
+ "tested_features": [
398
+ "class"
399
+ ],
400
+ "minimised_modl": "*c(*id=object;*superclass=arr);sales(name=John Smith;telephone=44800 555 555);service(name=Jim Brown;telephone=44800 666 666)"
401
+ },
402
+ {
403
+ "id": "43",
404
+ "input": "*class(\n *id=p;\n *NAME=person\n);\n\np(name=John Smith;dob=01/01/2001)",
405
+ "expected_output": "{\n \"person\": {\n \"name\": \"John Smith\",\n \"dob\": \"01/01/2001\"\n }\n}",
406
+ "tested_features": [
407
+ "class"
408
+ ],
409
+ "minimised_modl": "*c(*i=p;*N=person);p(name=John Smith;dob=01/01/2001)"
410
+ },
411
+ {
412
+ "id": "44",
413
+ "input": "*class(*id=a;*name=age);a=10",
414
+ "expected_output": "{\n \"age\": 10\n}",
415
+ "tested_features": [
416
+ "class"
417
+ ],
418
+ "minimised_modl": "*class(*id=a;*name=age);a=10"
419
+ },
420
+ {
421
+ "id": "45",
422
+ "input": "*class(*id=a;*name=age;*superclass=num);a=10",
423
+ "expected_output": "{\n \"age\": 10\n}",
424
+ "tested_features": [
425
+ "class"
426
+ ],
427
+ "minimised_modl": "*class(*id=a;*name=age;*superclass=num);a=10"
428
+ },
429
+ {
430
+ "id": "46",
431
+ "input": "*class(*id=a;*name=age;*superclass=str);a=10",
432
+ "expected_output": "{\n \"age\": \"10\"\n}",
433
+ "tested_features": [
434
+ "class"
435
+ ],
436
+ "minimised_modl": "*class(*id=a;*name=age;*superclass=str);a=10"
437
+ },
438
+ {
439
+ "id": "47",
440
+ "input": "*class(*id=newstr;*superclass=str);*class(*id=a;*name=age;*superclass=newstr);a=10",
441
+ "expected_output": "{\n \"age\": \"10\"\n}",
442
+ "tested_features": [
443
+ "class"
444
+ ],
445
+ "minimised_modl": "*class(*id=newstr;*superclass=str);*class(*id=a;*name=age;*superclass=newstr);a=10"
446
+ },
447
+ {
448
+ "id": "48",
449
+ "input": "?[[a;b;c]];letters=%0",
450
+ "expected_output": "{\n \"letters\": [\n \"a\",\n \"b\",\n \"c\"\n ]\n}",
451
+ "tested_features": [
452
+ "object_ref"
453
+ ],
454
+ "minimised_modl": "?[[a;b;c]];letters=%0"
455
+ },
456
+ {
457
+ "id": "49",
458
+ "input": "?=[a;b;c;d]:[1;2;3;4;5];\ntest=%1.0",
459
+ "expected_output": "{\n \"test\": 1\n}",
460
+ "tested_features": [
461
+ "object_ref"
462
+ ],
463
+ "minimised_modl": "?=[a;b;c;d]:[1;2;3;4;5];test=%1.0"
464
+ },
465
+ {
466
+ "id": "50",
467
+ "input": "_test=123;object(print_test = %test.test)",
468
+ "expected_output": "{\n \"object\": {\n \"print_test\": \"123.test\"\n }\n}",
469
+ "tested_features": [
470
+ "object_ref"
471
+ ],
472
+ "minimised_modl": "_test=123;object(print_test = %test.test)"
473
+ },
474
+ {
475
+ "id": "51",
476
+ "input": "?=one:two:three;test1=%0;test2=%1;test3=%2;test4=%3;test5=%4;test6=%5;test7=%6;test8=%7;test9=%8",
477
+ "expected_output": "[\n {\n \"test1\": \"one\"\n },\n {\n \"test2\": \"two\"\n },\n {\n \"test3\": \"three\"\n },\n {\n \"test4\": \"%3\"\n },\n {\n \"test5\": \"%4\"\n },\n {\n \"test6\": \"%5\"\n },\n {\n \"test7\": \"%6\"\n },\n {\n \"test8\": \"%7\"\n },\n {\n \"test9\": \"%8\"\n }\n]",
478
+ "tested_features": [
479
+ "object_ref"
480
+ ],
481
+ "minimised_modl": "?=one:two:three;test1=%0;test2=%1;test3=%2;test4=%3;test5=%4;test6=%5;test7=%6;test8=%7;test9=%8"
482
+ },
483
+ {
484
+ "id": "52",
485
+ "input": "a=1:2:3;b=4:5:6",
486
+ "expected_output": "[\n {\n \"a\": [\n 1,\n 2,\n 3\n ]\n },\n {\n \"b\": [\n 4,\n 5,\n 6\n ]\n }\n]",
487
+ "tested_features": [
488
+ "nbArray"
489
+ ],
490
+ "minimised_modl": "a=1:2:3;b=4:5:6"
491
+ },
492
+ {
493
+ "id": "53",
494
+ "input": "DELETED",
495
+ "expected_output": "DELETED",
496
+ "tested_features": [
497
+ "DELETED"
498
+ ],
499
+ "minimised_modl": "DELETED"
500
+ },
501
+ {
502
+ "id": "54",
503
+ "input": "DELETED",
504
+ "expected_output": "DELETED",
505
+ "tested_features": [
506
+ "DELETED"
507
+ ],
508
+ "minimised_modl": "DELETED"
509
+ },
510
+ {
511
+ "id": "55",
512
+ "input": "a=1:2:3;\nb=4:5:6",
513
+ "expected_output": "[\n {\n \"a\": [\n 1,\n 2,\n 3\n ]\n },\n {\n \"b\": [\n 4,\n 5,\n 6\n ]\n }\n]",
514
+ "tested_features": [
515
+ "nbArray"
516
+ ],
517
+ "minimised_modl": "a=1:2:3;\nb=4:5:6"
518
+ },
519
+ {
520
+ "id": "56",
521
+ "input": "DELETED",
522
+ "expected_output": "DELETED",
523
+ "tested_features": [
524
+ "DELETED"
525
+ ],
526
+ "minimised_modl": "DELETED"
527
+ },
528
+ {
529
+ "id": "57",
530
+ "input": "a=1:2:3\n;\nb=4:5:6",
531
+ "expected_output": "[\n {\n \"a\": [\n 1,\n 2,\n 3\n ]\n },\n {\n \"b\": [\n 4,\n 5,\n 6\n ]\n }\n]",
532
+ "tested_features": [
533
+ "nbArray"
534
+ ],
535
+ "minimised_modl": "a=1:2:3\n;\nb=4:5:6"
536
+ },
537
+ {
538
+ "id": "58",
539
+ "input": "_test=(a=b=c=d=f);\nx=%test.a.b.c.d",
540
+ "expected_output": "{\n \"x\": \"f\"\n}",
541
+ "tested_features": [
542
+ "object_ref"
543
+ ],
544
+ "minimised_modl": "_test=(a=b=c=d=f)\nx=%test.a.b.c.d"
545
+ },
546
+ {
547
+ "id": "59",
548
+ "input": "a(b(c(d(e(f=1)))));\ntesting=%a.b.c.d.e.f",
549
+ "expected_output": "[\n {\n \"a\": {\n \"b\": {\n \"c\": {\n \"d\": {\n \"e\": {\n \"f\": 1\n }\n }\n }\n }\n }\n },\n {\n \"testing\": 1\n }\n]",
550
+ "tested_features": [
551
+ "object_ref"
552
+ ],
553
+ "minimised_modl": "a(b(c(d(e(f=1)))))\ntesting=%a.b.c.d.e.f"
554
+ },
555
+ {
556
+ "id": "60",
557
+ "input": "_test=(a=b=c=d=f);\ntesting=%test.a.b.c.d",
558
+ "expected_output": "{\n \"testing\": \"f\"\n}",
559
+ "tested_features": [
560
+ "object_ref"
561
+ ],
562
+ "minimised_modl": "_test=(a=b=c=d=f)\ntesting=%test.a.b.c.d"
563
+ },
564
+ {
565
+ "id": "61",
566
+ "input": "a=\nb\n=c;\nd=e",
567
+ "expected_output": "[\n {\n \"a\": {\n \"b\": \"c\"\n }\n },\n {\n \"d\": \"e\"\n }\n]",
568
+ "tested_features": [
569
+ "map"
570
+ ],
571
+ "minimised_modl": "a=\nb\n=c\nd=e"
572
+ },
573
+ {
574
+ "id": "62",
575
+ "input": "test=this is a #hashtag test;test2=#testing 123",
576
+ "expected_output": "[\n {\n \"test\": \"this is a #hashtag test\"\n },\n {\n \"test2\": \"#testing 123\"\n }\n]",
577
+ "tested_features": [
578
+ "pair"
579
+ ],
580
+ "minimised_modl": "test=this is a #hashtag test;test2=#testing 123"
581
+ },
582
+ {
583
+ "id": "63",
584
+ "input": "a=(b=c=d=e=f)",
585
+ "expected_output": "{\n \"a\": {\n \"b\": {\n \"c\": {\n \"d\": {\n \"e\": \"f\"\n }\n }\n }\n }\n}",
586
+ "tested_features": [
587
+ "map"
588
+ ],
589
+ "minimised_modl": "a=(b=c=d=e=f)"
590
+ },
591
+ {
592
+ "id": "64",
593
+ "input": "a=b=c=d=e=f",
594
+ "expected_output": "{\n \"a\": {\n \"b\": {\n \"c\": {\n \"d\": {\n \"e\": \"f\"\n }\n }\n }\n }\n}",
595
+ "tested_features": [
596
+ "map"
597
+ ],
598
+ "minimised_modl": "a=b=c=d=e=f"
599
+ },
600
+ {
601
+ "id": "65",
602
+ "input": "a=(b=(c=(d=(e=f))))",
603
+ "expected_output": "{\n \"a\": {\n \"b\": {\n \"c\": {\n \"d\": {\n \"e\": \"f\"\n }\n }\n }\n }\n}",
604
+ "tested_features": [
605
+ "map"
606
+ ],
607
+ "minimised_modl": "a=(b=(c=(d=(e=f))))"
608
+ },
609
+ {
610
+ "id": "66",
611
+ "input": "country=gb;\nx=[{ country=gb ? this /country=us? that }]",
612
+ "expected_output": "[\n {\n \"country\": \"gb\"\n },\n {\n \"x\": [\n \"this\"\n ]\n }\n]",
613
+ "tested_features": [
614
+ "object_ref",
615
+ "conditional"
616
+ ],
617
+ "minimised_modl": "country=gb;x=[{ country=gb? this /country=us? that }]"
618
+ },
619
+ {
620
+ "id": "67",
621
+ "input": "_a=3;_b=3;c={a=b?true/?false}",
622
+ "expected_output": "{\n \"c\": true\n}",
623
+ "tested_features": [
624
+ "object_ref",
625
+ "conditional"
626
+ ],
627
+ "minimised_modl": "_a=3;_b=3;c={a=b?true/?false}"
628
+ },
629
+ {
630
+ "id": "68",
631
+ "input": "a=1;b=2;b={{a=1}|{b=2}?true/?false}",
632
+ "expected_output": "[\n {\n \"a\": 1\n },\n {\n \"b\": 2\n },\n {\n \"b\": true\n }\n]",
633
+ "tested_features": [
634
+ "conditional"
635
+ ],
636
+ "minimised_modl": "a=1;b=2;b={{a=1}|{b=2}?true/?false}"
637
+ },
638
+ {
639
+ "id": "69",
640
+ "input": "_a=1;\n_b=2;\nx={a=b?}",
641
+ "expected_output": "{\n \"x\": false\n}",
642
+ "tested_features": [
643
+ "object_ref",
644
+ "conditional"
645
+ ],
646
+ "minimised_modl": "_a=1;_b=2;x={a=b?}"
647
+ },
648
+ {
649
+ "id": "70",
650
+ "input": "_a=1;\n_b=1;\nx={a=b?}",
651
+ "expected_output": "{\n \"x\": true\n}",
652
+ "tested_features": [
653
+ "object_ref",
654
+ "conditional"
655
+ ],
656
+ "minimised_modl": "_a=1;_b=1;x={a=b?}"
657
+ },
658
+ {
659
+ "id": "71",
660
+ "input": "_testing = quick-test of John's variable_methods;\nupcase_example = %testing.u;\ndowncase_example = %testing.d;\ninitcap_example = %testing.i;\nsentence_example = %testing.s;\nurl_encode_example = %testing.u.e",
661
+ "expected_output": "[\n {\n \"upcase_example\": \"QUICK-TEST OF JOHN'S VARIABLE_METHODS\"\n },\n {\n \"downcase_example\": \"quick-test of john's variable_methods\"\n },\n {\n \"initcap_example\": \"Quick-test Of John's Variable_methods\"\n },\n {\n \"sentence_example\": \"Quick-test of John's variable_methods\"\n },\n {\n \"url_encode_example\": \"QUICK-TEST+OF+JOHN%27S+VARIABLE_METHODS\"\n }\n]",
662
+ "tested_features": [
663
+ "string_method"
664
+ ],
665
+ "minimised_modl": "_testing=quick-test of John's variable_methods;upcase_example=%testing.u;downcase_example=%testing.d;initcap_example=%testing.i;sentence_example=%testing.s;url_encode_example=%testing.u.e"
666
+ },
667
+ {
668
+ "id": "72",
669
+ "input": "*VERSION=1;\n\"test\"=1",
670
+ "expected_output": "{\n \"test\": 1\n}",
671
+ "tested_features": [
672
+ "version"
673
+ ],
674
+ "minimised_modl": "*VERSION=1;test=1"
675
+ },
676
+ {
677
+ "id": "73",
678
+ "input": "*VERSION=100;\n\"test\"=1",
679
+ "expected_output": "{\n \"test\": 1\n}",
680
+ "tested_features": [
681
+ "version"
682
+ ],
683
+ "minimised_modl": "*VERSION=100;test=1"
684
+ },
685
+ {
686
+ "id": "74",
687
+ "input": "*class(\n *id=g;\n *name=glossary;\n *superclass=map\n);\n*class(\n *id=t;\n *name=title;\n *superclass=str\n);\n*class(\n *id=d;\n *name=GlossDiv;\n *superclass=map\n);\n*class(\n *id=l;\n *name=GlossList;\n *superclass=map\n);\n*class(\n *id=e;\n *name=GlossEntry;\n *superclass=map;\n *assign[\n [i;s;gt;a;ab;gd;gs]\n ]\n);\n*class(\n *id=i;\n *name=ID;\n *superclass=str\n);\n*class(\n *id=s;\n *name=SortAs;\n *superclass=str\n);\n*class(\n *id=gt;\n *name=GlossTerm;\n *superclass=str\n);\n*class(\n *id=a;\n *name=Acronym;\n *superclass=str\n);\n*class(\n *id=ab;\n *name=Abbrev;\n *superclass=str\n);\n*class(\n *id=gd;\n *name=GlossDef;\n *superclass=map;\n *assign=[\n [p];\n [p;sa]\n ]\n);\n*class(\n *id=p;\n *name=para;\n *superclass=str\n);\n*class(\n *id=sa;\n *name=SeeAlso;\n *superclass=arr\n);\n*class(\n *id=gs;\n *name=GlossSee;\n *superclass=str\n);\n\ng(\n ?=[SGML;markup;language];\n t=example glossary;\n d(\n t=S;\n l(\n e(\n i=%0;\n s=%0;\n gt=Standard Generalized %1.s %2.s;\n a=%0;\n ab=ISO 8879\\:1986;\n gd=A meta-%1 %2, used to create %1 %2%s such as DocBook.\n :[GML;XML];\n gs=%1\n )\n )\n )\n)",
688
+ "expected_output": "{\n \"glossary\": {\n \"title\": \"example glossary\",\n \"GlossDiv\": {\n \"title\": \"S\",\n \"GlossList\": {\n \"GlossEntry\": {\n \"ID\": \"SGML\",\n \"SortAs\": \"SGML\",\n \"GlossTerm\": \"Standard Generalized Markup Language\",\n \"Acronym\": \"SGML\",\n \"Abbrev\": \"ISO 8879:1986\",\n \"GlossDef\": {\n \"para\": \"A meta-markup language, used to create markup languages such as DocBook.\",\n \"SeeAlso\": [\n \"GML\",\n \"XML\"\n ]\n },\n \"GlossSee\": \"markup\"\n }\n }\n }\n }\n}",
689
+ "tested_features": [
690
+ "class",
691
+ "object_ref",
692
+ "string_method"
693
+ ],
694
+ "minimised_modl": "*c(*i=g;*n=glossary;*s=map);*c(*i=t;*n=title;*s=str);*c(*i=d;*n=GlossDiv;*s=map);*c(*i=l;*n=GlossList;*s=map);*c(*i=e;*n=GlossEntry;*s=map;*a[[i;s;gt;a;ab;gd;gs]]);*c(*i=i;*n=ID;*s=str);*c(*i=s;*n=SortAs;*s=str);*c(*i=gt;*n=GlossTerm;*s=str);*c(*i=a;*n=Acronym;*s=str);*c(*i=ab;*n=Abbrev;*s=str);*c(*i=gd;*n=GlossDef;*s=map;*a=[p]:[p;sa]);*c(*i=p;*n=para;*s=str);*c(*i=sa;*n=SeeAlso;*s=arr);*c(*i=gs;*n=GlossSee;*s=str);g(?=SGML:markup:language;t=example glossary;d(t=S;l(e(i=%0;s=%0;gt=Standard Generalized %1.s %2.s;a=%0;ab=ISO 8879~:1986;gd=A meta-%1 %2, used to create %1 %2%s such as DocBook.:[GML;XML];gs=%1))))"
695
+ },
696
+ {
697
+ "id": "75",
698
+ "input": "_test=1~:2;\n\nresult={\n test=1~:2?\n yes\n /?\n no\n}",
699
+ "expected_output": "{\n \"result\": \"yes\"\n}",
700
+ "tested_features": [
701
+ "class",
702
+ "object_ref",
703
+ "conditional"
704
+ ],
705
+ "minimised_modl": "_test=1~:2;result={test=1~:2?yes/?no}"
706
+ },
707
+ {
708
+ "id": "76",
709
+ "input": "_test=\"http://www.tesco.com\";\n\nresult={\n test=\"http://www.tesco.com\"?\n yes\n /?\n no\n}",
710
+ "expected_output": "{\n \"result\": \"yes\"\n}",
711
+ "tested_features": [
712
+ "class",
713
+ "object_ref",
714
+ "conditional"
715
+ ],
716
+ "minimised_modl": "_test=http~://www.tesco.com;result={test=\"http://www.tesco.com\"?yes/?no}"
717
+ },
718
+ {
719
+ "id": "77",
720
+ "input": "DELETED",
721
+ "expected_output": "DELETED",
722
+ "tested_features": [
723
+ "DELETED"
724
+ ],
725
+ "minimised_modl": "DELETED"
726
+ },
727
+ {
728
+ "id": "78",
729
+ "input": "_branch=\"alex.\";\n_root=d;\nnamespace=%branch%blah.%root",
730
+ "expected_output": "{\n \"namespace\": \"alex.blah.d\"\n}",
731
+ "tested_features": [
732
+ "object_ref"
733
+ ],
734
+ "minimised_modl": "_branch=\"alex.\";_root=d;namespace=%branch%blah.%root"
735
+ },
736
+ {
737
+ "id": "79",
738
+ "input": "namespace=%branch%blah.%root",
739
+ "expected_output": "{\n \"namespace\": \"%branch%blah.%root\"\n}",
740
+ "tested_features": [
741
+ "pair",
742
+ "graves"
743
+ ],
744
+ "minimised_modl": "namespace=%branch%blah.%root"
745
+ },
746
+ {
747
+ "id": "80",
748
+ "input": "_root=tesco.com;\n_branch=direct.;\nnamespace1=%branch%numrecord.%root;\nnamespace2=%branch%_%root%.numq.net",
749
+ "expected_output": "[\n {\n \"namespace1\": \"direct.numrecord.tesco.com\"\n },\n {\n \"namespace2\": \"direct._tesco.com.numq.net\"\n }\n]",
750
+ "tested_features": [
751
+ "object_ref",
752
+ "graves"
753
+ ],
754
+ "minimised_modl": "_root=tesco.com;_branch=direct.;namespace1=%branch%numrecord.%root;namespace2=%branch%_%root%.numq.net"
755
+ },
756
+ {
757
+ "id": "81",
758
+ "input": "_branch=\"\";\n_root=\"\";\nnamespace=%branch%numrecord.%root",
759
+ "expected_output": "{\n \"namespace\": \"numrecord.\"\n}",
760
+ "tested_features": [
761
+ "object_ref",
762
+ "graves"
763
+ ],
764
+ "minimised_modl": "_branch=\"\";_root=\"\";namespace=%branch%numrecord.%root"
765
+ },
766
+ {
767
+ "id": "82",
768
+ "input": "*class(\n *id=desc;\n *name=description;\n *superclass=str\n);\n\n*class(\n *id=val;\n *name=value;\n *superclass=str\n);\n\n*class(\n *id=media1;\n *name=media1;\n *superclass=map;\n *assign=[\n [desc;val]\n ]\n);\n\n*class(\n *id=media2;\n *name=media2;\n *superclass=map;\n *assign=[\n [desc;val]\n ]\n);\n*class(\n *id=list;\n *name=list;\n *superclass=map;\n *assign[\n [media1;media2]\n ]\n);\n\n\nlist=[tel;fb]:[yt;tw]",
769
+ "expected_output": "{\n \"list\": {\n \"media1\": {\n \"description\": \"tel\",\n \"value\": \"fb\"\n },\n \"media2\": {\n \"description\": \"yt\",\n \"value\": \"tw\"\n }\n }\n}",
770
+ "tested_features": [
771
+ "class",
772
+ "assign"
773
+ ],
774
+ "minimised_modl": "*c(*i=desc;*n=description;*s=str);*c(*i=val;*n=value;*s=str);*c(*i=media1;*n=media1;*s=map;*a[[desc;val]]);*c(*i=media2;*n=media2;*s=map;*a[[desc;val]]);*c(*i=list;*n=list;*s=map;*a[[media1;media2]]);list=[tel;fb]:[yt;tw]"
775
+ },
776
+ {
777
+ "id": "83",
778
+ "input": "*CLASS(\n *id=p;\n *name=person;\n *SUPERCLASS=map\n);\n\np(name=John Smith;dob=01/01/2000)",
779
+ "expected_output": "{\n \"person\": {\n \"name\": \"John Smith\",\n \"dob\": \"01/01/2000\"\n }\n}",
780
+ "tested_features": [
781
+ "class"
782
+ ],
783
+ "minimised_modl": "*C(*i=p;*n=person;*S=map);p(name=John Smith;dob=01/01/2000)"
784
+ },
785
+ {
786
+ "id": "84",
787
+ "input": "*c(\n *i=m;\n *n=message;\n *S=map;\n *a=[\n [direction;date_time;message]\n ];\n method=sms\n);\nm=in:2018-03-22:hi",
788
+ "expected_output": "{\n \"message\": {\n \"direction\": \"in\",\n \"date_time\": \"2018-03-22\",\n \"message\": \"hi\",\n \"method\": \"sms\"\n }\n}",
789
+ "tested_features": [
790
+ "class",
791
+ "assign"
792
+ ],
793
+ "minimised_modl": "*c(*i=m;*n=message;*S=map;*a[[direction;date_time;message]];method=sms);m=in:2018-03-22:hi"
794
+ },
795
+ {
796
+ "id": "85",
797
+ "input": "*class(\n *id=car;\n *name=car;\n *superclass=map\n);\n\ncar(\n make=Bentley\n)",
798
+ "expected_output": "{\n \"car\": {\n \"make\": \"Bentley\"\n }\n}",
799
+ "tested_features": [
800
+ "class"
801
+ ],
802
+ "minimised_modl": "*c(*i=car;*n=car;*s=map);car(make=Bentley)"
803
+ },
804
+ {
805
+ "id": "86",
806
+ "input": "?=[one;two];\ntest=Blah %0.s %1.s",
807
+ "expected_output": "{\n \"test\": \"Blah One Two\"\n}",
808
+ "tested_features": [
809
+ "object_ref",
810
+ "graves",
811
+ "string_method"
812
+ ],
813
+ "minimised_modl": "?=one:two;test=Blah %0.s %1.s"
814
+ },
815
+ {
816
+ "id": "87",
817
+ "input": "?=one:two;\ntest=Blah %0.r<o,huzzah> %1.t<w>",
818
+ "expected_output": "{\n \"test\": \"Blah huzzahne t\"\n}",
819
+ "tested_features": [
820
+ "object_ref",
821
+ "graves",
822
+ "string_method"
823
+ ],
824
+ "minimised_modl": "?=one:two;test=Blah %0.r<o,huzzah> %1.t<w>"
825
+ },
826
+ {
827
+ "id": "88",
828
+ "input": "_test=\"123\";\nobject(\n print_test = %test%.test\n)",
829
+ "expected_output": "{\n \"object\": {\n \"print_test\": \"123.test\"\n }\n}",
830
+ "tested_features": [
831
+ "object_ref"
832
+ ],
833
+ "minimised_modl": "_test=\"123\";object(print_test=%test%.test)"
834
+ },
835
+ {
836
+ "id": "89",
837
+ "input": "_var = NotThisOne;\n_var=%var%blah;\nout=%var%deblah",
838
+ "expected_output": "{\n \"out\": \"NotThisOneblahdeblah\"\n}",
839
+ "tested_features": [
840
+ "object_ref"
841
+ ],
842
+ "minimised_modl": "_var = NotThisOne;_var=%var%blah;out=%var%deblah"
843
+ },
844
+ {
845
+ "id": "90",
846
+ "input": "_var = NotThisOne;\n_var=blah;\nout=%var%deblah",
847
+ "expected_output": "{\n \"out\": \"blahdeblah\"\n}",
848
+ "tested_features": [
849
+ "object_ref"
850
+ ],
851
+ "minimised_modl": "_var = NotThisOne;_var=blah;out=%var%deblah"
852
+ },
853
+ {
854
+ "id": "91",
855
+ "input": "test(\n map(\n array[]\n );\n array[\n map();\n array[1;2;3]\n ]\n)",
856
+ "expected_output": "{\n \"test\": {\n \"map\": {\n \"array\": []\n },\n \"array\": [\n {\n \"map\": {}\n },\n {\n \"array\": [\n 1,\n 2,\n 3\n ]\n }\n ]\n }\n}",
857
+ "tested_features": [
858
+ "array",
859
+ "map"
860
+ ],
861
+ "minimised_modl": "test(map(array[]);array[map();array=1:2:3])"
862
+ },
863
+ {
864
+ "id": "92",
865
+ "input": "{\n01?\n test=1\n}",
866
+ "expected_output": "{\n \"test\": 1\n}",
867
+ "tested_features": [
868
+ "conditional",
869
+ "pair"
870
+ ],
871
+ "minimised_modl": "{01?test=1}"
872
+ },
873
+ {
874
+ "id": "93",
875
+ "input": "test=()",
876
+ "expected_output": "{\n \"test\": {}\n}",
877
+ "tested_features": [
878
+ "map"
879
+ ],
880
+ "minimised_modl": "test()"
881
+ },
882
+ {
883
+ "id": "94",
884
+ "input": "_co=at;\n_l=de;\n{\n co=at?\n country=Austria\n language={\n l=fr?\n French\n /l=de?\n German\n /?\n Other\n }\n /?\n country=Other\n}",
885
+ "expected_output": "[\n {\n \"country\": \"Austria\"\n },\n {\n \"language\": \"German\"\n }\n]",
886
+ "tested_features": [
887
+ "conditional"
888
+ ],
889
+ "minimised_modl": "_co=at;_l=de;{co=at?country=Austria;language={l=fr?French/l=de?German/?Other}/?country=Other}"
890
+ },
891
+ {
892
+ "id": "95",
893
+ "input": "true2 = 01;\ntrue1 = true;\nfalse2 = 00;\nfalse1 = false;\nnull2 = 000;\nnull1 = null",
894
+ "expected_output": "[\n {\n \"true2\": true\n },\n {\n \"true1\": true\n },\n {\n \"false2\": false\n },\n {\n \"false1\": false\n },\n {\n \"null2\": null\n },\n {\n \"null1\": null\n }\n]",
895
+ "tested_features": [
896
+ "bool",
897
+ "map",
898
+ "null"
899
+ ],
900
+ "minimised_modl": "true2=01;true1=01;false2=00;false1=00;null2=000;null1=000"
901
+ },
902
+ {
903
+ "id": "96",
904
+ "input": "_person( \n name(\n first=John;\n last=Smith\n )\n);\nsay=%person.name.first",
905
+ "expected_output": "{\n \"say\": \"John\"\n}",
906
+ "tested_features": [
907
+ "object_ref"
908
+ ],
909
+ "minimised_modl": "_person(name(first=John;last=Smith));say=%person.name.first"
910
+ },
911
+ {
912
+ "id": "97",
913
+ "input": "DELETED",
914
+ "expected_output": "DELETED",
915
+ "tested_features": [
916
+ "DELETED"
917
+ ],
918
+ "minimised_modl": "DELETED"
919
+ },
920
+ {
921
+ "id": "98",
922
+ "input": "_C=gb;\n_COUNTRIES(\n us=United States;\n gb=United Kingdom;\n de=Germany\n);\n\ncountry_name = %COUNTRIES.%C",
923
+ "expected_output": "{\n \"country_name\": \"United Kingdom\"\n}",
924
+ "tested_features": [
925
+ "object_ref"
926
+ ],
927
+ "minimised_modl": "_C=gb;_COUNTRIES(us=United States;gb=United Kingdom;de=Germany);country_name=%COUNTRIES.%C"
928
+ },
929
+ {
930
+ "id": "99",
931
+ "input": "*class(\n *id=car;\n *name=car;\n *superclass=map;\n *assign=[\n [m];\n [m;md]\n ]\n);\n\n_C=gb;\n\ncar=Bentley:{C=ru?ContinentalRussia GT/?Continental GT}",
932
+ "expected_output": "{\n \"car\": {\n \"m\": \"Bentley\",\n \"md\": \"Continental GT\"\n }\n}",
933
+ "tested_features": [
934
+ "object_ref",
935
+ "class",
936
+ "assign",
937
+ "conditional"
938
+ ],
939
+ "minimised_modl": "*c(*i=car;*n=car;*s=map;*a=[m]:[m;md]);_C=gb;car=Bentley:{C=ru?ContinentalRussia GT/?Continental GT}"
940
+ },
941
+ {
942
+ "id": "100",
943
+ "input": "_person( \n name(\n first=\"John\"\n )\n);\na=%person.name.first",
944
+ "expected_output": "{\n \"a\": \"John\"\n}",
945
+ "tested_features": [
946
+ "object_ref"
947
+ ],
948
+ "minimised_modl": "_person(name(first=John));a=%person.name.first"
949
+ },
950
+ {
951
+ "id": "101",
952
+ "input": "?=[a;b;c;d]:[1;2;3;4;5];\ntest=%1",
953
+ "expected_output": "{\n \"test\": [\n 1,\n 2,\n 3,\n 4,\n 5\n ]\n}",
954
+ "tested_features": [
955
+ "object_ref"
956
+ ],
957
+ "minimised_modl": "?=[a;b;c;d]:[1;2;3;4;5];test=%1"
958
+ },
959
+ {
960
+ "id": "102",
961
+ "input": "_test=123;\nprint=%_test",
962
+ "expected_output": "{\n \"print\": 123\n}",
963
+ "tested_features": [
964
+ "object_ref"
965
+ ],
966
+ "minimised_modl": "_test=123;print=%_test"
967
+ },
968
+ {
969
+ "id": "103",
970
+ "input": "_test=abc;\n\n{\n test?\n result=test is defined\n /?\n result=test is not defined\n}",
971
+ "expected_output": "{\n \"result\": \"test is defined\"\n}",
972
+ "tested_features": [
973
+ "object_ref",
974
+ "conditional"
975
+ ],
976
+ "minimised_modl": "_test=abc;{test?result=test is defined/?result=test is not defined}"
977
+ },
978
+ {
979
+ "id": "104",
980
+ "input": "{\n true?\n result=true\n}\n",
981
+ "expected_output": "{\n \"result\": true\n}",
982
+ "tested_features": [
983
+ "conditional"
984
+ ],
985
+ "minimised_modl": "{01?result=01}"
986
+ },
987
+ {
988
+ "id": "105",
989
+ "input": "_test=true;\n\n{\n test?\n result=%test\n}\n",
990
+ "expected_output": "{\n \"result\": true\n}",
991
+ "tested_features": [
992
+ "object_ref",
993
+ "conditional"
994
+ ],
995
+ "minimised_modl": "_test=01;{test?result=%test}"
996
+ },
997
+ {
998
+ "id": "106",
999
+ "input": "_test=false;\n\n{\n test?\n result=result is true\n /?\n result=result is false\n}",
1000
+ "expected_output": "{\n \"result\": \"result is false\"\n}",
1001
+ "tested_features": [
1002
+ "object_ref",
1003
+ "conditional"
1004
+ ],
1005
+ "minimised_modl": "_test=00;{test?result=result is true/?result=result is false}"
1006
+ },
1007
+ {
1008
+ "id": "107",
1009
+ "input": "{\n test?\n result=test is defined\n /?\n result=test is not defined\n}\n",
1010
+ "expected_output": "{\n \"result\": \"test is not defined\"\n}",
1011
+ "tested_features": [
1012
+ "conditional"
1013
+ ],
1014
+ "minimised_modl": "{test?result=test is defined/?result=test is not defined}"
1015
+ },
1016
+ {
1017
+ "id": "108",
1018
+ "input": "{\n !test?\n result=test is not defined\n /?\n result=test is defined\n}\n",
1019
+ "expected_output": "{\n \"result\": \"test is not defined\"\n}",
1020
+ "tested_features": [
1021
+ "conditional"
1022
+ ],
1023
+ "minimised_modl": "{!test?result=test is not defined/?result=test is defined}"
1024
+ },
1025
+ {
1026
+ "id": "109",
1027
+ "input": "_colour = green;\n_test = { colour=green? true /? false }; \n\n{\n !test?\n result=it's not green\n /?\n result=it's green\n}",
1028
+ "expected_output": "{\n \"result\": \"it's green\"\n}",
1029
+ "tested_features": [
1030
+ "object_ref",
1031
+ "conditional"
1032
+ ],
1033
+ "minimised_modl": "_colour=green;_test={colour=green?01/?00};{!test?result=it's not green/?result=it's green}"
1034
+ },
1035
+ {
1036
+ "id": "110",
1037
+ "input": "_test=1;\nresult={\n %test=1?\n yes\n /?\n no\n}",
1038
+ "expected_output": "{\n \"result\": \"yes\"\n}",
1039
+ "tested_features": [
1040
+ "conditional",
1041
+ "object_ref"
1042
+ ],
1043
+ "minimised_modl": "_test=1;result={%test=1?yes/?no}"
1044
+ },
1045
+ {
1046
+ "id": "111",
1047
+ "input": "_test=1;\nresult={\n test=1?\n yes\n /?\n no\n}",
1048
+ "expected_output": "{\n \"result\": \"yes\"\n}",
1049
+ "tested_features": [
1050
+ "conditional",
1051
+ "object_ref"
1052
+ ],
1053
+ "minimised_modl": "_test=1;result={test=1?yes/?no}"
1054
+ },
1055
+ {
1056
+ "id": "112",
1057
+ "input": "_test=1;\nresult={\n _test=1?\n yes\n /?\n no\n}",
1058
+ "expected_output": "{\n \"result\": \"yes\"\n}",
1059
+ "tested_features": [
1060
+ "conditional",
1061
+ "object_ref"
1062
+ ],
1063
+ "minimised_modl": "_test=1;result={_test=1?yes/?no}"
1064
+ },
1065
+ {
1066
+ "id": "113",
1067
+ "input": "_test=1;\nresult={\n %_test=1?\n yes\n /?\n no\n}",
1068
+ "expected_output": "{\n \"result\": \"yes\"\n}",
1069
+ "tested_features": [
1070
+ "conditional",
1071
+ "object_ref"
1072
+ ],
1073
+ "minimised_modl": "_test=1;result={%_test=1?yes/?no}"
1074
+ },
1075
+ {
1076
+ "id": "114",
1077
+ "input": "?[[a;b;c];[one;two;three]];letters=%0;numbers=%1",
1078
+ "expected_output": "[\n {\n \"letters\": [\n \"a\",\n \"b\",\n \"c\"\n ]\n },\n {\n \"numbers\": [\n \"one\",\n \"two\",\n \"three\"\n ]\n }\n]",
1079
+ "tested_features": [
1080
+ "object_ref"
1081
+ ],
1082
+ "minimised_modl": "?=[a;b;c]:[one;two;three];letters=%0;numbers=%1"
1083
+ },
1084
+ {
1085
+ "id": "115",
1086
+ "input": "?=[a;b;c]:[one;two;three];letters=%0;numbers=%1",
1087
+ "expected_output": "[\n {\n \"letters\": [\n \"a\",\n \"b\",\n \"c\"\n ]\n },\n {\n \"numbers\": [\n \"one\",\n \"two\",\n \"three\"\n ]\n }\n]",
1088
+ "tested_features": [
1089
+ "object_ref"
1090
+ ],
1091
+ "minimised_modl": "?=[a;b;c]:[one;two;three];letters=%0;numbers=%1"
1092
+ },
1093
+ {
1094
+ "id": "116",
1095
+ "input": "?[a;b;c];letters=%0",
1096
+ "expected_output": "{\n \"letters\": \"a\"\n}",
1097
+ "tested_features": [
1098
+ "object_ref"
1099
+ ],
1100
+ "minimised_modl": "?=a:b:c;letters=%0"
1101
+ },
1102
+ {
1103
+ "id": "117",
1104
+ "input": "DELETED",
1105
+ "expected_output": "DELETED",
1106
+ "tested_features": [
1107
+ "DELETED"
1108
+ ],
1109
+ "minimised_modl": "DELETED"
1110
+ },
1111
+ {
1112
+ "id": "118",
1113
+ "input": "test=[zero;one]:[a;b]",
1114
+ "expected_output": "{\n \"test\": [\n [\n \"zero\",\n \"one\"\n ],\n [\n \"a\",\n \"b\"\n ]\n ]\n}",
1115
+ "tested_features": [
1116
+ "map",
1117
+ "array"
1118
+ ],
1119
+ "minimised_modl": "test=[zero;one]:[a;b]"
1120
+ },
1121
+ {
1122
+ "id": "119",
1123
+ "input": "DELETED",
1124
+ "expected_output": "DELETED",
1125
+ "tested_features": [
1126
+ "DELETED"
1127
+ ],
1128
+ "minimised_modl": "DELETED"
1129
+ },
1130
+ {
1131
+ "id": "120",
1132
+ "input": "?[zero;one;two];\nfirst_var=%0;\nsecond_var=%1;\nthird_var=%2",
1133
+ "expected_output": "[\n {\n \"first_var\": \"zero\"\n },\n {\n \"second_var\": \"one\"\n },\n {\n \"third_var\": \"two\"\n }\n]",
1134
+ "tested_features": [
1135
+ "object_ref"
1136
+ ],
1137
+ "minimised_modl": "?=zero:one:two;first_var=%0;second_var=%1;third_var=%2"
1138
+ },
1139
+ {
1140
+ "id": "121",
1141
+ "input": "_C=gb;\no(\n{C=gb?test1=123};\ntest2=456\n)",
1142
+ "expected_output": "{\n \"o\": {\n \"test1\": 123,\n \"test2\": 456\n }\n}",
1143
+ "tested_features": [
1144
+ "object_ref",
1145
+ "conditional"
1146
+ ],
1147
+ "minimised_modl": "_C=gb;o({C=gb?test1=123};test2=456)"
1148
+ },
1149
+ {
1150
+ "id": "122",
1151
+ "input": "{\ntrue?\n test=1\n}",
1152
+ "expected_output": "{\n \"test\": 1\n}",
1153
+ "tested_features": [
1154
+ "conditional"
1155
+ ],
1156
+ "minimised_modl": "{01?test=1}"
1157
+ },
1158
+ {
1159
+ "id": "123",
1160
+ "input": "_test[a;b;c];alex=%test",
1161
+ "expected_output": "{\n \"alex\": [\n \"a\",\n \"b\",\n \"c\"\n ]\n}",
1162
+ "tested_features": [
1163
+ "object_ref"
1164
+ ],
1165
+ "minimised_modl": "_test=a:b:c;alex=%test"
1166
+ },
1167
+ {
1168
+ "id": "124",
1169
+ "input": "_test[a;b;c];alex=%test.0",
1170
+ "expected_output": "{\n \"alex\": \"a\"\n}",
1171
+ "tested_features": [
1172
+ "object_ref"
1173
+ ],
1174
+ "minimised_modl": "_test=a:b:c;alex=%test.0"
1175
+ },
1176
+ {
1177
+ "id": "125",
1178
+ "input": "?[a;b;c];alex=%0",
1179
+ "expected_output": "{\n \"alex\": \"a\"\n}",
1180
+ "tested_features": [
1181
+ "object_ref"
1182
+ ],
1183
+ "minimised_modl": "?=a:b:c;alex=%0"
1184
+ },
1185
+ {
1186
+ "id": "126",
1187
+ "input": "_bool=true;\n{\n%bool?\n test=1\n}",
1188
+ "expected_output": "{\n \"test\": 1\n}",
1189
+ "tested_features": [
1190
+ "object_ref",
1191
+ "conditional"
1192
+ ],
1193
+ "minimised_modl": "_bool=01;{%bool?test=1}"
1194
+ },
1195
+ {
1196
+ "id": "127",
1197
+ "input": "_co = gb;\ntest = {\n co = gb?\n UK\n /?\n Other\n}",
1198
+ "expected_output": "{\n \"test\": \"UK\"\n}",
1199
+ "tested_features": [
1200
+ "object_ref",
1201
+ "conditional"
1202
+ ],
1203
+ "minimised_modl": "_co=gb;test={co=gb?UK/?Other}"
1204
+ },
1205
+ {
1206
+ "id": "128",
1207
+ "input": "?=0:1:2;\nresult={\n%1>1?\n yes\n/?\n no\n}",
1208
+ "expected_output": "{\n \"result\": \"no\"\n}",
1209
+ "tested_features": [
1210
+ "object_ref",
1211
+ "conditional"
1212
+ ],
1213
+ "minimised_modl": "?=0:1:2;result={%1>1?yes/?no}"
1214
+ },
1215
+ {
1216
+ "id": "129",
1217
+ "input": "_test_vars(\n one = 1;\n two = 2\n);\n\nfirst_number = %test_vars.one",
1218
+ "expected_output": "{\n \"first_number\": 1\n}",
1219
+ "tested_features": [
1220
+ "object_ref",
1221
+ "conditional"
1222
+ ],
1223
+ "minimised_modl": "_test_vars(one=1;two=2);first_number=%test_vars.one"
1224
+ },
1225
+ {
1226
+ "id": "130",
1227
+ "input": "_C=gb;\n_COUNTRIES[\n United States;\n United Kingdom;\n Germany\n];\n\ncountry_name = %COUNTRIES.0",
1228
+ "expected_output": "{\n \"country_name\": \"United States\"\n}",
1229
+ "tested_features": [
1230
+ "object_ref",
1231
+ "conditional"
1232
+ ],
1233
+ "minimised_modl": "_C=gb;_COUNTRIES=United States:United Kingdom:Germany;country_name=%COUNTRIES.0"
1234
+ },
1235
+ {
1236
+ "id": "131",
1237
+ "input": "(_C=gb;\n{C=gb?test1=123};\ntest2=456)",
1238
+ "expected_output": "{\n \"test1\": 123,\n \"test2\": 456\n}",
1239
+ "tested_features": [
1240
+ "object_ref",
1241
+ "conditional"
1242
+ ],
1243
+ "minimised_modl": "(_C=gb;{C=gb?test1=123};test2=456)"
1244
+ },
1245
+ {
1246
+ "id": "132",
1247
+ "input": "alex=1.2345",
1248
+ "expected_output": "{\n \"alex\": 1.2345\n}",
1249
+ "tested_features": [
1250
+ "pair"
1251
+ ],
1252
+ "minimised_modl": "alex=1.2345"
1253
+ },
1254
+ {
1255
+ "id": "133",
1256
+ "input": "?=zero:one:two;\ndiscount=%30",
1257
+ "expected_output": "{\n \"discount\": \"%30\"\n}",
1258
+ "tested_features": [
1259
+ "object_ref"
1260
+ ],
1261
+ "minimised_modl": "?=zero:one:two;discount=%30"
1262
+ },
1263
+ {
1264
+ "id": "134",
1265
+ "input": "DELETED",
1266
+ "expected_output": "DELETED",
1267
+ "tested_features": [
1268
+ "DELETED"
1269
+ ],
1270
+ "minimised_modl": "DELETED"
1271
+ },
1272
+ {
1273
+ "id": "135",
1274
+ "input": "{\nTRUE?\n test=1\n}",
1275
+ "expected_output": "{\n \"test\": 1\n}",
1276
+ "tested_features": [
1277
+ "conditional"
1278
+ ],
1279
+ "minimised_modl": "{01?test=1}"
1280
+ },
1281
+ {
1282
+ "id": "136",
1283
+ "input": "_test=abcdefg;\nresult={\n {test!=a*}?\n in\n /?\n out\n}",
1284
+ "expected_output": "{\n \"result\": \"out\"\n}",
1285
+ "tested_features": [
1286
+ "object_ref",
1287
+ "conditional"
1288
+ ],
1289
+ "minimised_modl": "_test=abcdefg;result={{test!=a*}?in/?out}"
1290
+ },
1291
+ {
1292
+ "id": "137",
1293
+ "input": "test=[]",
1294
+ "expected_output": "{\n \"test\": []\n}",
1295
+ "tested_features": [
1296
+ "pair",
1297
+ "array"
1298
+ ],
1299
+ "minimised_modl": "test[]"
1300
+ },
1301
+ {
1302
+ "id": "138",
1303
+ "input": "test(\n empty_array=[];\n empty_map=()\n)\n",
1304
+ "expected_output": "{\n \"test\": {\n \"empty_array\": [],\n \"empty_map\": {}\n }\n}",
1305
+ "tested_features": [
1306
+ "map",
1307
+ "array"
1308
+ ],
1309
+ "minimised_modl": "test(empty_array[];empty_map())"
1310
+ },
1311
+ {
1312
+ "id": "139",
1313
+ "input": "_num1 = 2;\n_num2 = 1000;\n\nresult={\n num1>num2?\n num1 is bigger\n /?\n num1 is not bigger\n}\n",
1314
+ "expected_output": "{\n \"result\": \"num1 is not bigger\"\n}",
1315
+ "tested_features": [
1316
+ "object_ref",
1317
+ "conditional"
1318
+ ],
1319
+ "minimised_modl": "_num1=2;_num2=1000;result={num1>num2?num1 is bigger/?num1 is not bigger}"
1320
+ },
1321
+ {
1322
+ "id": "140",
1323
+ "input": "?=0:1:2;\nzero=%0;\none=%1;\ntwo=%2",
1324
+ "expected_output": "[\n {\n \"zero\": 0\n },\n {\n \"one\": 1\n },\n {\n \"two\": 2\n }\n]",
1325
+ "tested_features": [
1326
+ "object_ref"
1327
+ ],
1328
+ "minimised_modl": "?=0:1:2;zero=%0;one=%1;two=%2"
1329
+ },
1330
+ {
1331
+ "id": "141",
1332
+ "input": "?=a:b:c;\nzero=%0;\none=%1;\ntwo=%2\n",
1333
+ "expected_output": "[\n {\n \"zero\": \"a\"\n },\n {\n \"one\": \"b\"\n },\n {\n \"two\": \"c\"\n }\n]",
1334
+ "tested_features": [
1335
+ "object_ref"
1336
+ ],
1337
+ "minimised_modl": "?=a:b:c;zero=%0;one=%1;two=%2"
1338
+ },
1339
+ {
1340
+ "id": "142",
1341
+ "input": "_num1 = 5;\n_num2 = 2;\n\nresult={\n num1>num2?\n num1 is bigger\n /?\n num1 is not bigger\n}",
1342
+ "expected_output": "{\n \"result\": \"num1 is bigger\"\n}",
1343
+ "tested_features": [
1344
+ "object_ref",
1345
+ "conditional"
1346
+ ],
1347
+ "minimised_modl": "_num1=5;_num2=2;result={num1>num2?num1 is bigger/?num1 is not bigger}"
1348
+ },
1349
+ {
1350
+ "id": "143",
1351
+ "input": "?=\"A\":B:C;\nfirst_letter=%0",
1352
+ "expected_output": "{\n \"first_letter\": \"A\"\n}",
1353
+ "tested_features": [
1354
+ "object_ref"
1355
+ ],
1356
+ "minimised_modl": "?=A:B:C;first_letter=%0"
1357
+ },
1358
+ {
1359
+ "id": "144",
1360
+ "input": "test=100%",
1361
+ "expected_output": "{\n \"test\": \"100%\"\n}",
1362
+ "tested_features": [
1363
+ "pair"
1364
+ ],
1365
+ "minimised_modl": "test=100%"
1366
+ },
1367
+ {
1368
+ "id": "145",
1369
+ "input": "test=`test`",
1370
+ "expected_output": "{\n \"test\": \"test\"\n}",
1371
+ "tested_features": [
1372
+ "pair",
1373
+ "graves"
1374
+ ],
1375
+ "minimised_modl": "test=`test`"
1376
+ },
1377
+ {
1378
+ "id": "146",
1379
+ "input": "test=!",
1380
+ "expected_output": "{\n \"test\": \"!\"\n}",
1381
+ "tested_features": [
1382
+ "pair"
1383
+ ],
1384
+ "minimised_modl": "test=!"
1385
+ },
1386
+ {
1387
+ "id": "147",
1388
+ "input": "test=[zero;one]",
1389
+ "expected_output": "{\n \"test\": [\n \"zero\",\n \"one\"\n ]\n}",
1390
+ "tested_features": [
1391
+ "pair",
1392
+ "array"
1393
+ ],
1394
+ "minimised_modl": "test=zero:one"
1395
+ },
1396
+ {
1397
+ "id": "148",
1398
+ "input": "_C=fr;\n{C=gb?test1=123};\ntest2=456",
1399
+ "expected_output": "{\n \"test2\": 456\n}",
1400
+ "tested_features": [
1401
+ "object_ref",
1402
+ "conditional"
1403
+ ],
1404
+ "minimised_modl": "_C=fr;{C=gb?test1=123};test2=456"
1405
+ },
1406
+ {
1407
+ "id": "149",
1408
+ "input": "_C=ca;\n_L=en;\n{\n C=ca?\n n=Tesco Canada\n {L=fr?\n s=Chaque Petite Contribution\n }\n}",
1409
+ "expected_output": "{\n \"n\": \"Tesco Canada\"\n}",
1410
+ "tested_features": [
1411
+ "object_ref",
1412
+ "conditional"
1413
+ ],
1414
+ "minimised_modl": "_C=ca;_L=en;{C=ca?n=Tesco Canada;{L=fr?s=Chaque Petite Contribution}}"
1415
+ },
1416
+ {
1417
+ "id": "150",
1418
+ "input": "_L=en;\n{\n C=ca?\n o(\n n=Tesco Canada;\n s={L=fr?\n Chaque Petite Contribution\n /?\n Every Little Helps\n }\n )\n}",
749
1419
  "expected_output": "null",
750
- "tested_features":["object_ref", "conditional", "null"]
751
- },
752
- { "input": "_letter=a;\n{\n letter=a?\n word=Apple\n /letter=b?\n word=Bee\n /?\n word=Other\n}",
753
- "minimised_modl": "_letter=a;{letter=a?word=Apple/letter=b?word=Bee/?word=Other}",
754
- "expected_output": "{\n \"word\" : \"Apple\"\n}\n",
755
- "tested_features":["object_ref", "conditional"]
756
- },
757
- { "input": "_int=1;\n{\n int=1?\n number=one\n /int=2?\n number=two\n /int=3?\n number=three\n /?\n number=other\n}",
758
- "minimised_modl": "_int=1;{int=1?number=one/int=2?number=two/int=3?number=three/?number=other}",
759
- "expected_output": "{\n \"number\" : \"one\"\n}\n",
760
- "tested_features":["object_ref", "conditional"]
761
- },
762
- { "input": "_number=one;\n{\n number=one?\n int=1\n /number=two?\n int=2\n /number=three?\n int=3\n}",
763
- "minimised_modl": "_number=one;{number=one?int=1/number=two?int=2/number=three?int=3}",
764
- "expected_output": "{\n \"int\" : 1\n}\n",
765
- "tested_features":["object_ref", "conditional"]
766
- },
767
- { "input": "_co=gb;\n{\nco=gb?\n country = United Kingdom\n/?\n country = Other\n}",
768
- "minimised_modl": "_co=gb;{co=gb?country=United Kingdom/?country=Other}",
769
- "expected_output": "{\n \"country\" : \"United Kingdom\"\n}\n",
770
- "tested_features":["object_ref", "conditional"]
771
- },
772
- { "input": "_co=gb;\n{\nco=gb?\n country = United Kingdom\n/?\n country = Other\n}",
773
- "minimised_modl": "_co=gb;{co=gb?country=United Kingdom/?country=Other}",
774
- "expected_output": "{\n \"country\" : \"United Kingdom\"\n}\n",
775
- "tested_features":["object_ref", "conditional"]
776
- },
777
- { "input": "_co = gb;\ntest = {\n co = gb?\n test=123\n /?\n test\n}",
778
- "minimised_modl": "_co=gb;test={co=gb?test=123/?test}",
779
- "expected_output": "{\n \"test\" : {\n \"test\" : 123\n }\n}\n",
780
- "tested_features":["object_ref", "conditional"]
781
- },
782
- { "input": "_co = fr;\ntest = {\n co = gb?\n test=123\n /?\n test\n}",
783
- "minimised_modl": "_co=fr;test={co=gb?test=123/?test}",
784
- "expected_output": "{\n \"test\" : \"test\"\n}\n",
785
- "tested_features":["object_ref", "conditional"]
786
- },
787
- { "input": "_COUNTRY=gb;\ncountry=The country is %COUNTRY",
788
- "minimised_modl": "_COUNTRY=gb;country=The country is %COUNTRY",
789
- "expected_output": "{\n \"country\" : \"The country is gb\"\n}\n",
790
- "tested_features":["object_ref"]
791
- },
792
- { "input": "COUNTRY=gb;\ncountry=The country is %COUNTRY",
793
- "minimised_modl": "COUNTRY=gb;country=The country is %COUNTRY",
794
- "expected_output": "[ {\n \"COUNTRY\" : \"gb\"\n}, {\n \"country\" : \"The country is gb\"\n} ]\n",
795
- "tested_features":["object_ref"]
796
- },
797
- { "input": "_co=gb;\ncountry=The country is %co",
798
- "minimised_modl": "_co=gb;country=The country is %co",
799
- "expected_output": "{\n \"country\" : \"The country is gb\"\n}\n",
800
- "tested_features":["object_ref"]
801
- },
802
- { "input": "_test = 123;\n_test2 = abc",
803
- "minimised_modl": "_test=123;_test2=abc",
1420
+ "tested_features": [
1421
+ "object_ref",
1422
+ "conditional",
1423
+ "null"
1424
+ ],
1425
+ "minimised_modl": "_L=en;{C=ca?o(n=Tesco Canada;s={L=fr?Chaque Petite Contribution/?Every Little Helps})}"
1426
+ },
1427
+ {
1428
+ "id": "151",
1429
+ "input": "_letter=a;\n{\n letter=a?\n word=Apple\n /letter=b?\n word=Bee\n /?\n word=Other\n}",
1430
+ "expected_output": "{\n \"word\": \"Apple\"\n}",
1431
+ "tested_features": [
1432
+ "object_ref",
1433
+ "conditional"
1434
+ ],
1435
+ "minimised_modl": "_letter=a;{letter=a?word=Apple/letter=b?word=Bee/?word=Other}"
1436
+ },
1437
+ {
1438
+ "id": "152",
1439
+ "input": "_int=1;\n{\n int=1?\n number=one\n /int=2?\n number=two\n /int=3?\n number=three\n /?\n number=other\n}",
1440
+ "expected_output": "{\n \"number\": \"one\"\n}",
1441
+ "tested_features": [
1442
+ "object_ref",
1443
+ "conditional"
1444
+ ],
1445
+ "minimised_modl": "_int=1;{int=1?number=one/int=2?number=two/int=3?number=three/?number=other}"
1446
+ },
1447
+ {
1448
+ "id": "153",
1449
+ "input": "_number=one;\n{\n number=one?\n int=1\n /number=two?\n int=2\n /number=three?\n int=3\n}",
1450
+ "expected_output": "{\n \"int\": 1\n}",
1451
+ "tested_features": [
1452
+ "object_ref",
1453
+ "conditional"
1454
+ ],
1455
+ "minimised_modl": "_number=one;{number=one?int=1/number=two?int=2/number=three?int=3}"
1456
+ },
1457
+ {
1458
+ "id": "154",
1459
+ "input": "_co=gb;\n{\nco=gb?\n country = United Kingdom\n/?\n country = Other\n}",
1460
+ "expected_output": "{\n \"country\": \"United Kingdom\"\n}",
1461
+ "tested_features": [
1462
+ "object_ref",
1463
+ "conditional"
1464
+ ],
1465
+ "minimised_modl": "_co=gb;{co=gb?country=United Kingdom/?country=Other}"
1466
+ },
1467
+ {
1468
+ "id": "155",
1469
+ "input": "DELETED",
1470
+ "expected_output": "DELETED",
1471
+ "tested_features": [
1472
+ "DELETED"
1473
+ ],
1474
+ "minimised_modl": "DELETED"
1475
+ },
1476
+ {
1477
+ "id": "156",
1478
+ "input": "_co = gb;\ntest = {\n co = gb?\n test=123\n /?\n test\n}",
1479
+ "expected_output": "{\n \"test\": {\n \"test\": 123\n }\n}",
1480
+ "tested_features": [
1481
+ "object_ref",
1482
+ "conditional"
1483
+ ],
1484
+ "minimised_modl": "_co=gb;test={co=gb?test=123/?test}"
1485
+ },
1486
+ {
1487
+ "id": "157",
1488
+ "input": "_co = fr;\ntest = {\n co = gb?\n test=123\n /?\n test\n}",
1489
+ "expected_output": "{\n \"test\": \"test\"\n}",
1490
+ "tested_features": [
1491
+ "object_ref",
1492
+ "conditional"
1493
+ ],
1494
+ "minimised_modl": "_co=fr;test={co=gb?test=123/?test}"
1495
+ },
1496
+ {
1497
+ "id": "158",
1498
+ "input": "_COUNTRY=gb;\ncountry=The country is %COUNTRY",
1499
+ "expected_output": "{\n \"country\": \"The country is gb\"\n}",
1500
+ "tested_features": [
1501
+ "object_ref"
1502
+ ],
1503
+ "minimised_modl": "_COUNTRY=gb;country=The country is %COUNTRY"
1504
+ },
1505
+ {
1506
+ "id": "159",
1507
+ "input": "COUNTRY=gb;\ncountry=The country is %COUNTRY",
1508
+ "expected_output": "[\n {\n \"COUNTRY\": \"gb\"\n },\n {\n \"country\": \"The country is gb\"\n }\n]",
1509
+ "tested_features": [
1510
+ "object_ref"
1511
+ ],
1512
+ "minimised_modl": "COUNTRY=gb;country=The country is %COUNTRY"
1513
+ },
1514
+ {
1515
+ "id": "160",
1516
+ "input": "_co=gb;\ncountry=The country is %co",
1517
+ "expected_output": "{\n \"country\": \"The country is gb\"\n}",
1518
+ "tested_features": [
1519
+ "object_ref"
1520
+ ],
1521
+ "minimised_modl": "_co=gb;country=The country is %co"
1522
+ },
1523
+ {
1524
+ "id": "161",
1525
+ "input": "_test = 123;\n_test2 = abc",
804
1526
  "expected_output": "null",
805
- "tested_features":["object_ref", "null"]
806
- },
807
- { "input": "_co=gb;\ntest=123",
808
- "minimised_modl": "_co=gb;test=123",
809
- "expected_output": "{\n \"test\" : 123\n}\n",
810
- "tested_features":["object_ref"]
811
- },
812
- { "input": "*method(\n ## The method can be called by it's ID or name;\n *id=cn;\n *name=company_name;\n ## The value of the object that the method is called on is transformed using the following methods:\n *transform=`replace(-, ).trim(.).initcap`\n);\n\n_domain = smiths-limited.com;\nfriendly_name = %domain.cn ## The value \"Smiths Limited\" is assigned to the key \"friendly_name\"",
813
- "minimised_modl": "*m(*i=cn;*n=company_name;*transform=`replace(-, ).trim(.).initcap`);_domain=smiths-limited.com;friendly_name=%domain.cn",
814
- "expected_output": "{\n \"friendly_name\" : \"Smiths Limited\"\n}\n",
815
- "tested_features":["method"]
816
- },
817
- { "input": "*method(\n *id=rt;\n *name=remove_two;\n *transform=`replace(two,)`\n);\n\n_numbers = one two three;\nname = %numbers.rt",
818
- "minimised_modl": "*m(*i=rt;*n=remove_two;*transform=`replace(two,)`);_numbers=one two three;name=%numbers.rt",
819
- "expected_output": "{\n \"name\" : \"one three\"\n}\n",
820
- "tested_features":["method"]
821
- },
822
- { "input": "_co=ca;\n_l=fr;\n{\n { co = ca & l = fr } | co = fr?\n support_number=14161234567\n /?\n support_number=441270123456\n}",
823
- "minimised_modl": "_co=ca;_l=fr;{{co=ca&l=fr}|co=fr?support_number=14161234567/?support_number=441270123456}",
824
- "expected_output": "{\n \"support_number\" : 14161234567\n}\n",
825
- "tested_features":["object_ref", "conditional"]
826
- },
827
- { "input": "_input=\"hi apple ios\";\n{\n {input=*apple*ios*}?\n support_number=441270123456\n /?\n support_number=International Clients:14161234567\n}",
828
- "minimised_modl": "_input=hi apple ios;{{input=*apple*ios*}?support_number=441270123456/?support_number=International Clients:14161234567}",
829
- "expected_output": "{\n \"support_number\" : 441270123456\n}\n",
830
- "tested_features":["object_ref", "conditional"]
831
- },
832
- { "input": "_input=\"An iOS string\";\n{\n {input=*iOS*}?\n support_number=441270123456\n /?\n support_number=International Clients:14161234567\n}",
833
- "minimised_modl": "_input=An iOS string;{{input=*iOS*}?support_number=441270123456/?support_number=International Clients:14161234567}",
834
- "expected_output": "{\n \"support_number\" : 441270123456\n}\n"
835
- },
836
- { "input": "_input=\"An iOS string\";\n{\n !{input=iOS*}?\n support_number=441270123456\n /?\n support_number=International Clients:14161234567\n}",
837
- "minimised_modl": "_input=An iOS string;{!{input=iOS*}?support_number=441270123456/?support_number=International Clients:14161234567}",
838
- "expected_output": "{\n \"support_number\" : 441270123456\n}\n",
839
- "tested_features":["object_ref", "conditional"]
840
- },
841
- { "input": "_number=42;\n{\n {number>41}?\n support_number=441270123456\n /?\n support_number=International Clients:14161234567\n}",
842
- "minimised_modl": "_number=42;{{number>41}?support_number=441270123456/?support_number=International Clients:14161234567}",
843
- "expected_output": "{\n \"support_number\" : 441270123456\n}\n",
844
- "tested_features":["object_ref", "conditional"]
845
- },
846
- { "input": "_co=ca;\n{\n co = fr?\n support_number=14161234567\n /?\n support_number=441270123456\n}",
847
- "minimised_modl": "_co=ca;{co=fr?support_number=14161234567/?support_number=441270123456}",
848
- "expected_output": "{\n \"support_number\" : 441270123456\n}\n",
849
- "tested_features":["object_ref", "conditional"]
850
- },
851
- { "input": "_country=gb;\n{\n country=us/gb/au?\n support_number=441270123456\n /?\n support_number=International Clients:14161234567\n}",
852
- "minimised_modl": "_country=gb;{country=us/gb/au?support_number=441270123456/?support_number=International Clients:14161234567}",
853
- "expected_output": "{\n \"support_number\" : 441270123456\n}\n",
854
- "tested_features":["object_ref", "conditional"]
855
- },
856
- { "input": "_test=gb;\nresult={test=gb/au?No/?Yes}",
857
- "minimised_modl": "_test=gb;result={test=gb/au?No/?Yes}",
858
- "expected_output": "{\n \"result\" : \"No\"\n}\n",
859
- "tested_features":["object_ref", "conditional"]
860
- },
861
- { "input": "_number=42;\n{\n !{number>41}?\n support_number=441270123456\n /?\n support_number=International Clients:14161234567\n}",
862
- "minimised_modl": "_number=42;{!{number>41}?support_number=441270123456/?support_number=International Clients:14161234567}",
863
- "expected_output": "{\n \"support_number\" : [ \"International Clients\", 14161234567 ]\n}\n",
864
- "tested_features":["object_ref", "conditional"]
865
- },
866
- { "input": "_country=gb;\n{\n !{country=us/gb/au}?\n support_number=441270123456\n /?\n support_number=International Clients:14161234567\n}",
867
- "minimised_modl": "_country=gb;{!{country=us/gb/au}?support_number=441270123456/?support_number=International Clients:14161234567}",
868
- "expected_output": "{\n \"support_number\" : [ \"International Clients\", 14161234567 ]\n}\n",
869
- "tested_features":["object_ref", "conditional"]
870
- },
871
- { "input": "*L=\"https://www.modl.uk/tests/message-thread.txt\";\n\nm=out:2018-03-22 15\\:25:Hi;\nm=in:2018-03-22 15\\:26:Hello, how are you?;\nm=out:2018-03-22 15\\:25:Hi, good thanks;\nm=out:2018-03-22 15\\:26:How about you?;\nm=in:2018-03-22 15\\:26:Yes, fine thanks. What are you up to?;\nm=out:2018-03-22 15\\:25:Just testing out MODL;\nm=in:2018-03-22 15\\:26:Cool!",
872
- "minimised_modl": "*L=\"https://www.modl.uk/demo/message-thread.txt\";m=out:2018-03-22 15~:25:Hi;m=in:2018-03-22 15~:26:Hello, how are you?;m=out:2018-03-22 15~:25:Hi, good thanks;m=out:2018-03-22 15~:26:How about you?;m=in:2018-03-22 15~:26:Yes, fine thanks. What are you up to?;m=out:2018-03-22 15~:25:Just testing out MODL;m=in:2018-03-22 15~:26:Cool!",
873
- "expected_output": "[ {\n \"message\" : {\n \"direction\" : \"out\",\n \"date_time\" : \"2018-03-22 15:25\",\n \"message\" : \"Hi\",\n \"method\" : \"sms\"\n }\n}, {\n \"message\" : {\n \"direction\" : \"in\",\n \"date_time\" : \"2018-03-22 15:26\",\n \"message\" : \"Hello, how are you?\",\n \"method\" : \"sms\"\n }\n}, {\n \"message\" : {\n \"direction\" : \"out\",\n \"date_time\" : \"2018-03-22 15:25\",\n \"message\" : \"Hi, good thanks\",\n \"method\" : \"sms\"\n }\n}, {\n \"message\" : {\n \"direction\" : \"out\",\n \"date_time\" : \"2018-03-22 15:26\",\n \"message\" : \"How about you?\",\n \"method\" : \"sms\"\n }\n}, {\n \"message\" : {\n \"direction\" : \"in\",\n \"date_time\" : \"2018-03-22 15:26\",\n \"message\" : \"Yes, fine thanks. What are you up to?\",\n \"method\" : \"sms\"\n }\n}, {\n \"message\" : {\n \"direction\" : \"out\",\n \"date_time\" : \"2018-03-22 15:25\",\n \"message\" : \"Just testing out MODL\",\n \"method\" : \"sms\"\n }\n}, {\n \"message\" : {\n \"direction\" : \"in\",\n \"date_time\" : \"2018-03-22 15:26\",\n \"message\" : \"Cool!\",\n \"method\" : \"sms\"\n }\n} ]\n",
874
- "tested_features":["load"]
875
- },
876
- { "input": "_var=2;\n*L=\"http://s3-eu-west-1.amazonaws.com/modltestfiles/testing.txt!\";\nprint=%update_date\n",
877
- "minimised_modl": "_var=2;*L=http~://s3-eu-west-1.amazonaws.com/modltestfiles/testing.txt!;print=%update_date",
878
- "expected_output": "{\n \"print\" : \"20180921 08:20 2\"\n}\n",
879
- "tested_features":["object_ref", "load"]
880
- },
881
- { "input": "_T=grammar_tests/demo;\n*L=`%T`_config",
882
- "minimised_modl": "_T=grammar_tests/demo;*L=`%T`_config",
1527
+ "tested_features": [
1528
+ "object_ref",
1529
+ "null"
1530
+ ],
1531
+ "minimised_modl": "_test=123;_test2=abc"
1532
+ },
1533
+ {
1534
+ "id": "162",
1535
+ "input": "_co=gb;\ntest=123",
1536
+ "expected_output": "{\n \"test\": 123\n}",
1537
+ "tested_features": [
1538
+ "object_ref"
1539
+ ],
1540
+ "minimised_modl": "_co=gb;test=123"
1541
+ },
1542
+ {
1543
+ "id": "163",
1544
+ "input": "*method(\n *id=cn;\n *name=company_name;\n *transform=replace<-, >.trim<.>.initcap\n);\n\n_domain = smiths-limited.com;\nfriendly_name = %domain.cn",
1545
+ "expected_output": "{\n \"friendly_name\": \"Smiths Limited\"\n}",
1546
+ "tested_features": [
1547
+ "method"
1548
+ ],
1549
+ "minimised_modl": "*method( *id=cn;*name=company_name;*transform=replace<-, >.trim<.>.initcap);_domain = smiths-limited.com;friendly_name = %domain.cn"
1550
+ },
1551
+ {
1552
+ "id": "164",
1553
+ "input": "*method(\n *id=rt;\n *name=remove_two;\n *transform=replace<two,>\n);\n\n_numbers = one two three;\nname = %numbers.rt",
1554
+ "expected_output": "{\n \"name\": \"one three\"\n}",
1555
+ "tested_features": [
1556
+ "method"
1557
+ ],
1558
+ "minimised_modl": "*m(*i=rt;*n=remove_two;*transform=replace<two,>);_numbers=one two three;name=%numbers.rt"
1559
+ },
1560
+ {
1561
+ "id": "165",
1562
+ "input": "_co=ca;\n_l=fr;\n{\n { co = ca & l = fr } | co = fr?\n support_number=14161234567\n /?\n support_number=441270123456\n}",
1563
+ "expected_output": "{\n \"support_number\": 14161234567\n}",
1564
+ "tested_features": [
1565
+ "object_ref",
1566
+ "conditional"
1567
+ ],
1568
+ "minimised_modl": "_co=ca;_l=fr;{{co=ca&l=fr}|co=fr?support_number=14161234567/?support_number=441270123456}"
1569
+ },
1570
+ {
1571
+ "id": "166",
1572
+ "input": "_input=\"hi apple ios\";\n{\n {input=*apple*ios*}?\n support_number=441270123456\n /?\n support_number=International Clients:14161234567\n}",
1573
+ "expected_output": "{\n \"support_number\": 441270123456\n}",
1574
+ "tested_features": [
1575
+ "object_ref",
1576
+ "conditional"
1577
+ ],
1578
+ "minimised_modl": "_input=hi apple ios;{{input=*apple*ios*}?support_number=441270123456/?support_number=International Clients:14161234567}"
1579
+ },
1580
+ {
1581
+ "id": "167",
1582
+ "input": "_input=\"An iOS string\";\n{\n {input=*iOS*}?\n support_number=441270123456\n /?\n support_number=International Clients:14161234567\n}",
1583
+ "expected_output": "{\n \"support_number\": 441270123456\n}",
1584
+ "tested_features": [
1585
+ "undefined"
1586
+ ],
1587
+ "minimised_modl": "_input=An iOS string;{{input=*iOS*}?support_number=441270123456/?support_number=International Clients:14161234567}"
1588
+ },
1589
+ {
1590
+ "id": "168",
1591
+ "input": "_input=\"An iOS string\";\n{\n !{input=iOS*}?\n support_number=441270123456\n /?\n support_number=International Clients:14161234567\n}",
1592
+ "expected_output": "{\n \"support_number\": 441270123456\n}",
1593
+ "tested_features": [
1594
+ "object_ref",
1595
+ "conditional"
1596
+ ],
1597
+ "minimised_modl": "_input=An iOS string;{!{input=iOS*}?support_number=441270123456/?support_number=International Clients:14161234567}"
1598
+ },
1599
+ {
1600
+ "id": "169",
1601
+ "input": "_number=42;\n{\n {number>41}?\n support_number=441270123456\n /?\n support_number=International Clients:14161234567\n}",
1602
+ "expected_output": "{\n \"support_number\": 441270123456\n}",
1603
+ "tested_features": [
1604
+ "object_ref",
1605
+ "conditional"
1606
+ ],
1607
+ "minimised_modl": "_number=42;{{number>41}?support_number=441270123456/?support_number=International Clients:14161234567}"
1608
+ },
1609
+ {
1610
+ "id": "170",
1611
+ "input": "_co=ca;\n{\n co = fr?\n support_number=14161234567\n /?\n support_number=441270123456\n}",
1612
+ "expected_output": "{\n \"support_number\": 441270123456\n}",
1613
+ "tested_features": [
1614
+ "object_ref",
1615
+ "conditional"
1616
+ ],
1617
+ "minimised_modl": "_co=ca;{co=fr?support_number=14161234567/?support_number=441270123456}"
1618
+ },
1619
+ {
1620
+ "id": "171",
1621
+ "input": "_country=gb;\n{\n country=us/gb/au?\n support_number=441270123456\n /?\n support_number=International Clients:14161234567\n}",
1622
+ "expected_output": "{\n \"support_number\": 441270123456\n}",
1623
+ "tested_features": [
1624
+ "object_ref",
1625
+ "conditional"
1626
+ ],
1627
+ "minimised_modl": "_country=gb;{country=us/gb/au?support_number=441270123456/?support_number=International Clients:14161234567}"
1628
+ },
1629
+ {
1630
+ "id": "172",
1631
+ "input": "_test=gb;\nresult={test=gb/au?No/?Yes}",
1632
+ "expected_output": "{\n \"result\": \"No\"\n}",
1633
+ "tested_features": [
1634
+ "object_ref",
1635
+ "conditional"
1636
+ ],
1637
+ "minimised_modl": "_test=gb;result={test=gb/au?No/?Yes}"
1638
+ },
1639
+ {
1640
+ "id": "173",
1641
+ "input": "_number=42;\n{\n !{number>41}?\n support_number=441270123456\n /?\n support_number=International Clients:14161234567\n}",
1642
+ "expected_output": "{\n \"support_number\": [\n \"International Clients\",\n 14161234567\n ]\n}",
1643
+ "tested_features": [
1644
+ "object_ref",
1645
+ "conditional"
1646
+ ],
1647
+ "minimised_modl": "_number=42;{!{number>41}?support_number=441270123456/?support_number=International Clients:14161234567}"
1648
+ },
1649
+ {
1650
+ "id": "174",
1651
+ "input": "_country=gb;\n{\n !{country=us/gb/au}?\n support_number=441270123456\n /?\n support_number=International Clients:14161234567\n}",
1652
+ "expected_output": "{\n \"support_number\": [\n \"International Clients\",\n 14161234567\n ]\n}",
1653
+ "tested_features": [
1654
+ "object_ref",
1655
+ "conditional"
1656
+ ],
1657
+ "minimised_modl": "_country=gb;{!{country=us/gb/au}?support_number=441270123456/?support_number=International Clients:14161234567}"
1658
+ },
1659
+ {
1660
+ "id": "175",
1661
+ "input": "*L=\"https://www.modl.uk/tests/message-thread.txt\";\n\nm=out:2018-03-22 15\\:25:Hi;\nm=in:2018-03-22 15\\:26:Hello, how are you?;\nm=out:2018-03-22 15\\:25:Hi, good thanks;\nm=out:2018-03-22 15\\:26:How about you?;\nm=in:2018-03-22 15\\:26:Yes, fine thanks. What are you up to?;\nm=out:2018-03-22 15\\:25:Just testing out MODL;\nm=in:2018-03-22 15\\:26:Cool!",
1662
+ "expected_output": "[\n {\n \"message\": {\n \"direction\": \"out\",\n \"date_time\": \"2018-03-22 15:25\",\n \"message\": \"Hi\",\n \"method\": \"sms\"\n }\n },\n {\n \"message\": {\n \"direction\": \"in\",\n \"date_time\": \"2018-03-22 15:26\",\n \"message\": \"Hello, how are you?\",\n \"method\": \"sms\"\n }\n },\n {\n \"message\": {\n \"direction\": \"out\",\n \"date_time\": \"2018-03-22 15:25\",\n \"message\": \"Hi, good thanks\",\n \"method\": \"sms\"\n }\n },\n {\n \"message\": {\n \"direction\": \"out\",\n \"date_time\": \"2018-03-22 15:26\",\n \"message\": \"How about you?\",\n \"method\": \"sms\"\n }\n },\n {\n \"message\": {\n \"direction\": \"in\",\n \"date_time\": \"2018-03-22 15:26\",\n \"message\": \"Yes, fine thanks. What are you up to?\",\n \"method\": \"sms\"\n }\n },\n {\n \"message\": {\n \"direction\": \"out\",\n \"date_time\": \"2018-03-22 15:25\",\n \"message\": \"Just testing out MODL\",\n \"method\": \"sms\"\n }\n },\n {\n \"message\": {\n \"direction\": \"in\",\n \"date_time\": \"2018-03-22 15:26\",\n \"message\": \"Cool!\",\n \"method\": \"sms\"\n }\n }\n]",
1663
+ "tested_features": [
1664
+ "load"
1665
+ ],
1666
+ "minimised_modl": "*L=\"https://www.modl.uk/demo/message-thread.txt\";m=out:2018-03-22 15~:25:Hi;m=in:2018-03-22 15~:26:Hello, how are you?;m=out:2018-03-22 15~:25:Hi, good thanks;m=out:2018-03-22 15~:26:How about you?;m=in:2018-03-22 15~:26:Yes, fine thanks. What are you up to?;m=out:2018-03-22 15~:25:Just testing out MODL;m=in:2018-03-22 15~:26:Cool!"
1667
+ },
1668
+ {
1669
+ "id": "176",
1670
+ "input": "_var=2;\n*L=\"http://s3-eu-west-1.amazonaws.com/modltestfiles/testing.txt!\";\nprint=%update_date\n",
1671
+ "expected_output": "{\n \"print\": \"20180921 08:20 2\"\n}",
1672
+ "tested_features": [
1673
+ "object_ref",
1674
+ "load"
1675
+ ],
1676
+ "minimised_modl": "_var=2;*L=http~://s3-eu-west-1.amazonaws.com/modltestfiles/testing.txt!;print=%update_date"
1677
+ },
1678
+ {
1679
+ "id": "177",
1680
+ "input": "_T=grammar_tests/demo;\n*L=%T%_config",
883
1681
  "expected_output": "null",
884
- "tested_features":["object_ref", "load", "null"]
885
- },
886
- { "input": "*l=grammar_tests/1;*L=grammar_tests/1;a=1",
887
- "minimised_modl": "*l=grammar_tests/1;*L=grammar_tests/1;a=1",
888
- "expected_output": "{\n \"a\" : 1\n}\n",
889
- "tested_features":["load"]
890
- },
891
- { "input": "*l=grammar_tests/1;*l=grammar_tests/1;a=1",
892
- "minimised_modl": "*l=grammar_tests/1;*l=grammar_tests/1;a=1",
893
- "expected_output": "{\n \"a\" : 1\n}\n",
894
- "tested_features":["load"]
895
- },
896
- { "input": "*l=grammar_tests/1:grammar_tests/2:grammar_tests/3;\nthe_number=%number",
897
- "minimised_modl": "*l=grammar_tests/1:grammar_tests/2:grammar_tests/3;the_number=%number",
898
- "expected_output": "{\n \"the_number\" : 3\n}\n",
899
- "tested_features":["object_ref", "load"]
900
- },
901
- { "input": "*l=grammar_tests/1:grammar_tests/2:grammar_tests/3:grammar_tests/1;\nthe_number=%number",
902
- "minimised_modl": "*l=grammar_tests/1:grammar_tests/2:grammar_tests/3:grammar_tests/1;the_number=%number",
903
- "expected_output": "{\n \"the_number\" : 1\n}\n",
904
- "tested_features":["object_ref", "load"]
905
- },
906
- { "input": "*l[grammar_tests/1;grammar_tests/2;grammar_tests/3;grammar_tests/1];\nthe_number=%number",
907
- "minimised_modl": "*l=grammar_tests/1:grammar_tests/2:grammar_tests/3:grammar_tests/1;the_number=%number",
908
- "expected_output": "{\n \"the_number\" : 1\n}\n",
909
- "tested_features":["object_ref", "load"]
910
- },
911
- { "input": "*l=grammar_tests/a:grammar_tests/b:grammar_tests/c;\nvar=%var",
912
- "minimised_modl": "*l=grammar_tests/a:grammar_tests/b:grammar_tests/c;var=%var",
913
- "expected_output": "{\n \"var\" : \"abc\"\n}\n",
914
- "tested_features":["object_ref", "load"]
915
- },
916
- { "input": "*L=grammar_tests/demo_config;\n\nm=out:2018-03-22 15\\:25:Hi;\nm=in:2018-03-22 15\\:26:Hello, how are you?;\nm=out:2018-03-22 15\\:25:Hi, good thanks;\nm=out:2018-03-22 15\\:26:How about you?;\nm=in:2018-03-22 15\\:26:Yes, fine thanks. What are you up to?;\nm=out:2018-03-22 15\\:25:Just testing out MODL;\nm=in:2018-03-22 15\\:26:Cool!",
917
- "minimised_modl": "*L=grammar_tests/demo_config;m=out:2018-03-22 15~:25:Hi;m=in:2018-03-22 15~:26:Hello, how are you?;m=out:2018-03-22 15~:25:Hi, good thanks;m=out:2018-03-22 15~:26:How about you?;m=in:2018-03-22 15~:26:Yes, fine thanks. What are you up to?;m=out:2018-03-22 15~:25:Just testing out MODL;m=in:2018-03-22 15~:26:Cool!",
918
- "expected_output": "[ {\n \"message\" : {\n \"direction\" : \"out\",\n \"date_time\" : \"2018-03-22 15:25\",\n \"message\" : \"Hi\",\n \"method\" : \"sms\"\n }\n}, {\n \"message\" : {\n \"direction\" : \"in\",\n \"date_time\" : \"2018-03-22 15:26\",\n \"message\" : \"Hello, how are you?\",\n \"method\" : \"sms\"\n }\n}, {\n \"message\" : {\n \"direction\" : \"out\",\n \"date_time\" : \"2018-03-22 15:25\",\n \"message\" : \"Hi, good thanks\",\n \"method\" : \"sms\"\n }\n}, {\n \"message\" : {\n \"direction\" : \"out\",\n \"date_time\" : \"2018-03-22 15:26\",\n \"message\" : \"How about you?\",\n \"method\" : \"sms\"\n }\n}, {\n \"message\" : {\n \"direction\" : \"in\",\n \"date_time\" : \"2018-03-22 15:26\",\n \"message\" : \"Yes, fine thanks. What are you up to?\",\n \"method\" : \"sms\"\n }\n}, {\n \"message\" : {\n \"direction\" : \"out\",\n \"date_time\" : \"2018-03-22 15:25\",\n \"message\" : \"Just testing out MODL\",\n \"method\" : \"sms\"\n }\n}, {\n \"message\" : {\n \"direction\" : \"in\",\n \"date_time\" : \"2018-03-22 15:26\",\n \"message\" : \"Cool!\",\n \"method\" : \"sms\"\n }\n} ]\n",
919
- "tested_features":["object_ref", "load"]
920
- },
921
- { "input": "## country\n_c = us;\n## language\n_l = en;\n\n*L=grammar_tests/import_config.modl;\n\ncountry = %c;\nlanguage = %l;\ntime_zone = %tz",
922
- "minimised_modl": "_c=us;_l=en;*L=grammar_tests/import_config.modl;country=%c;language=%l;time_zone=%tz",
923
- "expected_output": "[ {\n \"country\" : \"us\"\n}, {\n \"language\" : \"en\"\n}, {\n \"time_zone\" : \"EST\"\n} ]\n",
924
- "tested_features":["object_ref", "load", "comments"]
925
- },
926
- { "input": "*L=grammar_tests/test_import_dir/test_import.txt;\n\nm=out:2018-03-22 15\\:25:Hi;\nm=in:2018-03-22 15\\:26:Hello, how are you?;\nm=out:2018-03-22 15\\:25:Hi, good thanks;\nm=out:2018-03-22 15\\:26:How about you?;\nm=in:2018-03-22 15\\:26:Yes, fine thanks. What are you up to?;\nm=out:2018-03-22 15\\:25:Just testing out MODL;\nm=in:2018-03-22 15\\:26:Cool!",
927
- "minimised_modl": "*L=grammar_tests/test_import_dir/test_import.txt;m=out:2018-03-22 15~:25:Hi;m=in:2018-03-22 15~:26:Hello, how are you?;m=out:2018-03-22 15~:25:Hi, good thanks;m=out:2018-03-22 15~:26:How about you?;m=in:2018-03-22 15~:26:Yes, fine thanks. What are you up to?;m=out:2018-03-22 15~:25:Just testing out MODL;m=in:2018-03-22 15~:26:Cool!",
928
- "expected_output": "[ {\n \"message\" : {\n \"direction\" : \"out\",\n \"date_time\" : \"2018-03-22 15:25\",\n \"message\" : \"Hi\",\n \"method\" : \"sms\"\n }\n}, {\n \"message\" : {\n \"direction\" : \"in\",\n \"date_time\" : \"2018-03-22 15:26\",\n \"message\" : \"Hello, how are you?\",\n \"method\" : \"sms\"\n }\n}, {\n \"message\" : {\n \"direction\" : \"out\",\n \"date_time\" : \"2018-03-22 15:25\",\n \"message\" : \"Hi, good thanks\",\n \"method\" : \"sms\"\n }\n}, {\n \"message\" : {\n \"direction\" : \"out\",\n \"date_time\" : \"2018-03-22 15:26\",\n \"message\" : \"How about you?\",\n \"method\" : \"sms\"\n }\n}, {\n \"message\" : {\n \"direction\" : \"in\",\n \"date_time\" : \"2018-03-22 15:26\",\n \"message\" : \"Yes, fine thanks. What are you up to?\",\n \"method\" : \"sms\"\n }\n}, {\n \"message\" : {\n \"direction\" : \"out\",\n \"date_time\" : \"2018-03-22 15:25\",\n \"message\" : \"Just testing out MODL\",\n \"method\" : \"sms\"\n }\n}, {\n \"message\" : {\n \"direction\" : \"in\",\n \"date_time\" : \"2018-03-22 15:26\",\n \"message\" : \"Cool!\",\n \"method\" : \"sms\"\n }\n} ]\n",
929
- "tested_features":["object_ref", "load"]
930
- },
931
- { "input": "o=[test;test;t=Customer Service:44123]",
932
- "minimised_modl": "o[test;test;t=Customer Service:44123]",
933
- "expected_output": "{\n \"o\" : [ \"test\", \"test\", {\n \"t\" : [ \"Customer Service\", 44123 ]\n } ]\n}\n",
934
- "tested_features":["map", "array"]
935
- },
936
- { "input": "test[number=1;number=2;number=3]",
937
- "minimised_modl": "test[number=1;number=2;number=3]",
938
- "expected_output": "{\n \"test\" : [ {\n \"number\" : 1\n }, {\n \"number\" : 2\n }, {\n \"number\" : 3\n } ]\n}\n",
939
- "tested_features":["map", "array"]
940
- },
941
- { "input": "test(one=1;two=2;three=3)",
942
- "minimised_modl": "test(one=1;two=2;three=3)",
943
- "expected_output": "{\n \"test\" : {\n \"one\" : 1,\n \"two\" : 2,\n \"three\" : 3\n }\n}\n",
944
- "tested_features":["map", "array"]
945
- },
946
- { "input": "test=test",
947
- "minimised_modl": "test=test",
948
- "expected_output": "{\n \"test\" : \"test\"\n}\n",
949
- "tested_features":["pair"]
950
- },
951
- { "input": "one=1;two=2;three=3",
952
- "minimised_modl": "one=1;two=2;three=3",
953
- "expected_output": "[ {\n \"one\" : 1\n}, {\n \"two\" : 2\n}, {\n \"three\" : 3\n} ]\n",
954
- "tested_features":["map", "pair"]
955
- },
956
- { "input": "[o(n=test);o(n=test2)]",
957
- "minimised_modl": "[o(n=test);o(n=test2)]",
958
- "expected_output": "[ {\n \"o\" : {\n \"n\" : \"test\"\n }\n}, {\n \"o\" : {\n \"n\" : \"test2\"\n }\n} ]\n",
959
- "tested_features":["map", "pair"]
960
- },
961
- { "input": "R=0;\nnumber=1;number=2;number=3",
962
- "minimised_modl": "R=0;number=1;number=2;number=3",
963
- "expected_output": "[ {\n \"R\" : 0\n}, {\n \"number\" : 1\n}, {\n \"number\" : 2\n}, {\n \"number\" : 3\n} ]\n",
964
- "tested_features":["map", "array", "pair"]
965
- },
966
- { "input": "test=(one=1)",
967
- "minimised_modl": "test(one=1)",
968
- "expected_output": "{\n \"test\" : {\n \"one\" : 1\n }\n}\n",
969
- "tested_features":["map", "array"]
970
- },
971
- { "input": "test(one=1)",
972
- "minimised_modl": "test(one=1)",
973
- "expected_output": "{\n \"test\" : {\n \"one\" : 1\n }\n}\n",
974
- "tested_features":["map", "array"]
975
- },
976
- { "input": "test=[1;2;3]",
977
- "minimised_modl": "test=1:2:3",
978
- "expected_output": "{\n \"test\" : [ 1, 2, 3 ]\n}\n",
979
- "tested_features":["map", "array"]
980
- },
981
- { "input": "test[1;2;3]",
982
- "minimised_modl": "test=1:2:3",
983
- "expected_output": "{\n \"test\" : [ 1, 2, 3 ]\n}\n",
984
- "tested_features":["map", "array"]
985
- },
986
- { "input": "o(n=Tesco;s=Every Little Helps)",
987
- "minimised_modl": "o(n=Tesco;s=Every Little Helps)",
988
- "expected_output": "{\n \"o\" : {\n \"n\" : \"Tesco\",\n \"s\" : \"Every Little Helps\"\n }\n}\n",
989
- "tested_features":["map", "array"]
990
- },
991
- { "input": "o(n=test)",
992
- "minimised_modl": "o(n=test)",
993
- "expected_output": "{\n \"o\" : {\n \"n\" : \"test\"\n }\n}\n",
994
- "tested_features":["map", "array"]
995
- },
996
- { "input": "o(n=test)\n",
997
- "minimised_modl": "o(n=test)",
998
- "expected_output": "{\n \"o\" : {\n \"n\" : \"test\"\n }\n}\n",
999
- "tested_features":["map", "array"]
1000
- },
1001
- { "input": "o(\nn=test\n)",
1002
- "minimised_modl": "o(n=test)",
1003
- "expected_output": "{\n \"o\" : {\n \"n\" : \"test\"\n }\n}\n"
1004
- },
1005
- { "input": "o(n=test)",
1006
- "minimised_modl": "o(n=test)",
1007
- "expected_output": "{\n \"o\" : {\n \"n\" : \"test\"\n }\n}\n",
1008
- "tested_features":["map", "array"]
1009
- },
1010
- { "input": "o(n=test);\no(n=test2)",
1011
- "minimised_modl": "o(n=test);o(n=test2)",
1012
- "expected_output": "[ {\n \"o\" : {\n \"n\" : \"test\"\n }\n}, {\n \"o\" : {\n \"n\" : \"test2\"\n }\n} ]\n",
1013
- "tested_features":["map", "array"]
1014
- },
1015
- { "input": "o(n=test);o(n=test2)",
1016
- "minimised_modl": "o(n=test);o(n=test2)",
1017
- "expected_output": "[ {\n \"o\" : {\n \"n\" : \"test\"\n }\n}, {\n \"o\" : {\n \"n\" : \"test2\"\n }\n} ]\n",
1018
- "tested_features":["map", "array"]
1019
- },
1020
- { "input": "o=[test;test]",
1021
- "minimised_modl": "o=test:test",
1022
- "expected_output": "{\n \"o\" : [ \"test\", \"test\" ]\n}\n",
1023
- "tested_features":["map", "array"]
1024
- },
1025
- { "input": "o=test",
1026
- "minimised_modl": "o=test",
1027
- "expected_output": "{\n \"o\" : \"test\"\n}\n",
1028
- "tested_features":["pair"]
1029
- },
1030
- { "input": "o=[1;2]",
1031
- "minimised_modl": "o=1:2",
1032
- "expected_output": "{\n \"o\" : [ 1, 2 ]\n}\n",
1033
- "tested_features":["map", "array"]
1034
- },
1035
- { "input": "o=[test1;test2]",
1036
- "minimised_modl": "o=test1:test2",
1037
- "expected_output": "{\n \"o\" : [ \"test1\", \"test2\" ]\n}\n",
1038
- "tested_features":["map", "array"]
1039
- },
1040
- { "input": "o(t=test1;t2=test2)",
1041
- "minimised_modl": "o(t=test1;t2=test2)",
1042
- "expected_output": "{\n \"o\" : {\n \"t\" : \"test1\",\n \"t2\" : \"test2\"\n }\n}\n",
1043
- "tested_features":["map"]
1044
- },
1045
- { "input": "o(t(a=test;b=test2);t2(c=test;d=test2))",
1046
- "minimised_modl": "o(t(a=test;b=test2);t2(c=test;d=test2))",
1047
- "expected_output": "{\n \"o\" : {\n \"t\" : {\n \"a\" : \"test\",\n \"b\" : \"test2\"\n },\n \"t2\" : {\n \"c\" : \"test\",\n \"d\" : \"test2\"\n }\n }\n}",
1048
- "tested_features":["map"]
1049
- },
1050
- { "input": "o=1:2::4:5",
1051
- "minimised_modl": "5",
1052
- "expected_output": "{\n \"o\" : [ 1, 2, null, 4, 5 ]\n}",
1053
- "tested_features":["pair", "nbArray", "null"]
1054
- },
1055
- { "input": "o=[1;2;;4;5]",
1056
- "minimised_modl": "o=1:2::4:5",
1057
- "expected_output": "{\n \"o\" : [ 1, 2, null, 4, 5 ]\n}",
1058
- "tested_features":["pair", "array", "null"]
1059
- },
1060
- { "input": "o=[1;\n2;\n\n3;\n4;\n5]",
1061
- "minimised_modl": "o=1:2:3:4:5",
1062
- "expected_output": "{\n \"o\" : [ 1, 2, 3, 4, 5 ]\n}",
1063
- "tested_features":["pair", "array"]
1064
- },
1065
- { "input": "o=[1 2 3 4 5]",
1066
- "minimised_modl": "o=1 2 3 4 5",
1067
- "expected_output": "{\n \"o\" : [ \"1 2 3 4 5\" ]\n}",
1068
- "tested_features":["pair"]
1069
- },
1070
- { "input": "o=`ok`",
1071
- "minimised_modl": "o=`ok`",
1072
- "expected_output": "{\n \"o\" : \"ok\"\n}",
1073
- "tested_features":["pair", "graves"]
1074
- },
1075
- { "input": "o=``",
1076
- "minimised_modl": "o=``",
1077
- "expected_output": "{\n \"o\" : \"\"\n}",
1078
- "tested_features":["pair", "graves"]
1079
- },
1080
- { "input": "_test=(\n numbers=[[1;2;3;4;5];[6;7;8;9;10]]\n);\n \ntesting=%test.numbers.0.0",
1081
- "minimised_modl": "_test=(numbers=[[1;2;3;4;5];[6;7;8;9;10]]);testing=%test.numbers.0.0",
1082
- "expected_output": "{\n \"testing\" : 1\n}",
1083
- "tested_features":["object_ref"]
1084
- },
1085
- { "input": "_test=(\n numbers=(\"one\"=1)\n);\n \ntesting = this is a string that includes a reference with a letter s after it `%test.numbers.one`s",
1086
- "minimised_modl": "_test=(numbers=(one=1));testing=this is a string that includes a reference with a letter s after it `%test.numbers.one`s",
1087
- "expected_output": "{\n \"testing\" : \"this is a string that includes a reference with a letter s after it 1s\"\n}",
1088
- "tested_features":["object_ref"]
1089
- },
1090
- { "input": "_test=(\n numbers=(\"v\"=TEST)\n);\n \ntesting = this is a string that includes extra transforms for the value `%test.numbers.v.d`_value",
1091
- "minimised_modl": "_test=(numbers=(v=TEST));testing=this is a string that includes extra transforms for the value `%test.numbers.v.d`_value",
1092
- "expected_output": "{\n \"testing\" : \"this is a string that includes extra transforms for the value test_value\"\n}",
1093
- "tested_features":["object_ref", "string_method"]
1094
- },
1095
- { "input": "_test=(\n first=(\"v\"=TEST);\n second=(\"v\"=TEST2)\n);\n \ntesting = this is a string that includes extra transforms for the value `%test.second.v.d`_value",
1096
- "minimised_modl": "_test=(first=(v=TEST);second=(v=TEST2));testing=this is a string that includes extra transforms for the value `%test.second.v.d`_value",
1097
- "expected_output": "{\n \"testing\" : \"this is a string that includes extra transforms for the value test2_value\"\n}",
1098
- "tested_features":["object_ref", "string_method"]
1099
- },
1100
- { "input": "_test=(\n first=(\"v1\"=one);\n second=(\"v2\"=two:three)\n);\n \ntesting = \"`%test.second.v2.1`\"",
1101
- "minimised_modl": "_test=(first=(v1=one);second=(v2=two:three));testing=`%test.second.v2.1`",
1102
- "expected_output": "{\n \"testing\" : \"three\"\n}\n",
1103
- "tested_features":["object_ref", "graves"]
1104
- },
1105
- { "input": "_test=(\n first=(\"v1\"=[one]);\n second=(\"v2\"=two:three)\n);\n \ntesting = \"`%test.first.v1.0``%test.second.v2.0``%test.second.v2.1`\"",
1106
- "minimised_modl": "_test=(first=(v1=[one]);second=(v2=two:three));testing=`%test.first.v1.0``%test.second.v2.0``%test.second.v2.1`",
1107
- "expected_output": "{\n \"testing\" : \"onetwothree\"\n}\n",
1108
- "tested_features":["object_ref"]
1109
- },
1110
- { "input": "_test=(\n first=(\"v1\"=(one=(two=three)))\n);\n \ntesting = \"`%test.first.v1.one.two`\"",
1111
- "minimised_modl": "_test=(first=(v1=(one=(two=three))));testing=`%test.first.v1.one.two`",
1112
- "expected_output": "{\n \"testing\" : \"three\"\n}\n",
1113
- "tested_features":["object_ref"]
1114
- },
1115
- { "input": "b=2;c=2;d=2;e=2;a={{b=c & d=e}?v1:v2:v3/?v4:v5:v6}",
1116
- "minimised_modl": "b=2;c=2;d=2;e=2;a={{b=c & d=e}?v1:v2:v3/?v4:v5:v6}",
1117
- "expected_output": "[{\"b\": 2},{\"c\": 2},{\"d\": 2},{\"e\": 2}, {\"a\": [\"v1\",\"v2\",\"v3\"]}]",
1118
- "tested_features":["conditional"]
1119
- },
1120
- { "input" : "o=1:2:3:4:5",
1121
- "minimised_modl" : "o=1:2:3:4:5",
1122
- "expected_output" : "{\n \"o\" : [ 1, 2, 3, 4, 5 ]\n}",
1123
- "tested_features":["nbArray"]
1124
- },
1125
- {"input" : "o=1:2::4:5",
1126
- "minimised_modl" : "o=1:2::4:5",
1127
- "expected_output" : "{\n \"o\" : [ 1, 2, null, 4, 5 ]\n}",
1128
- "tested_features":["nbArray", "null"]
1129
- },
1130
- { "input" : "o=[1;2;3;4;5]",
1131
- "minimised_modl" : "o=[1;2;3;4;5]",
1132
- "expected_output" : "{\n \"o\" : [ 1, 2, 3, 4, 5 ]\n}",
1133
- "tested_features":["array"]
1134
- },
1135
- {"input" : "o=[1;2;;4;5]",
1136
- "minimised_modl" : "o=[1;2;;4;5]",
1137
- "expected_output" : "{\n \"o\" : [ 1, 2, null, 4, 5 ]\n}",
1138
- "tested_features":["array", "null"]
1139
- },
1140
- { "input": "o=[1;\n2;\n3;\n4;\n5]",
1141
- "minimised_modl" : "o=[1\n2\n3\n4\n5]",
1142
- "expected_output" : "{\n \"o\" : [ 1, 2, 3, 4, 5 ]\n}"
1143
- },
1144
- { "input": "o=[1;\n2;\n\n3;\n4;\n5]",
1145
- "minimised_modl" : "o=[1\n2\n\n3\n4\n5]",
1146
- "expected_output" : "{\n \"o\" : [ 1, 2, 3, 4, 5 ]\n}",
1147
- "tested_features":["array"]
1148
- },
1149
- { "input" : "o=[1 2 3 4 5]",
1150
- "minimised_modl" : "o=[1 2 3 4 5]",
1151
- "expected_output" : "{\n \"o\" : [ \"1 2 3 4 5\" ]\n}",
1152
- "tested_features":["array"]
1153
- },
1154
- { "input" : "o=`ok`",
1155
- "minimised_modl" : "o=ok",
1156
- "expected_output" : "{\n \"o\" : \"ok\"}",
1157
- "tested_features":["pair", "graves"]
1158
- },
1159
- { "input" : "o=``",
1160
- "minimised_modl" : "o=``",
1161
- "expected_output" : "{\n \"o\" : \"\"\n}",
1162
- "tested_features":["pair", "graves"]
1163
- },
1164
- { "input" : "o=\"ok\"",
1165
- "minimised_modl" : "o=ok",
1166
- "expected_output" : "{\n \"o\" : \"ok\"}",
1167
- "tested_features":["pair"]
1168
- },
1169
- { "input" : "o=\"\"",
1170
- "minimised_modl" : "o=\"\"",
1171
- "expected_output" : "{\n \"o\" : \"\"\n}",
1172
- "tested_features":["pair"]
1173
- },
1174
- { "input": "_test=( numbers=[[1;2;3;4;5];[6;7;8;9;10]]\n);\n \ntesting=%test.numbers.0.0",
1175
- "minimised_modl" : "_test=(numbers=[[1;2;3;4;5];[6;7;8;9;10]]);testing=%test.numbers.0.0",
1176
- "expected_output" : "{\"testing\":1}"
1177
- },
1178
- { "input": "_test=(\n numbers=(\"one\"=1)\n);\n\ntesting = this is a string that includes a reference with a letter s after it `%test.numbers.one`s",
1179
- "minimised_modl" : "_test=(numbers=(\"one\"=1));testing = this is a string that includes a reference with a letter s after it `%test.numbers.one`s",
1180
- "expected_output" : "{\"testing\":\"this is a string that includes a reference with a letter s after it 1s\"}",
1181
- "tested_features":["object_ref"]
1182
- },
1183
- { "input": "_test=(\n numbers=(\"v\"=TEST)\n);\n \ntesting = this is a string that includes extra transforms for the value `%test.numbers.v.d`_value",
1184
- "minimised_modl" : "_test=(numbers=(\"v\"=TEST));testing = this is a string that includes extra transforms for the value `%test.numbers.v.d`_value",
1185
- "expected_output" : "{\"testing\":\"this is a string that includes extra transforms for the value test_value\"}",
1186
- "tested_features":["object_ref", "string_method"]
1187
- },
1188
- { "input": "_test=(\n first=(\"v\"=TEST);\n second=(\"v\"=TEST2)\n);\n \ntesting = this is a string that includes extra transforms for the value `%test.second.v.d`_value",
1189
- "minimised_modl" : "_test=(first=(\"v\"=TEST);second=(\"v\"=TEST2));testing = this is a string that includes extra transforms for the value `%test.second.v.d`_value",
1190
- "expected_output" : "{\"testing\":\"this is a string that includes extra transforms for the value test2_value\"}",
1191
- "tested_features":["object_ref", "string_method"]
1192
- },
1193
- { "input": "_test=(\n first=(\"v1\"=one);\n second=(\"v2\"=two:three)\n);\n \ntesting = \"`%test.second.v2.1`\"",
1194
- "minimised_modl" : "_test=(first=(\"v1\"=one);second=(\"v2\"=two:three));testing = \"`%test.second.v2.1`\"",
1195
- "expected_output" : "{\"testing\":\"three\"}",
1196
- "tested_features":["object_ref", "graves"]
1197
- },
1198
- { "input": "_test=(\n first=(\"v1\"=[one]);\n second=(\"v2\"=two:three)\n);\n \ntesting = \"`%test.first.v1.0``%test.second.v2.0``%test.second.v2.1`\"",
1199
- "minimised_modl" : "_test=(first=(\"v1\"=[one]);second=(\"v2\"=two:three));testing = \"`%test.first.v1.0``%test.second.v2.0``%test.second.v2.1`\"",
1200
- "expected_output" : "{\"testing\":\"onetwothree\"}",
1201
- "tested_features":["object_ref"]
1202
- },
1203
- { "input": "_test=(\n first=(\"v1\"=(one=(two=three)))\n);\n \ntesting = \"`%test.first.v1.one.two`\"",
1204
- "minimised_modl" : "_test=(first=(\"v1\"=(one=(two=three))));testing = \"`%test.first.v1.one.two`\"",
1205
- "expected_output" : "{\"testing\":\"three\"}",
1206
- "tested_features":["object_ref"]
1207
- },
1208
- { "input": "tony=hungry;\nneeds_food_1={tony=hungry?true/?false};\nneeds_food_2={!tony=hungry?false/?true};\nneeds_food_3={tony!=hungry?false/?true};\nneeds_food_3={!tony!=hungry?true/?false}",
1209
- "minimised_modl": "tony=hungry\nneeds_food_1={tony=hungry?true/?false}\nneeds_food_2={!tony=hungry?false/?true}\nneeds_food_3={tony!=hungry?false/?true}\nneeds_food_3={!tony!=hungry?true/?false}",
1210
- "expected_output": "[{\"tony\": \"hungry\"},{\"needs_food_1\": true},{\"needs_food_2\": true},{\"needs_food_3\": true},{\"needs_food_3\": true}]",
1211
- "tested_features":["object_ref", "conditional"]
1212
- },
1213
- { "input": "_c=de;\nresult={c!=de/at?German or Austrian/?Other}",
1214
- "minimised_modl": "_c=de\nresult={c!=de/at?German or Austrian/?Other}",
1215
- "expected_output": "{\"result\":\"Other\"}",
1216
- "tested_features":["object_ref", "conditional"]
1217
- },
1218
- { "input": "_test = 1;\nresult={!test!=1?one/?Other}",
1219
- "minimised_modl": "_test = 1\nresult={!test!=1?one/?Other}",
1220
- "expected_output": "{\"result\":\"one\"}",
1221
- "tested_features":["object_ref", "conditional"]
1222
- },
1223
- { "input": "x=[1;2:3:4]",
1224
- "minimised_modl": "x=[1;2:3:4]",
1225
- "expected_output": "{\"x\": [1,[2,3,4]]}",
1226
- "tested_features":["array", "pair"]
1227
- },
1228
- { "input": "_x=[1;2:3:4];\na=%x.1.1",
1229
- "minimised_modl": "_x=[1;2:3:4]\na=%x.1.1",
1230
- "expected_output": "{\"a\":3}",
1231
- "tested_features":["object_ref"]
1232
- },
1233
- { "input": "x=[1;;;;;;;2:::::::::3;;;;;;;;;;4:::::::::5]",
1234
- "minimised_modl": "x=[1;;;;;;;2:::::::::3;;;;;;;;;;4:::::::::5]",
1235
- "expected_output": "{\"x\" : [ 1, null, null, null, null, null, null, [2, null, null, null, null, null, null, null, null, 3], null, null, null, null, null, null, null, null, null, [4, null, null, null, null, null, null, null, null, 5] ]}",
1236
- "tested_features":["array", "map", "null"]
1237
- },
1238
- { "input": "*class(\n *id=p;\n *name=person;\n *superclass=map;\n actions=[call;email]\n);\n*class(\n *id=c;\n *name=customer;\n *superclass=person;\n *assign=[\n [title;name;email]\n ]\n);\n*class(\n *id=e;\n *name=employee;\n *superclass=person;\n *assign=[\n [title;name;job_title;email]\n ]\n);\n\n## An employee:\ne=Mr:John Smith:Sales Director:john.smith@example.com;\n## A customer:\nc=Mr:Joe Bloggs:joe.bloggs@example.com;\n## Another customer:\nc=Mrs:Jane Wilson:jane.wilson@example.com",
1239
- "minimised_modl": "*class(*id=p;*name=person;*superclass=map;actions=[call;email]);*class(*id=c;*name=customer;*superclass=person;*assign=[[title;name;email]]);*class(*id=e;*name=employee;*superclass=person;*assign=[[title;name;job_title;email]]);## An employee:;e=Mr:John Smith:Sales Director:john.smith@example.com;## A customer:;c=Mr:Joe Bloggs:joe.bloggs@example.com;## Another customer:;c=Mrs:Jane Wilson:jane.wilson@example.com",
1240
- "expected_output": "[ {\n \"employee\" : {\n \"title\" : \"Mr\",\n \"name\" : \"John Smith\",\n \"job_title\" : \"Sales Director\",\n \"email\" : \"john.smith@example.com\",\n \"actions\" : [ \"call\", \"email\" ]\n }\n}, {\n \"customer\" : {\n \"title\" : \"Mr\",\n \"name\" : \"Joe Bloggs\",\n \"email\" : \"joe.bloggs@example.com\",\n \"actions\" : [ \"call\", \"email\" ]\n }\n}, {\n \"customer\" : {\n \"title\" : \"Mrs\",\n \"name\" : \"Jane Wilson\",\n \"email\" : \"jane.wilson@example.com\",\n \"actions\" : [ \"call\", \"email\" ]\n }\n} ]",
1241
- "tested_features":["class"]
1242
- },
1243
- { "input": "test=This is a \\`test~`",
1244
- "minimised_modl": "test=This is a \\`test~`",
1245
- "expected_output": "{\n \"test\" : \"This is a `test`\"\n}",
1246
- "tested_features":["strings"]
1247
- },
1248
- { "input": "*class(*id=a;*name=alpha);a=b",
1249
- "minimised_modl": "*class(*id=a;*name=alpha);a=b",
1682
+ "tested_features": [
1683
+ "object_ref",
1684
+ "load",
1685
+ "null"
1686
+ ],
1687
+ "minimised_modl": "_T=grammar_tests/demo;*L=%T%_config"
1688
+ },
1689
+ {
1690
+ "id": "178",
1691
+ "input": "*l=grammar_tests/1;*L=grammar_tests/1;a=1",
1692
+ "expected_output": "{\n \"a\": 1\n}",
1693
+ "tested_features": [
1694
+ "load"
1695
+ ],
1696
+ "minimised_modl": "*l=grammar_tests/1;*L=grammar_tests/1;a=1"
1697
+ },
1698
+ {
1699
+ "id": "179",
1700
+ "input": "*l=grammar_tests/1;*l=grammar_tests/1;a=1",
1701
+ "expected_output": "{\n \"a\": 1\n}",
1702
+ "tested_features": [
1703
+ "load"
1704
+ ],
1705
+ "minimised_modl": "*l=grammar_tests/1;*l=grammar_tests/1;a=1"
1706
+ },
1707
+ {
1708
+ "id": "180",
1709
+ "input": "*l=grammar_tests/1:grammar_tests/2:grammar_tests/3;\nthe_number=%number",
1710
+ "expected_output": "{\n \"the_number\": 3\n}",
1711
+ "tested_features": [
1712
+ "object_ref",
1713
+ "load"
1714
+ ],
1715
+ "minimised_modl": "*l=grammar_tests/1:grammar_tests/2:grammar_tests/3;the_number=%number"
1716
+ },
1717
+ {
1718
+ "id": "181",
1719
+ "input": "*l=grammar_tests/1:grammar_tests/2:grammar_tests/3:grammar_tests/1;\nthe_number=%number",
1720
+ "expected_output": "{\n \"the_number\": 1\n}",
1721
+ "tested_features": [
1722
+ "object_ref",
1723
+ "load"
1724
+ ],
1725
+ "minimised_modl": "*l=grammar_tests/1:grammar_tests/2:grammar_tests/3:grammar_tests/1;the_number=%number"
1726
+ },
1727
+ {
1728
+ "id": "182",
1729
+ "input": "*l[grammar_tests/1;grammar_tests/2;grammar_tests/3;grammar_tests/1];\nthe_number=%number",
1730
+ "expected_output": "{\n \"the_number\": 1\n}",
1731
+ "tested_features": [
1732
+ "object_ref",
1733
+ "load"
1734
+ ],
1735
+ "minimised_modl": "*l=grammar_tests/1:grammar_tests/2:grammar_tests/3:grammar_tests/1;the_number=%number"
1736
+ },
1737
+ {
1738
+ "id": "183",
1739
+ "input": "*l=grammar_tests/a:grammar_tests/b:grammar_tests/c;\nvar=%var",
1740
+ "expected_output": "{\n \"var\": \"abc\"\n}",
1741
+ "tested_features": [
1742
+ "object_ref",
1743
+ "load"
1744
+ ],
1745
+ "minimised_modl": "*l=grammar_tests/a:grammar_tests/b:grammar_tests/c;var=%var"
1746
+ },
1747
+ {
1748
+ "id": "184",
1749
+ "input": "*L=grammar_tests/demo_config;\n\nm=out:2018-03-22 15\\:25:Hi;\nm=in:2018-03-22 15\\:26:Hello, how are you?;\nm=out:2018-03-22 15\\:25:Hi, good thanks;\nm=out:2018-03-22 15\\:26:How about you?;\nm=in:2018-03-22 15\\:26:Yes, fine thanks. What are you up to?;\nm=out:2018-03-22 15\\:25:Just testing out MODL;\nm=in:2018-03-22 15\\:26:Cool!",
1750
+ "expected_output": "[\n {\n \"message\": {\n \"direction\": \"out\",\n \"date_time\": \"2018-03-22 15:25\",\n \"message\": \"Hi\",\n \"method\": \"sms\"\n }\n },\n {\n \"message\": {\n \"direction\": \"in\",\n \"date_time\": \"2018-03-22 15:26\",\n \"message\": \"Hello, how are you?\",\n \"method\": \"sms\"\n }\n },\n {\n \"message\": {\n \"direction\": \"out\",\n \"date_time\": \"2018-03-22 15:25\",\n \"message\": \"Hi, good thanks\",\n \"method\": \"sms\"\n }\n },\n {\n \"message\": {\n \"direction\": \"out\",\n \"date_time\": \"2018-03-22 15:26\",\n \"message\": \"How about you?\",\n \"method\": \"sms\"\n }\n },\n {\n \"message\": {\n \"direction\": \"in\",\n \"date_time\": \"2018-03-22 15:26\",\n \"message\": \"Yes, fine thanks. What are you up to?\",\n \"method\": \"sms\"\n }\n },\n {\n \"message\": {\n \"direction\": \"out\",\n \"date_time\": \"2018-03-22 15:25\",\n \"message\": \"Just testing out MODL\",\n \"method\": \"sms\"\n }\n },\n {\n \"message\": {\n \"direction\": \"in\",\n \"date_time\": \"2018-03-22 15:26\",\n \"message\": \"Cool!\",\n \"method\": \"sms\"\n }\n }\n]",
1751
+ "tested_features": [
1752
+ "object_ref",
1753
+ "load"
1754
+ ],
1755
+ "minimised_modl": "*L=grammar_tests/demo_config;m=out:2018-03-22 15~:25:Hi;m=in:2018-03-22 15~:26:Hello, how are you?;m=out:2018-03-22 15~:25:Hi, good thanks;m=out:2018-03-22 15~:26:How about you?;m=in:2018-03-22 15~:26:Yes, fine thanks. What are you up to?;m=out:2018-03-22 15~:25:Just testing out MODL;m=in:2018-03-22 15~:26:Cool!"
1756
+ },
1757
+ {
1758
+ "id": "185",
1759
+ "input": "## country\n_c = us;\n## language\n_l = en;\n\n*L=grammar_tests/import_config.modl;\n\ncountry = %c;\nlanguage = %l;\ntime_zone = %tz",
1760
+ "expected_output": "[\n {\n \"country\": \"us\"\n },\n {\n \"language\": \"en\"\n },\n {\n \"time_zone\": \"EST\"\n }\n]",
1761
+ "tested_features": [
1762
+ "object_ref",
1763
+ "load",
1764
+ "comments"
1765
+ ],
1766
+ "minimised_modl": "_c=us;_l=en;*L=grammar_tests/import_config.modl;country=%c;language=%l;time_zone=%tz"
1767
+ },
1768
+ {
1769
+ "id": "186",
1770
+ "input": "*L=grammar_tests/test_import_dir/test_import.txt;\n\nm=out:2018-03-22 15\\:25:Hi;\nm=in:2018-03-22 15\\:26:Hello, how are you?;\nm=out:2018-03-22 15\\:25:Hi, good thanks;\nm=out:2018-03-22 15\\:26:How about you?;\nm=in:2018-03-22 15\\:26:Yes, fine thanks. What are you up to?;\nm=out:2018-03-22 15\\:25:Just testing out MODL;\nm=in:2018-03-22 15\\:26:Cool!",
1771
+ "expected_output": "[\n {\n \"message\": {\n \"direction\": \"out\",\n \"date_time\": \"2018-03-22 15:25\",\n \"message\": \"Hi\",\n \"method\": \"sms\"\n }\n },\n {\n \"message\": {\n \"direction\": \"in\",\n \"date_time\": \"2018-03-22 15:26\",\n \"message\": \"Hello, how are you?\",\n \"method\": \"sms\"\n }\n },\n {\n \"message\": {\n \"direction\": \"out\",\n \"date_time\": \"2018-03-22 15:25\",\n \"message\": \"Hi, good thanks\",\n \"method\": \"sms\"\n }\n },\n {\n \"message\": {\n \"direction\": \"out\",\n \"date_time\": \"2018-03-22 15:26\",\n \"message\": \"How about you?\",\n \"method\": \"sms\"\n }\n },\n {\n \"message\": {\n \"direction\": \"in\",\n \"date_time\": \"2018-03-22 15:26\",\n \"message\": \"Yes, fine thanks. What are you up to?\",\n \"method\": \"sms\"\n }\n },\n {\n \"message\": {\n \"direction\": \"out\",\n \"date_time\": \"2018-03-22 15:25\",\n \"message\": \"Just testing out MODL\",\n \"method\": \"sms\"\n }\n },\n {\n \"message\": {\n \"direction\": \"in\",\n \"date_time\": \"2018-03-22 15:26\",\n \"message\": \"Cool!\",\n \"method\": \"sms\"\n }\n }\n]",
1772
+ "tested_features": [
1773
+ "object_ref",
1774
+ "load"
1775
+ ],
1776
+ "minimised_modl": "*L=grammar_tests/test_import_dir/test_import.txt;m=out:2018-03-22 15~:25:Hi;m=in:2018-03-22 15~:26:Hello, how are you?;m=out:2018-03-22 15~:25:Hi, good thanks;m=out:2018-03-22 15~:26:How about you?;m=in:2018-03-22 15~:26:Yes, fine thanks. What are you up to?;m=out:2018-03-22 15~:25:Just testing out MODL;m=in:2018-03-22 15~:26:Cool!"
1777
+ },
1778
+ {
1779
+ "id": "187",
1780
+ "input": "o=[test;test;t=Customer Service:44123]",
1781
+ "expected_output": "{\n \"o\": [\n \"test\",\n \"test\",\n {\n \"t\": [\n \"Customer Service\",\n 44123\n ]\n }\n ]\n}",
1782
+ "tested_features": [
1783
+ "map",
1784
+ "array"
1785
+ ],
1786
+ "minimised_modl": "o[test;test;t=Customer Service:44123]"
1787
+ },
1788
+ {
1789
+ "id": "188",
1790
+ "input": "test[number=1;number=2;number=3]",
1791
+ "expected_output": "{\n \"test\": [\n {\n \"number\": 1\n },\n {\n \"number\": 2\n },\n {\n \"number\": 3\n }\n ]\n}",
1792
+ "tested_features": [
1793
+ "map",
1794
+ "array"
1795
+ ],
1796
+ "minimised_modl": "test[number=1;number=2;number=3]"
1797
+ },
1798
+ {
1799
+ "id": "189",
1800
+ "input": "test(one=1;two=2;three=3)",
1801
+ "expected_output": "{\n \"test\": {\n \"one\": 1,\n \"two\": 2,\n \"three\": 3\n }\n}",
1802
+ "tested_features": [
1803
+ "map",
1804
+ "array"
1805
+ ],
1806
+ "minimised_modl": "test(one=1;two=2;three=3)"
1807
+ },
1808
+ {
1809
+ "id": "190",
1810
+ "input": "test=test",
1811
+ "expected_output": "{\n \"test\": \"test\"\n}",
1812
+ "tested_features": [
1813
+ "pair"
1814
+ ],
1815
+ "minimised_modl": "test=test"
1816
+ },
1817
+ {
1818
+ "id": "191",
1819
+ "input": "one=1;two=2;three=3",
1820
+ "expected_output": "[\n {\n \"one\": 1\n },\n {\n \"two\": 2\n },\n {\n \"three\": 3\n }\n]",
1821
+ "tested_features": [
1822
+ "map",
1823
+ "pair"
1824
+ ],
1825
+ "minimised_modl": "one=1;two=2;three=3"
1826
+ },
1827
+ {
1828
+ "id": "192",
1829
+ "input": "[o(n=test);o(n=test2)]",
1830
+ "expected_output": "[\n {\n \"o\": {\n \"n\": \"test\"\n }\n },\n {\n \"o\": {\n \"n\": \"test2\"\n }\n }\n]",
1831
+ "tested_features": [
1832
+ "map",
1833
+ "pair"
1834
+ ],
1835
+ "minimised_modl": "[o(n=test);o(n=test2)]"
1836
+ },
1837
+ {
1838
+ "id": "193",
1839
+ "input": "R=0;\nnumber=1;number=2;number=3",
1840
+ "expected_output": "[\n {\n \"R\": 0\n },\n {\n \"number\": 1\n },\n {\n \"number\": 2\n },\n {\n \"number\": 3\n }\n]",
1841
+ "tested_features": [
1842
+ "map",
1843
+ "array",
1844
+ "pair"
1845
+ ],
1846
+ "minimised_modl": "R=0;number=1;number=2;number=3"
1847
+ },
1848
+ {
1849
+ "id": "194",
1850
+ "input": "test=(one=1)",
1851
+ "expected_output": "{\n \"test\": {\n \"one\": 1\n }\n}",
1852
+ "tested_features": [
1853
+ "map",
1854
+ "array"
1855
+ ],
1856
+ "minimised_modl": "test(one=1)"
1857
+ },
1858
+ {
1859
+ "id": "195",
1860
+ "input": "test(one=1)",
1861
+ "expected_output": "{\n \"test\": {\n \"one\": 1\n }\n}",
1862
+ "tested_features": [
1863
+ "map",
1864
+ "array"
1865
+ ],
1866
+ "minimised_modl": "test(one=1)"
1867
+ },
1868
+ {
1869
+ "id": "196",
1870
+ "input": "test=[1;2;3]",
1871
+ "expected_output": "{\n \"test\": [\n 1,\n 2,\n 3\n ]\n}",
1872
+ "tested_features": [
1873
+ "map",
1874
+ "array"
1875
+ ],
1876
+ "minimised_modl": "test=1:2:3"
1877
+ },
1878
+ {
1879
+ "id": "197",
1880
+ "input": "test[1;2;3]",
1881
+ "expected_output": "{\n \"test\": [\n 1,\n 2,\n 3\n ]\n}",
1882
+ "tested_features": [
1883
+ "map",
1884
+ "array"
1885
+ ],
1886
+ "minimised_modl": "test=1:2:3"
1887
+ },
1888
+ {
1889
+ "id": "198",
1890
+ "input": "o(n=Tesco;s=Every Little Helps)",
1891
+ "expected_output": "{\n \"o\": {\n \"n\": \"Tesco\",\n \"s\": \"Every Little Helps\"\n }\n}",
1892
+ "tested_features": [
1893
+ "map",
1894
+ "array"
1895
+ ],
1896
+ "minimised_modl": "o(n=Tesco;s=Every Little Helps)"
1897
+ },
1898
+ {
1899
+ "id": "199",
1900
+ "input": "o(n=test)",
1901
+ "expected_output": "{\n \"o\": {\n \"n\": \"test\"\n }\n}",
1902
+ "tested_features": [
1903
+ "map",
1904
+ "array"
1905
+ ],
1906
+ "minimised_modl": "o(n=test)"
1907
+ },
1908
+ {
1909
+ "id": "200",
1910
+ "input": "o(n=test)\n",
1911
+ "expected_output": "{\n \"o\": {\n \"n\": \"test\"\n }\n}",
1912
+ "tested_features": [
1913
+ "map",
1914
+ "array"
1915
+ ],
1916
+ "minimised_modl": "o(n=test)"
1917
+ },
1918
+ {
1919
+ "id": "201",
1920
+ "input": "o(\nn=test\n)",
1921
+ "expected_output": "{\n \"o\": {\n \"n\": \"test\"\n }\n}",
1922
+ "tested_features": [
1923
+ "undefined"
1924
+ ],
1925
+ "minimised_modl": "o(n=test)"
1926
+ },
1927
+ {
1928
+ "id": "202",
1929
+ "input": "DELETED",
1930
+ "expected_output": "DELETED",
1931
+ "tested_features": [
1932
+ "DELETED"
1933
+ ],
1934
+ "minimised_modl": "DELETED"
1935
+ },
1936
+ {
1937
+ "id": "203",
1938
+ "input": "o(n=test);\no(n=test2)",
1939
+ "expected_output": "[\n {\n \"o\": {\n \"n\": \"test\"\n }\n },\n {\n \"o\": {\n \"n\": \"test2\"\n }\n }\n]",
1940
+ "tested_features": [
1941
+ "map",
1942
+ "array"
1943
+ ],
1944
+ "minimised_modl": "o(n=test);o(n=test2)"
1945
+ },
1946
+ {
1947
+ "id": "204",
1948
+ "input": "o(n=test);o(n=test2)",
1949
+ "expected_output": "[\n {\n \"o\": {\n \"n\": \"test\"\n }\n },\n {\n \"o\": {\n \"n\": \"test2\"\n }\n }\n]",
1950
+ "tested_features": [
1951
+ "map",
1952
+ "array"
1953
+ ],
1954
+ "minimised_modl": "o(n=test);o(n=test2)"
1955
+ },
1956
+ {
1957
+ "id": "205",
1958
+ "input": "o=[test;test]",
1959
+ "expected_output": "{\n \"o\": [\n \"test\",\n \"test\"\n ]\n}",
1960
+ "tested_features": [
1961
+ "map",
1962
+ "array"
1963
+ ],
1964
+ "minimised_modl": "o=test:test"
1965
+ },
1966
+ {
1967
+ "id": "206",
1968
+ "input": "o=test",
1969
+ "expected_output": "{\n \"o\": \"test\"\n}",
1970
+ "tested_features": [
1971
+ "pair"
1972
+ ],
1973
+ "minimised_modl": "o=test"
1974
+ },
1975
+ {
1976
+ "id": "207",
1977
+ "input": "o=[1;2]",
1978
+ "expected_output": "{\n \"o\": [\n 1,\n 2\n ]\n}",
1979
+ "tested_features": [
1980
+ "map",
1981
+ "array"
1982
+ ],
1983
+ "minimised_modl": "o=1:2"
1984
+ },
1985
+ {
1986
+ "id": "208",
1987
+ "input": "o=[test1;test2]",
1988
+ "expected_output": "{\n \"o\": [\n \"test1\",\n \"test2\"\n ]\n}",
1989
+ "tested_features": [
1990
+ "map",
1991
+ "array"
1992
+ ],
1993
+ "minimised_modl": "o=test1:test2"
1994
+ },
1995
+ {
1996
+ "id": "209",
1997
+ "input": "o(t=test1;t2=test2)",
1998
+ "expected_output": "{\n \"o\": {\n \"t\": \"test1\",\n \"t2\": \"test2\"\n }\n}",
1999
+ "tested_features": [
2000
+ "map"
2001
+ ],
2002
+ "minimised_modl": "o(t=test1;t2=test2)"
2003
+ },
2004
+ {
2005
+ "id": "210",
2006
+ "input": "o(t(a=test;b=test2);t2(c=test;d=test2))",
2007
+ "expected_output": "{\n \"o\": {\n \"t\": {\n \"a\": \"test\",\n \"b\": \"test2\"\n },\n \"t2\": {\n \"c\": \"test\",\n \"d\": \"test2\"\n }\n }\n}",
2008
+ "tested_features": [
2009
+ "map"
2010
+ ],
2011
+ "minimised_modl": "o(t(a=test;b=test2);t2(c=test;d=test2))"
2012
+ },
2013
+ {
2014
+ "id": "211",
2015
+ "input": "o=1:2::4:5",
2016
+ "expected_output": "{\n \"o\": [\n 1,\n 2,\n null,\n 4,\n 5\n ]\n}",
2017
+ "tested_features": [
2018
+ "pair",
2019
+ "nbArray",
2020
+ "null"
2021
+ ],
2022
+ "minimised_modl": "5"
2023
+ },
2024
+ {
2025
+ "id": "212",
2026
+ "input": "o=[1;2;;4;5]",
2027
+ "expected_output": "{\n \"o\": [\n 1,\n 2,\n null,\n 4,\n 5\n ]\n}",
2028
+ "tested_features": [
2029
+ "pair",
2030
+ "array",
2031
+ "null"
2032
+ ],
2033
+ "minimised_modl": "o=1:2::4:5"
2034
+ },
2035
+ {
2036
+ "id": "213",
2037
+ "input": "o=[1;\n2;\n\n3;\n4;\n5]",
2038
+ "expected_output": "{\n \"o\": [\n 1,\n 2,\n 3,\n 4,\n 5\n ]\n}",
2039
+ "tested_features": [
2040
+ "pair",
2041
+ "array"
2042
+ ],
2043
+ "minimised_modl": "o=1:2:3:4:5"
2044
+ },
2045
+ {
2046
+ "id": "214",
2047
+ "input": "o=[1 2 3 4 5]",
2048
+ "expected_output": "{\n \"o\": [\n \"1 2 3 4 5\"\n ]\n}",
2049
+ "tested_features": [
2050
+ "pair"
2051
+ ],
2052
+ "minimised_modl": "o=1 2 3 4 5"
2053
+ },
2054
+ {
2055
+ "id": "215",
2056
+ "input": "o=`ok`",
2057
+ "expected_output": "{\n \"o\": \"ok\"\n}",
2058
+ "tested_features": [
2059
+ "pair",
2060
+ "graves"
2061
+ ],
2062
+ "minimised_modl": "o=`ok`"
2063
+ },
2064
+ {
2065
+ "id": "216",
2066
+ "input": "o=``",
2067
+ "expected_output": "{\n \"o\": \"\"\n}",
2068
+ "tested_features": [
2069
+ "pair",
2070
+ "graves"
2071
+ ],
2072
+ "minimised_modl": "o=``"
2073
+ },
2074
+ {
2075
+ "id": "217",
2076
+ "input": "_test=(\n numbers=[[1;2;3;4;5];[6;7;8;9;10]]\n);\n \ntesting=%test.numbers.0.0",
2077
+ "expected_output": "{\n \"testing\": 1\n}",
2078
+ "tested_features": [
2079
+ "object_ref"
2080
+ ],
2081
+ "minimised_modl": "_test=(numbers=[[1;2;3;4;5];[6;7;8;9;10]]);testing=%test.numbers.0.0"
2082
+ },
2083
+ {
2084
+ "id": "218",
2085
+ "input": "_test=(\n numbers=(\"one\"=1)\n);\n \ntesting = this is a string that includes a reference with a letter s after it %test.numbers.one%s",
2086
+ "expected_output": "{\n \"testing\": \"this is a string that includes a reference with a letter s after it 1s\"\n}",
2087
+ "tested_features": [
2088
+ "object_ref"
2089
+ ],
2090
+ "minimised_modl": "_test=(numbers=(one=1));testing=this is a string that includes a reference with a letter s after it %test.numbers.one%s"
2091
+ },
2092
+ {
2093
+ "id": "219",
2094
+ "input": "_test=(\n numbers=(\"v\"=TEST)\n);\n \ntesting = this is a string that includes extra transforms for the value %test.numbers.v.d%_value",
2095
+ "expected_output": "{\n \"testing\": \"this is a string that includes extra transforms for the value test_value\"\n}",
2096
+ "tested_features": [
2097
+ "object_ref",
2098
+ "string_method"
2099
+ ],
2100
+ "minimised_modl": "_test=(numbers=(v=TEST));testing=this is a string that includes extra transforms for the value %test.numbers.v.d%_value"
2101
+ },
2102
+ {
2103
+ "id": "220",
2104
+ "input": "_test=(\n first=(\"v\"=TEST);\n second=(\"v\"=TEST2)\n);\n \ntesting = this is a string that includes extra transforms for the value %test.second.v.d%_value",
2105
+ "expected_output": "{\n \"testing\": \"this is a string that includes extra transforms for the value test2_value\"\n}",
2106
+ "tested_features": [
2107
+ "object_ref",
2108
+ "string_method"
2109
+ ],
2110
+ "minimised_modl": "_test=(first=(v=TEST);second=(v=TEST2));testing=this is a string that includes extra transforms for the value %test.second.v.d%_value"
2111
+ },
2112
+ {
2113
+ "id": "221",
2114
+ "input": "_test=(\n first=(\"v1\"=one);\n second=(\"v2\"=two:three)\n);\n \ntesting = %test.second.v2.1",
2115
+ "expected_output": "{\n \"testing\": \"three\"\n}",
2116
+ "tested_features": [
2117
+ "object_ref",
2118
+ "graves"
2119
+ ],
2120
+ "minimised_modl": "_test=(first=(v1=one);second=(v2=two:three));testing=%test.second.v2.1"
2121
+ },
2122
+ {
2123
+ "id": "222",
2124
+ "input": "_test=(\n first=(\"v1\"=[one]);\n second=(\"v2\"=two:three)\n);\n \ntesting = %test.first.v1.0%%test.second.v2.0%%test.second.v2.1",
2125
+ "expected_output": "{\n \"testing\": \"onetwothree\"\n}",
2126
+ "tested_features": [
2127
+ "object_ref"
2128
+ ],
2129
+ "minimised_modl": "_test=(first=(v1=[one]);second=(v2=two:three));testing=%test.first.v1.0%%test.second.v2.0%%test.second.v2.1"
2130
+ },
2131
+ {
2132
+ "id": "223",
2133
+ "input": "_test=(\n first=(\"v1\"=(one=(two=three)))\n);\n \ntesting = %test.first.v1.one.two",
2134
+ "expected_output": "{\n \"testing\": \"three\"\n}",
2135
+ "tested_features": [
2136
+ "object_ref"
2137
+ ],
2138
+ "minimised_modl": "_test=(first=(v1=(one=(two=three))));testing=%test.first.v1.one.two"
2139
+ },
2140
+ {
2141
+ "id": "224",
2142
+ "input": "b=2;c=2;d=2;e=2;a={{b=c & d=e}?v1:v2:v3/?v4:v5:v6}",
2143
+ "expected_output": "[\n {\n \"b\": 2\n },\n {\n \"c\": 2\n },\n {\n \"d\": 2\n },\n {\n \"e\": 2\n },\n {\n \"a\": [\n \"v1\",\n \"v2\",\n \"v3\"\n ]\n }\n]",
2144
+ "tested_features": [
2145
+ "conditional"
2146
+ ],
2147
+ "minimised_modl": "b=2;c=2;d=2;e=2;a={{b=c & d=e}?v1:v2:v3/?v4:v5:v6}"
2148
+ },
2149
+ {
2150
+ "id": "225",
2151
+ "input": "o=1:2:3:4:5",
2152
+ "expected_output": "{\n \"o\": [\n 1,\n 2,\n 3,\n 4,\n 5\n ]\n}",
2153
+ "tested_features": [
2154
+ "nbArray"
2155
+ ],
2156
+ "minimised_modl": "o=1:2:3:4:5"
2157
+ },
2158
+ {
2159
+ "id": "226",
2160
+ "input": "DELETED",
2161
+ "expected_output": "DELETED",
2162
+ "tested_features": [
2163
+ "DELETED"
2164
+ ],
2165
+ "minimised_modl": "DELETED"
2166
+ },
2167
+ {
2168
+ "id": "227",
2169
+ "input": "o=[1;2;3;4;5]",
2170
+ "expected_output": "{\n \"o\": [\n 1,\n 2,\n 3,\n 4,\n 5\n ]\n}",
2171
+ "tested_features": [
2172
+ "array"
2173
+ ],
2174
+ "minimised_modl": "o=[1;2;3;4;5]"
2175
+ },
2176
+ {
2177
+ "id": "228",
2178
+ "input": "DELETED",
2179
+ "expected_output": "DELETED",
2180
+ "tested_features": [
2181
+ "DELETED"
2182
+ ],
2183
+ "minimised_modl": "DELETED"
2184
+ },
2185
+ {
2186
+ "id": "229",
2187
+ "input": "o=[1;\n2;\n3;\n4;\n5]",
2188
+ "expected_output": "{\n \"o\": [\n 1,\n 2,\n 3,\n 4,\n 5\n ]\n}",
2189
+ "tested_features": [
2190
+ "undefined"
2191
+ ],
2192
+ "minimised_modl": "o=[1\n2\n3\n4\n5]"
2193
+ },
2194
+ {
2195
+ "id": "230",
2196
+ "input": "DELETED",
2197
+ "expected_output": "DELETED",
2198
+ "tested_features": [
2199
+ "DELETED"
2200
+ ],
2201
+ "minimised_modl": "DELETED"
2202
+ },
2203
+ {
2204
+ "id": "231",
2205
+ "input": "DELETED",
2206
+ "expected_output": "DELETED",
2207
+ "tested_features": [
2208
+ "DELETED"
2209
+ ],
2210
+ "minimised_modl": "DELETED"
2211
+ },
2212
+ {
2213
+ "id": "232",
2214
+ "input": "DELETED",
2215
+ "expected_output": "DELETED",
2216
+ "tested_features": [
2217
+ "DELETED"
2218
+ ],
2219
+ "minimised_modl": "DELETED"
2220
+ },
2221
+ {
2222
+ "id": "233",
2223
+ "input": "DELETED",
2224
+ "expected_output": "DELETED",
2225
+ "tested_features": [
2226
+ "DELETED"
2227
+ ],
2228
+ "minimised_modl": "DELETED"
2229
+ },
2230
+ {
2231
+ "id": "234",
2232
+ "input": "o=\"ok\"",
2233
+ "expected_output": "{\n \"o\": \"ok\"\n}",
2234
+ "tested_features": [
2235
+ "pair"
2236
+ ],
2237
+ "minimised_modl": "o=ok"
2238
+ },
2239
+ {
2240
+ "id": "235",
2241
+ "input": "o=\"\"",
2242
+ "expected_output": "{\n \"o\": \"\"\n}",
2243
+ "tested_features": [
2244
+ "pair"
2245
+ ],
2246
+ "minimised_modl": "o=\"\""
2247
+ },
2248
+ {
2249
+ "id": "236",
2250
+ "input": "_test=( numbers=[[1;2;3;4;5];[6;7;8;9;10]]\n);\n \ntesting=%test.numbers.0.0",
2251
+ "expected_output": "{\n \"testing\": 1\n}",
2252
+ "tested_features": [
2253
+ "undefined"
2254
+ ],
2255
+ "minimised_modl": "_test=(numbers=[[1;2;3;4;5];[6;7;8;9;10]]);testing=%test.numbers.0.0"
2256
+ },
2257
+ {
2258
+ "id": "237",
2259
+ "input": "_test=(\n numbers=(\"one\"=1)\n);\n\ntesting = this is a string that includes a reference with a letter s after it %test.numbers.one%s",
2260
+ "expected_output": "{\n \"testing\": \"this is a string that includes a reference with a letter s after it 1s\"\n}",
2261
+ "tested_features": [
2262
+ "object_ref"
2263
+ ],
2264
+ "minimised_modl": "_test=(numbers=(\"one\"=1));testing = this is a string that includes a reference with a letter s after it %%test.numbers.one%s"
2265
+ },
2266
+ {
2267
+ "id": "238",
2268
+ "input": "DELETED",
2269
+ "expected_output": "DELETED",
2270
+ "tested_features": [
2271
+ "DELETED"
2272
+ ],
2273
+ "minimised_modl": "DELETED"
2274
+ },
2275
+ {
2276
+ "id": "239",
2277
+ "input": "DELETED",
2278
+ "expected_output": "DELETED",
2279
+ "tested_features": [
2280
+ "DELETED"
2281
+ ],
2282
+ "minimised_modl": "DELETED"
2283
+ },
2284
+ {
2285
+ "id": "240",
2286
+ "input": "DELETED",
2287
+ "expected_output": "DELETED",
2288
+ "tested_features": [
2289
+ "DELETED"
2290
+ ],
2291
+ "minimised_modl": "DELETED"
2292
+ },
2293
+ {
2294
+ "id": "241",
2295
+ "input": "DELETED",
2296
+ "expected_output": "DELETED",
2297
+ "tested_features": [
2298
+ "DELETED"
2299
+ ],
2300
+ "minimised_modl": "DELETED"
2301
+ },
2302
+ {
2303
+ "id": "242",
2304
+ "input": "DELETED",
2305
+ "expected_output": "DELETED",
2306
+ "tested_features": [
2307
+ "DELETED"
2308
+ ],
2309
+ "minimised_modl": "DELETED"
2310
+ },
2311
+ {
2312
+ "id": "243",
2313
+ "input": "tony=hungry;\nneeds_food_1={tony=hungry?true/?false};\nneeds_food_2={!tony=hungry?false/?true};\nneeds_food_3={tony!=hungry?false/?true};\nneeds_food_3={!tony!=hungry?true/?false}",
2314
+ "expected_output": "[\n {\n \"tony\": \"hungry\"\n },\n {\n \"needs_food_1\": true\n },\n {\n \"needs_food_2\": true\n },\n {\n \"needs_food_3\": true\n },\n {\n \"needs_food_3\": true\n }\n]",
2315
+ "tested_features": [
2316
+ "object_ref",
2317
+ "conditional"
2318
+ ],
2319
+ "minimised_modl": "tony=hungry\nneeds_food_1={tony=hungry?true/?false}\nneeds_food_2={!tony=hungry?false/?true}\nneeds_food_3={tony!=hungry?false/?true}\nneeds_food_3={!tony!=hungry?true/?false}"
2320
+ },
2321
+ {
2322
+ "id": "244",
2323
+ "input": "_c=de;\nresult={c!=de/at?German or Austrian/?Other}",
2324
+ "expected_output": "{\n \"result\": \"Other\"\n}",
2325
+ "tested_features": [
2326
+ "object_ref",
2327
+ "conditional"
2328
+ ],
2329
+ "minimised_modl": "_c=de\nresult={c!=de/at?German or Austrian/?Other}"
2330
+ },
2331
+ {
2332
+ "id": "245",
2333
+ "input": "_test = 1;\nresult={!test!=1?one/?Other}",
2334
+ "expected_output": "{\n \"result\": \"one\"\n}",
2335
+ "tested_features": [
2336
+ "object_ref",
2337
+ "conditional"
2338
+ ],
2339
+ "minimised_modl": "_test = 1\nresult={!test!=1?one/?Other}"
2340
+ },
2341
+ {
2342
+ "id": "246",
2343
+ "input": "x=[1;2:3:4]",
2344
+ "expected_output": "{\n \"x\": [\n 1,\n [\n 2,\n 3,\n 4\n ]\n ]\n}",
2345
+ "tested_features": [
2346
+ "array",
2347
+ "pair"
2348
+ ],
2349
+ "minimised_modl": "x=[1;2:3:4]"
2350
+ },
2351
+ {
2352
+ "id": "247",
2353
+ "input": "_x=[1;2:3:4];\na=%x.1.1",
2354
+ "expected_output": "{\n \"a\": 3\n}",
2355
+ "tested_features": [
2356
+ "object_ref"
2357
+ ],
2358
+ "minimised_modl": "_x=[1;2:3:4]\na=%x.1.1"
2359
+ },
2360
+ {
2361
+ "id": "248",
2362
+ "input": "x=[1;;;;;;;2:::::::::3;;;;;;;;;;4:::::::::5]",
2363
+ "expected_output": "{\n \"x\": [\n 1,\n null,\n null,\n null,\n null,\n null,\n null,\n [\n 2,\n null,\n null,\n null,\n null,\n null,\n null,\n null,\n null,\n 3\n ],\n null,\n null,\n null,\n null,\n null,\n null,\n null,\n null,\n null,\n [\n 4,\n null,\n null,\n null,\n null,\n null,\n null,\n null,\n null,\n 5\n ]\n ]\n}",
2364
+ "tested_features": [
2365
+ "array",
2366
+ "map",
2367
+ "null"
2368
+ ],
2369
+ "minimised_modl": "x=[1;;;;;;;2:::::::::3;;;;;;;;;;4:::::::::5]"
2370
+ },
2371
+ {
2372
+ "id": "249",
2373
+ "input": "*class(\n *id=p;\n *name=person;\n *superclass=map;\n actions=[call;email]\n);\n*class(\n *id=c;\n *name=customer;\n *superclass=person;\n *assign=[\n [title;name;email]\n ]\n);\n*class(\n *id=e;\n *name=employee;\n *superclass=person;\n *assign=[\n [title;name;job_title;email]\n ]\n);\n\n## An employee:\ne=Mr:John Smith:Sales Director:john.smith@example.com;\n## A customer:\nc=Mr:Joe Bloggs:joe.bloggs@example.com;\n## Another customer:\nc=Mrs:Jane Wilson:jane.wilson@example.com",
2374
+ "expected_output": "[\n {\n \"employee\": {\n \"title\": \"Mr\",\n \"name\": \"John Smith\",\n \"job_title\": \"Sales Director\",\n \"email\": \"john.smith@example.com\",\n \"actions\": [\n \"call\",\n \"email\"\n ]\n }\n },\n {\n \"customer\": {\n \"title\": \"Mr\",\n \"name\": \"Joe Bloggs\",\n \"email\": \"joe.bloggs@example.com\",\n \"actions\": [\n \"call\",\n \"email\"\n ]\n }\n },\n {\n \"customer\": {\n \"title\": \"Mrs\",\n \"name\": \"Jane Wilson\",\n \"email\": \"jane.wilson@example.com\",\n \"actions\": [\n \"call\",\n \"email\"\n ]\n }\n }\n]",
2375
+ "tested_features": [
2376
+ "class"
2377
+ ],
2378
+ "minimised_modl": "*class(*id=p;*name=person;*superclass=map;actions=[call;email]);*class(*id=c;*name=customer;*superclass=person;*assign=[[title;name;email]]);*class(*id=e;*name=employee;*superclass=person;*assign=[[title;name;job_title;email]]);## An employee:;e=Mr:John Smith:Sales Director:john.smith@example.com;## A customer:;c=Mr:Joe Bloggs:joe.bloggs@example.com;## Another customer:;c=Mrs:Jane Wilson:jane.wilson@example.com"
2379
+ },
2380
+ {
2381
+ "id": "250",
2382
+ "input": "DELETED",
2383
+ "expected_output": "DELETED",
2384
+ "tested_features": [
2385
+ "DELETED"
2386
+ ],
2387
+ "minimised_modl": "DELETED"
2388
+ },
2389
+ {
2390
+ "id": "251",
2391
+ "input": "*class(*id=a;*name=alpha);a=b",
1250
2392
  "expected_output": "{\n \"alpha\": \"b\"\n}",
1251
- "tested_features":["class", "superclass_inference"]
1252
- },
1253
- { "input": "*class(*id=a;*name=alpha);a=1",
1254
- "minimised_modl": "*class(*id=a;*name=alpha);a=1",
2393
+ "tested_features": [
2394
+ "class",
2395
+ "superclass_inference"
2396
+ ],
2397
+ "minimised_modl": "*class(*id=a;*name=alpha);a=b"
2398
+ },
2399
+ {
2400
+ "id": "252",
2401
+ "input": "*class(*id=a;*name=alpha);a=1",
1255
2402
  "expected_output": "{\n \"alpha\": 1\n}",
1256
- "tested_features":["class", "superclass_inference"]
1257
- },
1258
- { "input": "*class(*id=a;*name=alpha);a=true",
1259
- "minimised_modl": "*class(*id=a;*name=alpha);a=true",
2403
+ "tested_features": [
2404
+ "class",
2405
+ "superclass_inference"
2406
+ ],
2407
+ "minimised_modl": "*class(*id=a;*name=alpha);a=1"
2408
+ },
2409
+ {
2410
+ "id": "253",
2411
+ "input": "*class(*id=a;*name=alpha);a=true",
1260
2412
  "expected_output": "{\n \"alpha\": true\n}",
1261
- "tested_features":["class", "superclass_inference"]
1262
- },
1263
- { "input": "*class(*id=a;*name=alpha);a=null",
1264
- "minimised_modl": "*class(*id=a;*name=alpha);a=null",
2413
+ "tested_features": [
2414
+ "class",
2415
+ "superclass_inference"
2416
+ ],
2417
+ "minimised_modl": "*class(*id=a;*name=alpha);a=true"
2418
+ },
2419
+ {
2420
+ "id": "254",
2421
+ "input": "*class(*id=a;*name=alpha);a=null",
1265
2422
  "expected_output": "{\n \"alpha\": null\n}",
1266
- "tested_features":["class", "superclass_inference"]
1267
- },
1268
- { "input": "*class(*id=a;*name=alpha);a=[1;2;3];b=4:5:6",
1269
- "minimised_modl": "*class(*id=a;*name=alpha);a=[1;2;3];b=4:5:6",
2423
+ "tested_features": [
2424
+ "class",
2425
+ "superclass_inference"
2426
+ ],
2427
+ "minimised_modl": "*class(*id=a;*name=alpha);a=null"
2428
+ },
2429
+ {
2430
+ "id": "255",
2431
+ "input": "*class(*id=a;*name=alpha);a=[1;2;3];b=4:5:6",
1270
2432
  "expected_output": "[\n {\n \"alpha\": [\n 1,\n 2,\n 3\n ]\n },\n {\n \"b\": [\n 4,\n 5,\n 6\n ]\n }\n]",
1271
- "tested_features":["class", "superclass_inference"]
1272
- },
1273
- { "input": "*class(*id=a;*name=alpha);a=(b=c)",
1274
- "minimised_modl": "*class(*id=a;*name=alpha);a=(b=c)",
2433
+ "tested_features": [
2434
+ "class",
2435
+ "superclass_inference"
2436
+ ],
2437
+ "minimised_modl": "*class(*id=a;*name=alpha);a=[1;2;3];b=4:5:6"
2438
+ },
2439
+ {
2440
+ "id": "256",
2441
+ "input": "*class(*id=a;*name=alpha);a=(b=c)",
1275
2442
  "expected_output": "{\n \"alpha\": {\n \"b\": \"c\"\n }\n}",
1276
- "tested_features":["class", "superclass_inference"]
1277
- },
1278
- { "input": "*class(*id=a;*name=alpha;x=\"test\");a=1",
1279
- "minimised_modl": "*class(*id=a;*name=alpha;x=\"test\");a=1",
1280
- "expected_output": "{\n \"alpha\": {\n \"value\":1,\n \"x\":\"test\"\n }\n}",
1281
- "tested_features":["class", "superclass_inference"]
1282
- },
1283
- { "input": "*class(*id=a;*name=alpha;*assign[[x]]);a=1\n",
1284
- "minimised_modl": "*class(*id=a;*name=alpha;*assign[[x]]);a=1\n",
1285
- "expected_output": "{\n \"alpha\": {\n \"x\":1\n }\n}",
1286
- "tested_features":["class", "superclass_inference"]
1287
- },
1288
- { "input": "*class(*id=a;*name=alpha;*superclass=str);a=1",
1289
- "minimised_modl": "*class(*id=a;*name=alpha;*superclass=str);a=1",
2443
+ "tested_features": [
2444
+ "class",
2445
+ "superclass_inference"
2446
+ ],
2447
+ "minimised_modl": "*class(*id=a;*name=alpha);a=(b=c)"
2448
+ },
2449
+ {
2450
+ "id": "257",
2451
+ "input": "*class(*id=a;*name=alpha;x=\"test\");a=1",
2452
+ "expected_output": "{\n \"alpha\": {\n \"value\": 1,\n \"x\": \"test\"\n }\n}",
2453
+ "tested_features": [
2454
+ "class",
2455
+ "superclass_inference"
2456
+ ],
2457
+ "minimised_modl": "*class(*id=a;*name=alpha;x=\"test\");a=1"
2458
+ },
2459
+ {
2460
+ "id": "258",
2461
+ "input": "*class(*id=a;*name=alpha;*assign[[x]]);a=1\n",
2462
+ "expected_output": "{\n \"alpha\": {\n \"x\": 1\n }\n}",
2463
+ "tested_features": [
2464
+ "class",
2465
+ "superclass_inference"
2466
+ ],
2467
+ "minimised_modl": "*class(*id=a;*name=alpha;*assign[[x]]);a=1\n"
2468
+ },
2469
+ {
2470
+ "id": "259",
2471
+ "input": "*class(*id=a;*name=alpha;*superclass=str);a=1",
1290
2472
  "expected_output": "{\n \"alpha\": \"1\"\n}",
1291
- "tested_features":["class", "superclass"]
1292
- },
1293
- { "input": "*class(*id=a;*name=alpha;*superclass=str);a=true",
1294
- "minimised_modl": "*class(*id=a;*name=alpha;*superclass=str);a=true",
2473
+ "tested_features": [
2474
+ "class",
2475
+ "superclass"
2476
+ ],
2477
+ "minimised_modl": "*class(*id=a;*name=alpha;*superclass=str);a=1"
2478
+ },
2479
+ {
2480
+ "id": "260",
2481
+ "input": "*class(*id=a;*name=alpha;*superclass=str);a=true",
1295
2482
  "expected_output": "{\n \"alpha\": \"true\"\n}",
1296
- "tested_features":["class", "superclass"]
1297
- },
1298
- { "input": "*class(*id=a;*name=alpha;*superclass=num);a=1\n",
1299
- "minimised_modl": "*class(*id=a;*name=alpha;*superclass=num);a=1\n",
2483
+ "tested_features": [
2484
+ "class",
2485
+ "superclass"
2486
+ ],
2487
+ "minimised_modl": "*class(*id=a;*name=alpha;*superclass=str);a=true"
2488
+ },
2489
+ {
2490
+ "id": "261",
2491
+ "input": "*class(*id=a;*name=alpha;*superclass=num);a=1\n",
1300
2492
  "expected_output": "{\n \"alpha\": 1\n}",
1301
- "tested_features":["class", "superclass"]
1302
- },
1303
- { "input": "*class(*id=a;*name=alpha;*superclass=num);a=true",
1304
- "minimised_modl": "*class(*id=a;*name=alpha;*superclass=num);a=true",
2493
+ "tested_features": [
2494
+ "class",
2495
+ "superclass"
2496
+ ],
2497
+ "minimised_modl": "*class(*id=a;*name=alpha;*superclass=num);a=1\n"
2498
+ },
2499
+ {
2500
+ "id": "262",
2501
+ "input": "*class(*id=a;*name=alpha;*superclass=num);a=true",
1305
2502
  "expected_output": "{\n \"alpha\": 1\n}",
1306
- "tested_features":["class", "superclass"]
1307
- },
1308
- { "input": "*class(*id=a;*name=alpha;*superclass=num);a=false",
1309
- "minimised_modl": "*class(*id=a;*name=alpha;*superclass=num);a=false",
2503
+ "tested_features": [
2504
+ "class",
2505
+ "superclass"
2506
+ ],
2507
+ "minimised_modl": "*class(*id=a;*name=alpha;*superclass=num);a=true"
2508
+ },
2509
+ {
2510
+ "id": "263",
2511
+ "input": "*class(*id=a;*name=alpha;*superclass=num);a=false",
1310
2512
  "expected_output": "{\n \"alpha\": 0\n}",
1311
- "tested_features":["class", "superclass"]
1312
- },
1313
- { "input": "*class(*id=a;*name=alpha);a=false",
1314
- "minimised_modl": "*class(*id=a;*name=alpha);a=false",
2513
+ "tested_features": [
2514
+ "class",
2515
+ "superclass"
2516
+ ],
2517
+ "minimised_modl": "*class(*id=a;*name=alpha;*superclass=num);a=false"
2518
+ },
2519
+ {
2520
+ "id": "264",
2521
+ "input": "*class(*id=a;*name=alpha);a=false",
1315
2522
  "expected_output": "{\n \"alpha\": false\n}",
1316
- "tested_features":["class", "superclass"]
1317
- },
1318
- { "input": "*class(*id=a;*name=alpha);a=null",
1319
- "minimised_modl": "*class(*id=a;*name=alpha);a=null",
1320
- "expected_output": "{\n \"alpha\": null\n}",
1321
- "tested_features":["class", "superclass"]
1322
- },
1323
- { "input": "*class(*id=a;*name=alpha;*superclass=arr);a=b",
1324
- "minimised_modl": "*class(*id=a;*name=alpha;*superclass=arr);a=b",
2523
+ "tested_features": [
2524
+ "class",
2525
+ "superclass"
2526
+ ],
2527
+ "minimised_modl": "*class(*id=a;*name=alpha);a=false"
2528
+ },
2529
+ {
2530
+ "id": "265",
2531
+ "input": "DELETED",
2532
+ "expected_output": "DELETED",
2533
+ "tested_features": [
2534
+ "DELETED"
2535
+ ],
2536
+ "minimised_modl": "DELETED"
2537
+ },
2538
+ {
2539
+ "id": "266",
2540
+ "input": "*class(*id=a;*name=alpha;*superclass=arr);a=b",
1325
2541
  "expected_output": "{\n \"alpha\": [\n \"b\"\n ]\n}",
1326
- "tested_features":["class", "superclass"]
1327
- },
1328
- { "input": "*class(*id=a;*name=alpha;*superclass=map);a=b",
1329
- "minimised_modl": "*class(*id=a;*name=alpha;*superclass=map);a=b",
2542
+ "tested_features": [
2543
+ "class",
2544
+ "superclass"
2545
+ ],
2546
+ "minimised_modl": "*class(*id=a;*name=alpha;*superclass=arr);a=b"
2547
+ },
2548
+ {
2549
+ "id": "267",
2550
+ "input": "*class(*id=a;*name=alpha;*superclass=map);a=b",
1330
2551
  "expected_output": "{\n \"alpha\": {\n \"value\": \"b\"\n }\n}",
1331
- "tested_features":["class", "superclass"]
1332
- },
1333
- { "input": "*class(*id=a;*name=alpha;*superclass=map);a=(c=d)",
1334
- "minimised_modl": "*class(*id=a;*name=alpha;*superclass=map);a=(c=d)",
2552
+ "tested_features": [
2553
+ "class",
2554
+ "superclass"
2555
+ ],
2556
+ "minimised_modl": "*class(*id=a;*name=alpha;*superclass=map);a=b"
2557
+ },
2558
+ {
2559
+ "id": "268",
2560
+ "input": "*class(*id=a;*name=alpha;*superclass=map);a=(c=d)",
1335
2561
  "expected_output": "{\n \"alpha\": {\n \"c\": \"d\"\n }\n}",
1336
- "tested_features":["class", "superclass"]
1337
- },
1338
- { "input": "*class(*id=a;*name=alpha;*superclass=arr);a=[1;2;3]",
1339
- "minimised_modl": "*class(*id=a;*name=alpha;*superclass=arr);a=[1;2;3]",
2562
+ "tested_features": [
2563
+ "class",
2564
+ "superclass"
2565
+ ],
2566
+ "minimised_modl": "*class(*id=a;*name=alpha;*superclass=map);a=(c=d)"
2567
+ },
2568
+ {
2569
+ "id": "269",
2570
+ "input": "*class(*id=a;*name=alpha;*superclass=arr);a=[1;2;3]",
1340
2571
  "expected_output": "{\n \"alpha\": [\n 1,\n 2,\n 3\n ]\n}",
1341
- "tested_features":["class", "superclass"]
1342
- },
1343
- { "input": "*L=[grammar_tests/1;grammar_tests/1];a=1",
1344
- "minimised_modl": "*L=[grammar_tests/1;grammar_tests/1];a=1",
1345
- "expected_output": "{\"a\":1}",
1346
- "tested_features":["load"]
1347
- },
1348
- { "input": "*L=grammar_tests/1:grammar_tests/1;a=1",
1349
- "minimised_modl": "*L=grammar_tests/1:grammar_tests/1;a=1",
1350
- "expected_output": "{\"a\":1}",
1351
- "tested_features":["load"]
1352
- },
1353
- { "input": "ref=123;\nkey=%ref%",
1354
- "minimised_modl": "ref=123;key=%ref%",
1355
- "expected_output": "[ {\n \"ref\" : 123\n}, {\n \"key\" : \"123%\"\n} ]",
1356
- "tested_features":["object_ref"]
1357
- },
1358
- { "input": "a = `example`.u.nonsense.s",
1359
- "minimised_modl": "a = `example`.u.nonsense.s",
2572
+ "tested_features": [
2573
+ "class",
2574
+ "superclass"
2575
+ ],
2576
+ "minimised_modl": "*class(*id=a;*name=alpha;*superclass=arr);a=[1;2;3]"
2577
+ },
2578
+ {
2579
+ "id": "270",
2580
+ "input": "*L=[grammar_tests/1;grammar_tests/1];a=1",
2581
+ "expected_output": "{\n \"a\": 1\n}",
2582
+ "tested_features": [
2583
+ "load"
2584
+ ],
2585
+ "minimised_modl": "*L=[grammar_tests/1;grammar_tests/1];a=1"
2586
+ },
2587
+ {
2588
+ "id": "271",
2589
+ "input": "*L=grammar_tests/1:grammar_tests/1;a=1",
2590
+ "expected_output": "{\n \"a\": 1\n}",
2591
+ "tested_features": [
2592
+ "load"
2593
+ ],
2594
+ "minimised_modl": "*L=grammar_tests/1:grammar_tests/1;a=1"
2595
+ },
2596
+ {
2597
+ "id": "272",
2598
+ "input": "ref=123;\nkey=%ref%%",
2599
+ "expected_output": "[\n {\n \"ref\": 123\n },\n {\n \"key\": \"123%\"\n }\n]",
2600
+ "tested_features": [
2601
+ "object_ref"
2602
+ ],
2603
+ "minimised_modl": "ref=123;key=%ref%%"
2604
+ },
2605
+ {
2606
+ "id": "273",
2607
+ "input": "a = %`example`.u%.nonsense.s",
1360
2608
  "expected_output": "{\n \"a\": \"EXAMPLE.nonsense.s\"\n}",
1361
- "tested_features":["object_ref"]
2609
+ "tested_features": [
2610
+ "object_ref"
2611
+ ],
2612
+ "minimised_modl": "a = %`example`.u%.nonsense.s"
2613
+ },
2614
+ {
2615
+ "id": "274",
2616
+ "input": "{\n !one?\n _one=c\n};\n{\n !two?\n _two=d\n};\n\n_file = %one%-%two;\n{\n file=a-b/c-d/e-f?\n *LOAD=\"grammar_tests/files/%file%.txt!\"\n /?\n *LOAD=\"grammar_tests/files/a-b.txt!\"\n};\n\no=%ref.o.name",
2617
+ "expected_output": "{\n \"o\": \"otter\"\n}",
2618
+ "tested_features": [
2619
+ "object_ref",
2620
+ "conditional"
2621
+ ],
2622
+ "minimised_modl": "{!one?_one=c};{!two?_two=d};_file = %one%-%two;{file=a-b/c-d/e-f?*LOAD=\"grammar_tests/files/%file%.txt!\"/?*LOAD=\"grammar_tests/files/a-b.txt!\"};o=%ref.o.name"
2623
+ },
2624
+ {
2625
+ "id": "275",
2626
+ "input": "vat=20;\ns=VAT at %vat% added",
2627
+ "expected_output": "[\n {\n \"vat\": 20\n },\n {\n \"s\": \"VAT at 20 added\"\n }\n]",
2628
+ "tested_features": [
2629
+ "object_ref"
2630
+ ],
2631
+ "minimised_modl": "vat=20;s=VAT at %vat% added"
2632
+ },
2633
+ {
2634
+ "id": "276",
2635
+ "input": "vat=20;\ns=VAT at %vat%% added",
2636
+ "expected_output": "[\n {\n \"vat\": 20\n },\n {\n \"s\": \"VAT at 20% added\"\n }\n]",
2637
+ "tested_features": [
2638
+ "object_ref"
2639
+ ],
2640
+ "minimised_modl": "vat=20;s=VAT at %vat%% added"
2641
+ },
2642
+ {
2643
+ "id": "277",
2644
+ "input": "DELETED",
2645
+ "expected_output": "DELETED",
2646
+ "tested_features": [
2647
+ "DELETED"
2648
+ ],
2649
+ "minimised_modl": "DELETED"
2650
+ },
2651
+ {
2652
+ "id": "278",
2653
+ "input": "x=`ignored method`.p",
2654
+ "expected_output": "{\n \"x\": \"`ignored method`.p\"\n}",
2655
+ "tested_features": [
2656
+ "methods"
2657
+ ],
2658
+ "minimised_modl": "x=`ignored method`.p"
2659
+ },
2660
+ {
2661
+ "id": "279",
2662
+ "input": "DELETED",
2663
+ "expected_output": "DELETED",
2664
+ "tested_features": [
2665
+ "DELETED"
2666
+ ],
2667
+ "minimised_modl": "DELETED"
2668
+ },
2669
+ {
2670
+ "id": "280",
2671
+ "input": "_a=one;\n_b=two;\n_c=three;\n\nd=%a:%b:%c;\ne=[%a;%b;%c]",
2672
+ "expected_output": "[\n {\n \"d\": [\n \"one\",\n \"two\",\n \"three\"\n ]\n },\n {\n \"e\": [\n \"one\",\n \"two\",\n \"three\"\n ]\n }\n]",
2673
+ "tested_features": [
2674
+ "object_ref"
2675
+ ],
2676
+ "minimised_modl": "_a=one;_b=two;_c=three;d=%a:%b:%c;e=[%a;%b;%c]"
2677
+ },
2678
+ {
2679
+ "id": "281",
2680
+ "input": "%`fsq`.p%=A Chinese example",
2681
+ "expected_output": "{\n \"例\": \"A Chinese example\"\n}",
2682
+ "tested_features": [
2683
+ "object_ref"
2684
+ ],
2685
+ "minimised_modl": "%`fsq`.p%=A Chinese example"
2686
+ },
2687
+ {
2688
+ "id": "282",
2689
+ "input": "DELETED",
2690
+ "expected_output": "DELETED",
2691
+ "tested_features": [
2692
+ "DELETED"
2693
+ ],
2694
+ "minimised_modl": "DELETED"
2695
+ },
2696
+ {
2697
+ "id": "283",
2698
+ "input": "_x=abc;\ny=`%x`",
2699
+ "expected_output": "{\n \"y\": \"abc\"\n}",
2700
+ "tested_features": [
2701
+ "graves"
2702
+ ],
2703
+ "minimised_modl": "_x=abc;y=`%x`"
2704
+ },
2705
+ {
2706
+ "id": "284",
2707
+ "input": "_x=abc;\ny=\"%x\"",
2708
+ "expected_output": "{\n \"y\": \"abc\"\n}",
2709
+ "tested_features": [
2710
+ "quotes"
2711
+ ],
2712
+ "minimised_modl": "_x=abc;y=\"abc\""
2713
+ },
2714
+ {
2715
+ "id": "285",
2716
+ "input": "_replace_me=new value;\n\none=%replace_me.u;\n\ntwo=`replace_me`.u;\n\nthree=`replace_me.u`;\n\nfour=`%replace_me.u`;\n\nfive=`%replace_me`.u;\n\nsix=%replace_me.u%_added;\n\nseven=replace_me.u;\n\neight=%`replace_me`.u;\n\nnine=%`replace_me`.u%;",
2717
+ "expected_output": "[\n {\n \"one\": \"NEW VALUE\"\n },\n {\n \"two\": \"`replace_me`.u\"\n },\n {\n \"three\": \"replace_me.u\"\n },\n {\n \"four\": \"NEW VALUE\"\n },\n {\n \"five\": \"`new value`.u\"\n },\n {\n \"six\": \"NEW VALUE_added\"\n },\n {\n \"seven\": \"replace_me.u\"\n },\n {\n \"eight\": \"REPLACE_ME\"\n },\n {\n \"nine\": \"REPLACE_ME\"\n }\n]",
2718
+ "tested_features": [
2719
+ "object_ref"
2720
+ ],
2721
+ "minimised_modl": "_replace_me=new value;one=%replace_me.u;two=`replace_me`.u;three=`replace_me.u`;four=`%replace_me.u`;five=`%replace_me`.u;six=%replace_me.u%_added;seven=replace_me.u;eight=%`replace_me`.u;nine=%`replace_me`.u%;"
2722
+ },
2723
+ {
2724
+ "id": "286",
2725
+ "input": "key=value",
2726
+ "expected_output": "{\n \"key\": \"value\"\n}",
2727
+ "tested_features": [
2728
+ "pair"
2729
+ ],
2730
+ "minimised_modl": "key=value"
2731
+ },
2732
+ {
2733
+ "id": "287",
2734
+ "input": "key=\"value\"",
2735
+ "expected_output": "{\n \"key\": \"value\"\n}",
2736
+ "tested_features": [
2737
+ "quotes"
2738
+ ],
2739
+ "minimised_modl": "key=\"value\""
2740
+ },
2741
+ {
2742
+ "id": "288",
2743
+ "input": "key=`value`",
2744
+ "expected_output": "{\n \"key\": \"value\"\n}",
2745
+ "tested_features": [
2746
+ "graves"
2747
+ ],
2748
+ "minimised_modl": "key=`value`"
2749
+ },
2750
+ {
2751
+ "id": "289",
2752
+ "input": "_test=abc;\nkey=%test",
2753
+ "expected_output": "{\n \"key\": \"abc\"\n}",
2754
+ "tested_features": [
2755
+ "object_ref"
2756
+ ],
2757
+ "minimised_modl": "_test=abc;key=%test"
2758
+ },
2759
+ {
2760
+ "id": "290",
2761
+ "input": "_test=abc;\nkey=\"%test\"",
2762
+ "expected_output": "{\n \"key\": \"abc\"\n}",
2763
+ "tested_features": [
2764
+ "object_ref",
2765
+ "quotes"
2766
+ ],
2767
+ "minimised_modl": "_test=abc;key=\"%test\""
2768
+ },
2769
+ {
2770
+ "id": "291",
2771
+ "input": "_test=abc;\nkey=`%test`",
2772
+ "expected_output": "{\n \"key\": \"abc\"\n}",
2773
+ "tested_features": [
2774
+ "object_ref",
2775
+ "graves"
2776
+ ],
2777
+ "minimised_modl": "_test=abc;key=`%test`"
2778
+ },
2779
+ {
2780
+ "id": "292",
2781
+ "input": "key=\"this is a `%test`\"",
2782
+ "expected_output": "{\n \"key\": \"this is a `%test`\"\n}",
2783
+ "tested_features": [
2784
+ "quotes",
2785
+ "graves"
2786
+ ],
2787
+ "minimised_modl": "key=\"this is a `%test`\""
2788
+ },
2789
+ {
2790
+ "id": "293",
2791
+ "input": "key=\"string including ` a single grave\"",
2792
+ "expected_output": "{\n \"key\": \"string including ` a single grave\"\n}",
2793
+ "tested_features": [
2794
+ "quotes",
2795
+ "graves"
2796
+ ],
2797
+ "minimised_modl": "key=\"string including ` a single grave\""
2798
+ },
2799
+ {
2800
+ "id": "294",
2801
+ "input": "key=\"string including some `graved text` here\"",
2802
+ "expected_output": "{\n \"key\": \"string including some `graved text` here\"\n}",
2803
+ "tested_features": [
2804
+ "quotes",
2805
+ "graves"
2806
+ ],
2807
+ "minimised_modl": "key=\"string including some `graved text` here\""
2808
+ },
2809
+ {
2810
+ "id": "295",
2811
+ "input": "key=`string including \" a quote`",
2812
+ "expected_output": "{\n \"key\": \"string including \\\" a quote\"\n}",
2813
+ "tested_features": [
2814
+ "quotes",
2815
+ "graves"
2816
+ ],
2817
+ "minimised_modl": "key=`string including \" a quote`"
2818
+ },
2819
+ {
2820
+ "id": "296",
2821
+ "input": "key=`a string including a quote from Winston: \"We'll fight them on the beaches\"`",
2822
+ "expected_output": "{\n \"key\": \"a string including a quote from Winston: \\\"We'll fight them on the beaches\\\"\"\n}",
2823
+ "tested_features": [
2824
+ "quotes",
2825
+ "graves"
2826
+ ],
2827
+ "minimised_modl": "key=`a string including a quote from Winston: \"We'll fight them on the beaches\"`"
2828
+ },
2829
+ {
2830
+ "id": "297",
2831
+ "input": "key=lots of `graved` text is in `this` value",
2832
+ "expected_output": "{\n \"key\": \"lots of `graved` text is in `this` value\"\n}",
2833
+ "tested_features": [
2834
+ "quotes",
2835
+ "graves"
2836
+ ],
2837
+ "minimised_modl": "key=lots of `graved` text is in `this` value"
2838
+ },
2839
+ {
2840
+ "id": "298",
2841
+ "input": "key=`this `could` be `a` controversial `test` because `the` grammar `splits` this `string` in `a` different `way``",
2842
+ "expected_output": "{\n \"key\": \"this `could` be `a` controversial `test` because `the` grammar `splits` this `string` in `a` different `way`\"\n}",
2843
+ "tested_features": [
2844
+ "quotes",
2845
+ "graves"
2846
+ ],
2847
+ "minimised_modl": "key=`this `could` be `a` controversial `test` because `the` grammar `splits` this `string` in `a` different `way``"
2848
+ },
2849
+ {
2850
+ "id": "299",
2851
+ "input": "_test=abc;\nkey=%test.u",
2852
+ "expected_output": "{\n \"key\": \"ABC\"\n}",
2853
+ "tested_features": [
2854
+ "object_ref"
2855
+ ],
2856
+ "minimised_modl": "_test=abc;key=%test.u"
2857
+ },
2858
+ {
2859
+ "id": "300",
2860
+ "input": "_test=replace the word this in this string;\ntesting=%test.replace<`this`,`that`>",
2861
+ "expected_output": "{\n \"testing\": \"replace the word that in that string\"\n}",
2862
+ "tested_features": [
2863
+ "methods",
2864
+ "object_ref",
2865
+ "graves"
2866
+ ],
2867
+ "minimised_modl": "_test=replace the word this in this string;testing=%test.replace<`this`,`that`>"
2868
+ },
2869
+ {
2870
+ "id": "301",
2871
+ "input": "_test=replace the word this in this string;\ntesting=%test.replace<this,``>",
2872
+ "expected_output": "{\n \"testing\": \"replace the word in string\"\n}",
2873
+ "tested_features": [
2874
+ "methods",
2875
+ "object_ref",
2876
+ "graves"
2877
+ ],
2878
+ "minimised_modl": "_test=replace the word this in this string;testing=%test.replace<this,``>"
2879
+ },
2880
+ {
2881
+ "id": "302",
2882
+ "input": "key=%`this`.replace<is,at>",
2883
+ "expected_output": "{\n \"key\" : \"that\"\n}",
2884
+ "tested_features": [
2885
+ "methods",
2886
+ "object_ref",
2887
+ "graves"
2888
+ ],
2889
+ "minimised_modl": "key=%`this`.replace<is,at>"
2890
+ },
2891
+ {
2892
+ "id": "303",
2893
+ "input": "key=`this \"is\" a \"string\" with \"lots\" of \"quoted\" strings`",
2894
+ "expected_output": "{\n \"key\": \"this \\\"is\\\" a \\\"string\\\" with \\\"lots\\\" of \\\"quoted\\\" strings\"\n}",
2895
+ "tested_features": [
2896
+ "graves",
2897
+ "quotes"
2898
+ ],
2899
+ "minimised_modl": "key=`this \"is\" a \"string\" with \"lots\" of \"quoted\" strings`"
2900
+ },
2901
+ {
2902
+ "id": "304",
2903
+ "input": "_vat=20;\nkey=vat rate is %vat%%",
2904
+ "expected_output": "{\n \"key\": \"vat rate is 20%\"\n}",
2905
+ "tested_features": [
2906
+ "object_ref"
2907
+ ],
2908
+ "minimised_modl": "_vat=20;key=vat rate is %vat%%"
2909
+ },
2910
+ {
2911
+ "id": "305",
2912
+ "input": "_vat=20;\nkey=vat rate is %vat%",
2913
+ "expected_output": "{\n \"key\": \"vat rate is 20\"\n}",
2914
+ "tested_features": [
2915
+ "object_ref"
2916
+ ],
2917
+ "minimised_modl": "_vat=20;key=vat rate is %vat%"
2918
+ },
2919
+ {
2920
+ "id": "306",
2921
+ "input": "_vat=20;\nkey=vat rate is %vat%%",
2922
+ "expected_output": "{\n \"key\": \"vat rate is 20%\"\n}",
2923
+ "tested_features": [
2924
+ "object_ref",
2925
+ "escapes"
2926
+ ],
2927
+ "minimised_modl": "_vat=20;key=vat rate is %vat%%"
2928
+ },
2929
+ {
2930
+ "id": "307",
2931
+ "input": "DELETED",
2932
+ "expected_output": "DELETED",
2933
+ "tested_features": [
2934
+ "DELETED"
2935
+ ],
2936
+ "minimised_modl": "DELETED"
2937
+ },
2938
+ {
2939
+ "id": "308",
2940
+ "input": "_vat=20;\nkey=vat rate is %vat %",
2941
+ "expected_output": "{\n \"key\": \"vat rate is 20 %\"\n}",
2942
+ "tested_features": [
2943
+ "object_ref"
2944
+ ],
2945
+ "minimised_modl": "_vat=20;key=vat rate is %vat %"
2946
+ },
2947
+ {
2948
+ "id": "309",
2949
+ "input": "_vat=20;\nkey=`vat rate is %vat%%`",
2950
+ "expected_output": "{\n \"key\": \"vat rate is 20%\"\n}",
2951
+ "tested_features": [
2952
+ "object_ref",
2953
+ "graves"
2954
+ ],
2955
+ "minimised_modl": "_vat=20;key=`vat rate is %vat%%`"
2956
+ },
2957
+ {
2958
+ "id": "310",
2959
+ "input": "_vat=20;\nkey=\"vat rate is %vat%%\"",
2960
+ "expected_output": "{\n \"key\": \"vat rate is 20%\"\n}",
2961
+ "tested_features": [
2962
+ "object_ref",
2963
+ "quotes"
2964
+ ],
2965
+ "minimised_modl": "_vat=20;key=\"vat rate is %vat%%\""
2966
+ },
2967
+ {
2968
+ "id": "311",
2969
+ "input": "_vat=20;\nkey=\"vat rate is %vat%`%`\"",
2970
+ "expected_output": "{\n \"key\": \"vat rate is 20`%`\"\n}",
2971
+ "tested_features": [
2972
+ "objetct_ref",
2973
+ "graves"
2974
+ ],
2975
+ "minimised_modl": "_vat=20;key=\"vat rate is %vat%`%`\""
2976
+ },
2977
+ {
2978
+ "id": "312",
2979
+ "input": "_vat=20;\nkey=\"vat rate is %vat`%`\"",
2980
+ "expected_output": "{\n \"key\": \"vat rate is 20`%`\"\n}",
2981
+ "tested_features": [
2982
+ "object_ref",
2983
+ "graves"
2984
+ ],
2985
+ "minimised_modl": "_vat=20;key=\"vat rate is %vat`%`\""
1362
2986
  }
1363
2987
  ]