modl 0.3.6 → 0.3.7

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,999 +1,1363 @@
1
1
  [
2
- {
3
- "input": "*L=grammar_tests/test_import_dir/nested_import1.txt;\nfiles=%*load",
4
- "minimised_modl": "*L=grammar_tests/test_import_dir/nested_import1.txt;files=%*load",
5
- "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\"]}"
6
- },
7
- {
8
- "input": "*L=grammar_tests/1:grammar_tests/2:grammar_tests/3:grammar_tests/1;\nfiles=%*load",
9
- "minimised_modl": "*L=grammar_tests/1:grammar_tests/2:grammar_tests/3:grammar_tests/1;files=%*load",
10
- "expected_output": "{\"files\":[\"grammar_tests/1.modl\",\"grammar_tests/2.modl\",\"grammar_tests/3.modl\",\"grammar_tests/1.modl\"]}"
11
- },
12
- {
13
- "input": "*L=\"https://www.modl.uk/tests/message-thread.txt\";\n\nclasses=*class",
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",
14
13
  "minimised_modl": "*L=\"https://www.modl.uk/demo/message-thread.txt\";classes=*class",
15
- "expected_output": "{\"classes\":\"*class\"}"},
16
- {
17
- "input": "*L=\"http://modules.num.uk/1.txt\";\n\nclasses=%*class",
18
- "minimised_modl": "*L=\"http://modules.num.uk/1.txt\";classes=%*class",
19
- "expected_output": "{\"classes\":[{\"root\":{\"name\":\"root\",\"superclass\":\"arr\",\"expect\":[\"entity\"]}},{\"object\":{\"name\":\"object\",\"superclass\":\"map\",\"expect\":[\"i\",\"h\",\"q\",\"c_\",\"r_\",\"tz\"]}},{\"entity\":{\"name\":\"entity\",\"superclass\":\"object\",\"assign\":[[\"n\"],[\"n\",\"q\"]],\"expect\":[\"n\",\"+\"]}},{\"media\":{\"name\":\"media\",\"superclass\":\"object\",\"assign\":[[\"v\"],[\"d\",\"v\"],[\"d\",\"v\",\"h\"]],\"expect\":[\"v\",\"ac\"]}},{\"x\":{\"name\":\"extension\",\"superclass\":\"map\",\"expect\":[\"url\",\"pa\"]}},{\"i\":{\"name\":\"introduction\",\"superclass\":\"str\"}},{\"h\":{\"name\":\"hours\",\"superclass\":\"arr\",\"expect\":[\"str\"]}},{\"tz\":{\"name\":\"time_zone_city\",\"superclass\":\"str\"}},{\"q\":{\"name\":\"query\",\"superclass\":\"str\"}},{\"c_\":{\"name\":\"continuation_\",\"superclass\":\"str\"}},{\"r_\":{\"name\":\"redirect_\",\"superclass\":\"str\"}},{\"p\":{\"name\":\"person\",\"superclass\":\"entity\",\"expect\":[\"b\"],\"object_type\":\"entity\",\"object_display_name\":\"Person\"}},{\"o\":{\"name\":\"organisation\",\"superclass\":\"entity\",\"assign\":[[\"n\"],[\"n\",\"+\"],[\"n\",\"s\",\"+\"],[\"?\",\"n\",\"s\",\"+\"],[\"?\",\"n\",\"s\",\"h\",\"+\"]],\"expect\":[\"s\"],\"object_type\":\"entity\",\"object_display_name\":\"Organisation\",\"description_default\":\"View Organisation\"}},{\"dp\":{\"name\":\"department\",\"superclass\":\"entity\",\"expect\":[\"d\"],\"object_type\":\"entity\",\"object_display_name\":\"Department\",\"description_default\":\"View Department\"}},{\"e\":{\"name\":\"employee\",\"superclass\":\"entity\",\"assign\":[[\"n\"],[\"n\",\"r\"]],\"expect\":[\"r\"],\"object_type\":\"entity\",\"object_display_name\":\"Employee\",\"description_default\":\"View Employee\"}},{\"l\":{\"name\":\"location\",\"superclass\":\"entity\",\"expect\":[\"d\"],\"object_type\":\"entity\",\"object_display_name\":\"Location\"}},{\"f\":{\"name\":\"folder\",\"superclass\":\"entity\",\"expect\":[\"d\"],\"object_type\":\"entity\",\"object_display_name\":\"Folder\"}},{\"n\":{\"name\":\"name\",\"superclass\":\"str\"}},{\"+\":{\"name\":\"objects\",\"superclass\":\"arr\",\"expect\":[\"object\"]}},{\"b\":{\"name\":\"bio\",\"superclass\":\"str\"}},{\"s\":{\"name\":\"slogan\",\"superclass\":\"str\"}},{\"d\":{\"name\":\"description\",\"superclass\":\"str\"}},{\"r\":{\"name\":\"role\",\"superclass\":\"str\"}},{\"v\":{\"name\":\"value\",\"superclass\":\"str\"}},{\"ac\":{\"name\":\"access\",\"superclass\":\"arr\",\"expect\":[\"str\"]}},{\"t\":{\"name\":\"telephone\",\"superclass\":\"media\",\"object_type\":\"media\",\"object_display_name\":\"Telephone\",\"description_default\":\"Call\",\"prefix\":\"tel://\",\"media_type\":\"core\"}},{\"sm\":{\"name\":\"sms\",\"superclass\":\"media\",\"object_type\":\"media\",\"object_display_name\":\"SMS\",\"description_default\":\"Text\",\"prefix\":\"sms://\",\"media_type\":\"core\"}},{\"u\":{\"name\":\"url\",\"superclass\":\"media\",\"object_type\":\"media\",\"object_display_name\":\"URL\",\"de\nscription_default\":\"Click\",\"prefix\":\"https://\",\"media_type\":\"core\"}},{\"uu\":{\"name\":\"unsecure_url\",\"superclass\":\"media\",\"object_type\":\"media\",\"object_display_name\":\"URL\",\"description_default\":\"Click\",\"prefix\":\"http://\",\"media_type\":\"core\"}},{\"g\":{\"name\":\"gps\",\"superclass\":\"media\",\"object_type\":\"media\",\"object_display_name\":\"GPS\",\"description_default\":\"View Address\",\"prefix\":\"Based on user preferences set in client.\",\"media_type\":\"core\"}},{\"a\":{\"name\":\"address\",\"superclass\":\"media\",\"object_type\":\"media\",\"object_display_name\":\"Address\",\"description_default\":\"View Address\",\"prefix\":\"Based on user preferences set in client.\",\"media_type\":\"core\"}},{\"fx\":{\"name\":\"fax\",\"superclass\":\"media\",\"object_type\":\"media\",\"object_display_name\":\"Fax\",\"description_default\":\"Send a fax\",\"prefix\":\"Based on user preferences set in client.\",\"media_type\":\"core\"}},{\"em\":{\"name\":\"email\",\"superclass\":\"media\",\"object_type\":\"media\",\"object_display_name\":\"Email\",\"description_default\":\"Send an email\",\"prefix\":\"mailto://\",\"media_type\":\"core\"}},{\"aa\":{\"name\":\"android-app\",\"superclass\":\"media\",\"object_type\":\"media\",\"object_display_name\":\"Android App\",\"description_default\":\"Download the app\",\"prefix\":\"https://play.google.com/store/apps/details?id=\",\"media_type\":\"3p\"}},{\"as\":{\"name\":\"ios-app\",\"superclass\":\"media\",\"object_type\":\"media\",\"object_display_name\":\"iOS App\",\"description_default\":\"Download the app\",\"prefix\":\"https://itunes.apple.com/app/\",\"media_type\":\"3p\"}},{\"bt\":{\"name\":\"baidu_tieba\",\"superclass\":\"media\",\"object_type\":\"media\",\"object_display_name\":\"Baidu Tieba\",\"description_default\":\"View Baidu profile\",\"prefix\":\"https://tieba.baidu.com/\",\"media_type\":\"3p\"}},{\"fb\":{\"name\":\"facebook\",\"superclass\":\"media\",\"object_type\":\"media\",\"object_display_name\":\"Facebook\",\"description_default\":\"View Facebook profile\",\"prefix\":\"https://www.facebook.com/\",\"media_type\":\"3p\"}},{\"fk\":{\"name\":\"flikr\",\"superclass\":\"media\",\"object_type\":\"media\",\"object_display_name\":\"Flikr\",\"description_default\":\"View Flikr profile\",\"prefix\":\"https://www.flikr.com/\",\"media_type\":\"3p\"}},{\"fs\":{\"name\":\"foursquare\",\"superclass\":\"media\",\"object_type\":\"media\",\"object_display_name\":\"FourSquare\",\"description_default\":\"View FourSquare page\",\"prefix\":\"https://www.foursquare.com/\",\"media_type\":\"3p\"}},{\"ft\":{\"name\":\"facetime\",\"superclass\":\"media\",\"object_type\":\"media\",\"object_display_name\":\"FaceTime\",\"description_default\":\"Call with FaceTime\",\"prefix\":\"facetime://\",\"media_type\":\"3p\"}},{\"gp\":{\"name\":\"google-plus\",\"superclass\":\"media\",\n\"object_type\":\"media\",\"object_display_name\":\"Google Plus\",\"description_default\":\"View Google Plus profile\",\"prefix\":\"https://plus.google.com/\",\"media_type\":\"3p\",\"value_prefix\":\"+\"}},{\"im\":{\"name\":\"imessage\",\"superclass\":\"media\",\"object_type\":\"media\",\"object_display_name\":\"iMessage\",\"description_default\":\"Send iMessage\",\"prefix\":\"imessage://\",\"media_type\":\"3p\"}},{\"in\":{\"name\":\"instagram\",\"superclass\":\"media\",\"object_type\":\"media\",\"object_display_name\":\"Instagram\",\"description_default\":\"View Instagram profile\",\"prefix\":\"https://www.instagram.com/\",\"media_type\":\"3p\"}},{\"kk\":{\"name\":\"kik\",\"superclass\":\"media\",\"object_type\":\"media\",\"object_display_name\":\"Kik\",\"description_default\":\"Connect with Kik\",\"prefix\":\"https://www.kik.com/u/\",\"media_type\":\"3p\"}},{\"li\":{\"name\":\"linkedin\",\"superclass\":\"media\",\"object_type\":\"media\",\"object_display_name\":\"LinkedIn\",\"description_default\":\"View LinkedIn page\",\"prefix\":\"https://www.linkedin.com/\",\"media_type\":\"3p\"}},{\"ln\":{\"name\":\"line\",\"superclass\":\"media\",\"object_type\":\"media\",\"object_display_name\":\"LINE\",\"description_default\":\"Connect with Line\",\"prefix\":\"line://\",\"media_type\":\"3p\"}},{\"md\":{\"name\":\"medium\",\"superclass\":\"media\",\"object_type\":\"media\",\"object_display_name\":\"Medium\",\"description_default\":\"View Medium blog\",\"prefix\":\"https://www.medium.com/\",\"media_type\":\"3p\"}},{\"pr\":{\"name\":\"periscope\",\"superclass\":\"media\",\"object_type\":\"media\",\"object_display_name\":\"Periscope\",\"description_default\":\"View Periscope profile\",\"prefix\":\"https://www.periscope.tv/\",\"media_type\":\"3p/\"}},{\"pi\":{\"name\":\"pinterest\",\"superclass\":\"media\",\"object_type\":\"media\",\"object_display_name\":\"Pinterest\",\"description_default\":\"View Pinterest board\",\"prefix\":\"https://www.pinterest.com/\",\"media_type\":\"3p\"}},{\"qq\":{\"name\":\"qq\",\"superclass\":\"media\",\"object_type\":\"media\",\"object_display_name\":\"QQ\",\"description_default\":\"View QQ Page\",\"prefix\":\"https://www.qq.com/\",\"media_type\":\"3p\"}},{\"qz\":{\"name\":\"qzone\",\"superclass\":\"media\",\"object_type\":\"media\",\"object_display_name\":\"Qzone\",\"description_default\":\"View Qzone page\",\"prefix\":\"https://www.qzone.com/\",\"media_type\":\"3p\"}},{\"rd\":{\"name\":\"reddit\",\"superclass\":\"media\",\"object_type\":\"media\",\"object_display_name\":\"Reddit\",\"description_default\":\"View subreddit\",\"prefix\":\"https://www.reddit.com/r/\",\"media_type\":\"3p\"}},{\"rn\":{\"name\":\"renren\",\"superclass\":\"media\",\"object_type\":\"media\",\"object_display_name\":\"Renren\",\"description_default\":\"View Renren profile\",\"prefix\":\"https://www.renren.com/\",\"media_type\":\"3p\"}},{\"sc\"\n:{\"name\":\"soundcloud\",\"superclass\":\"media\",\"object_type\":\"media\",\"object_display_name\":\"SoundCloud\",\"description_default\":\"View SoundCloud page\",\"prefix\":\"https://www.soundcloud.com/\",\"media_type\":\"3p\"}},{\"sk\":{\"name\":\"skype\",\"superclass\":\"media\",\"object_type\":\"media\",\"object_display_name\":\"Skype\",\"description_default\":\"Call with Skype\",\"prefix\":\"skype://\",\"media_type\":\"3p\"}},{\"sr\":{\"name\":\"swarm\",\"superclass\":\"media\",\"object_type\":\"media\",\"object_display_name\":\"Swarm\",\"description_default\":\"Connect with Swarm\",\"prefix\":\"https://www.swarmapp.com/\",\"media_type\":\"3p\"}},{\"sn\":{\"name\":\"snapchat\",\"superclass\":\"media\",\"object_type\":\"media\",\"object_display_name\":\"Snapchat\",\"description_default\":\"Connect with Snapchat\",\"prefix\":\"snapchat://add/\",\"media_type\":\"3p\"}},{\"sw\":{\"name\":\"sina-weibo\",\"superclass\":\"media\",\"object_type\":\"media\",\"object_display_name\":\"Sina Weibo\",\"description_default\":\"View Weibo page\",\"prefix\":\"https://www.weibo.com/\",\"media_type\":\"3p\"}},{\"tb\":{\"name\":\"tumblr\",\"superclass\":\"media\",\"object_type\":\"media\",\"object_display_name\":\"Tumblr\",\"description_default\":\"View Tumblr blog\",\"prefix\":\"https://<val>.tumblr.com/\",\"media_type\":\"3p\"}},{\"tl\":{\"name\":\"telegram\",\"superclass\":\"media\",\"object_type\":\"media\",\"object_display_name\":\"Telegram\",\"description_default\":\"Connect with Telegram\",\"prefix\":\"https://www.telegram.me/\",\"media_type\":\"3p\"}},{\"tw\":{\"name\":\"twitter\",\"superclass\":\"media\",\"object_type\":\"media\",\"object_display_name\":\"Twitter\",\"description_default\":\"View Twitter profile\",\"prefix\":\"https://www.twitter.com/\",\"media_type\":\"3p\",\"value_prefix\":\"@\"}},{\"to\":{\"name\":\"twoo\",\"superclass\":\"media\",\"object_type\":\"media\",\"object_display_name\":\"Twoo\",\"description_default\":\"View Twoo page\",\"prefix\":\"https://www.twoo.com/\",\"media_type\":\"3p\"}},{\"vb\":{\"name\":\"viber\",\"superclass\":\"media\",\"object_type\":\"media\",\"object_display_name\":\"Viber\",\"description_default\":\"Call with Viber\",\"prefix\":\"https://www.viber.com/\",\"media_type\":\"3p\"}},{\"vk\":{\"name\":\"vkontakte\",\"superclass\":\"media\",\"object_type\":\"media\",\"object_display_name\":\"Vkontakte\",\"description_default\":\"View VK page\",\"prefix\":\"https://www.vk.com/\",\"media_type\":\"3p\"}},{\"vm\":{\"name\":\"vimeo\",\"superclass\":\"media\",\"object_type\":\"media\",\"object_display_name\":\"Vimeo\",\"description_default\":\"View Vimeo profile\",\"prefix\":\"https://www.vimeo.com/\",\"media_type\":\"3p\"}},{\"wa\":{\"name\":\"whatsapp\",\"superclass\":\"media\",\"object_type\":\"media\",\"object_display_name\":\"Whatsapp\",\"description_default\":\"Message on Whatsapp\",\"prefix\":\"what\nsapp://\",\"media_type\":\"3p\"}},{\"wc\":{\"name\":\"wechat\",\"superclass\":\"media\",\"object_type\":\"media\",\"object_display_name\":\"WeChat\",\"description_default\":\"Connect with WeChat\",\"prefix\":\"https://www.wechat.com/\",\"media_type\":\"3p\"}},{\"xi\":{\"name\":\"xing\",\"superclass\":\"media\",\"object_type\":\"media\",\"object_display_name\":\"Xing\",\"description_default\":\"View Xing page\",\"prefix\":\"https://www.xing.com/\",\"media_type\":\"3p\"}},{\"yt\":{\"name\":\"youtube\",\"superclass\":\"media\",\"object_type\":\"media\",\"object_display_name\":\"YouTube\",\"description_default\":\"View YouTube channel\",\"prefix\":\"https://www.youtube.com/\",\"media_type\":\"3p\"}},{\"yy\":{\"name\":\"yy\",\"superclass\":\"media\",\"object_type\":\"media\",\"object_display_name\":\"YY\",\"description_default\":\"View YY page\",\"prefix\":\"https://www.yy.com/\",\"media_type\":\"3p\"}}]}"
20
- },
21
- {
22
- "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",
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",
23
18
  "minimised_modl": "*m(*i=cn;*n=company_name;*transform=`replace(-, ).trim(.).initcap`);m=%*method",
24
- "expected_output": "{\"m\":[{\"cn\":{\"name\":\"company_name\",\"transform\":\"replace(-,).trim(.).initcap\"}}]}"
19
+ "expected_output": "{\"m\":[{\"cn\":{\"name\":\"company_name\",\"transform\":\"replace(-,).trim(.).initcap\"}}]}",
20
+ "tested_features":["method"]
25
21
  },
26
- {
27
- "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",
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",
28
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",
29
- "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}"
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"]
30
26
  },
31
- {
32
- "input": "_test1=one;\n_one=two;\n{\ntest1=`one`?\n result=match\n/?\n result=nomatch\n}",
27
+ { "input": "_test1=one;\n_one=two;\n{\ntest1=`one`?\n result=match\n/?\n result=nomatch\n}",
33
28
  "minimised_modl": "_test1=one;_one=two{test1=`one`?result=match/?result=nomatch}",
34
- "expected_output": "{\n \"result\": \"match\"\n}"},
35
- {
36
- "input": "_test1=one;\n_one=two;\n{\ntest1=`two`?\n result=match\n/?\n result=nomatch\n}",
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}",
37
33
  "minimised_modl": "_test1=one;_one=two{test1=`two`?result=match/?result=nomatch}",
38
- "expected_output": "{\n \"result\": \"nomatch\"\n}"},
39
- {
40
- "input": "_test1=one;\n_one=two;\n{\ntest1=\"one\"?\n result=match\n/?\n result=nomatch\n}",
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}",
41
38
  "minimised_modl": "_test1=one;_one=two{test1=\"one\"?result=match/?result=nomatch}",
42
- "expected_output": "{\n \"result\": \"match\"\n}"},
43
- {
44
- "input": "_test1=one;\n_one=two;\n{\ntest1=\"two\"?\n result=match\n/?\n result=nomatch\n}",
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}",
45
43
  "minimised_modl": "_test1=one;_one=two{test1=\"two\"?result=match/?result=nomatch}",
46
- "expected_output": "{\n \"result\": \"nomatch\"\n}"},
47
- {
48
- "input": "_test1=one;\n_one=two;\n{\ntest1=\"one\"?\n result=match\n/?\n result=nomatch\n}",
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}",
49
48
  "minimised_modl": "_test1=one;_one=two{test1=`one`?result=match/?result=nomatch}",
50
- "expected_output": "{\n \"result\": \"match\"\n}"},
51
- {
52
- "input": "_x=a:b:c:d;\n_y=[1;2;3;4];\nz={%x.1=b | %y.2=1?}\n",
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
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
- {
56
- "input": "_x=a:b:c:d;\n_y=[1;2;3;4];\nz={%x.1=b & %y.2=1?}\n",
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",
57
58
  "minimised_modl": "_x=a:b:c:d;_y=[1;2;3;4];z={%x.1=b & %y.2=1?}",
58
- "expected_output": "{\"z\":false}"},
59
- {
60
- "input": "_x=a:b:c:d;\n_y=[1;2;3;4];\nz={%x.1=b&%y.2=3?}",
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?}",
61
63
  "minimised_modl": "_x=a:b:c:d;_y=[1;2;3;4];z={%x.1=b&%y.2=3?}",
62
- "expected_output": "{\"z\":true}"},
63
- {
64
- "input": "_x=a:b:c:d;\n_y=[1;2;3;4];\nz={%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?}",
65
68
  "minimised_modl": "_x=a:b:c:d;_y=[1;2;3;4];z={%x.1=b|%y.2=3?}",
66
- "expected_output": "{\"z\":true}"},
67
- {
68
- "input": "_x=a:b:c:d;\n_y=[1;2;3;4];\nz={%x.1=b|%y.2=x?}",
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?}",
69
73
  "minimised_modl": "_x=a:b:c:d;_y=[1;2;3;4];z={%x.1=b|%y.2=x?}",
70
- "expected_output": "{\"z\":true}"},
71
- {
72
- "input": "_x=a:b:c:d;\n_y=[1;2;3;4];\nz={%x.1=a|%y.2=3?}",
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?}",
73
78
  "minimised_modl": "_x=a:b:c:d;_y=[1;2;3;4];z={%x.1=a|%y.2=3?}",
74
- "expected_output": "{\"z\":true}"},
75
- {
76
- "input": "_x=a:b:c:d;\n_y=[1;2;3;4];\nx={%x.1=%y.2?}",
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?}",
77
83
  "minimised_modl": "_x=a:b:c:d;_y=[1;2;3;4];x={%x.1=%y.2?}",
78
- "expected_output": "{\"x\":false}"},
79
- {
80
- "input": "_x=[1;2;3;4];\n_y=[1;2;3;4];\nx={%x.2=%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?}",
81
88
  "minimised_modl": "_x=[1;2;3;4];_y=[1;2;3;4];x={%x.2=%y.2?}",
82
- "expected_output": "{\"x\":false}"},
83
- {
84
- "input": "_country=gb;\n{\n country = gb | country = us?\n support_number=+441270123456\n /?\n support_number=+14161234567\n}",
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}",
85
93
  "minimised_modl": "_country=gb{country = gb | country = us?support_number=+441270123456/?support_number=+14161234567}",
86
- "expected_output": "{\n \"support_number\": \"+441270123456\"\n}"},
87
- {
88
- "input": "_country=gb;\n{\n country = us | country = gb?\n support_number=+441270123456\n /?\n support_number=+14161234567\n}",
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}",
89
98
  "minimised_modl": "_country=gb{country = us | country = gb?support_number=+441270123456/?support_number=+14161234567}",
90
- "expected_output": "{\n \"support_number\": \"+441270123456\"\n}"},
99
+ "expected_output": "{\n \"support_number\": \"+441270123456\"\n}",
100
+ "tested_features":["conditional", "object_ref"]
101
+ },
91
102
  { "input": "?=a:b:c:d;12%3=1",
92
103
  "minimised_modl": "?=a:b:c:d;12%3=1",
93
- "expected_output": "{\"12d\":1}"},
104
+ "expected_output": "{\"12d\":1}",
105
+ "tested_features":["object_ref"]
106
+ },
94
107
  { "input": "(name=`e1afmkfd`.p;department=` -7sbcecqbdsccxfizhcp6b8ah`.p)",
95
108
  "minimised_modl": "(name=`e1afmkfd`.p;department=` -7sbcecqbdsccxfizhcp6b8ah`.p)",
96
- "expected_output": "{\n \"name\": \"пример\",\n \"department\": \"обслуживание клиентов\"\n}"},
109
+ "expected_output": "{\n \"name\": \"пример\",\n \"department\": \"обслуживание клиентов\"\n}",
110
+ "tested_features":["puny"]
111
+ },
97
112
  { "input": "`80aafnhi4ae`.p.u=`lsa12dvaxki`.p.u",
98
113
  "minimised_modl": "`80aafnhi4ae`.p=`lsa12dvaxki`.p",
99
- "expected_output": "{\n \"НАЗВАНИЕ\":\"БОРИ́С\"\n}"
114
+ "expected_output": "{\n \"НАЗВАНИЕ\":\"БОРИ́С\"\n}",
115
+ "tested_features":["puny", "string_method"]
100
116
  },
101
- {
102
- "input": "(\n _name = John;\n %name.u = \"Developer\";\n foo = %name.u\n)",
117
+ { "input": "(\n _name = John;\n %name.u = \"Developer\";\n foo = %name.u\n)",
103
118
  "minimised_modl": "(_name = John;%name.u = \"Developer\";foo = %name.u)",
104
- "expected_output": "{\n \"JOHN\" : \"Developer\", \n \"foo\" : \"JOHN\"\n}"},
105
- {
106
- "input": "(\n _name = John;\n %name.u = \"Developer\";\n foo = %JOHN\n)",
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)",
107
123
  "minimised_modl": "(_name=John;%name.u=\"Developer\";foo = %JOHN)",
108
- "expected_output": "{\n \"JOHN\" : \"Developer\", \n \"foo\" : \"Developer\"\n}"},
109
- {
110
- "input": "_array[1;2];\n_array_item=%array.0;\ntest={\n array_item=%array.0?\n yes\n /?\n no\n}",
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}",
111
133
  "minimised_modl": "_array[1;2];_array_item=%array.0;test={array_item=%array.0?yes/?no}",
112
- "expected_output": "{\n \"test\": \"yes\"\n}"},
113
- {
114
- "input": "_array[1;2];\ntest={\n %array.0=1?\n yes\n /?\n no\n}",
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}",
115
138
  "minimised_modl": "_array[1;2];test={%array.0=1?yes/?no}",
116
- "expected_output": "{\n \"test\": \"yes\"\n}"},
117
- {
118
- "input": "_array[1;2];\n_array_item=%array.0;\ntest={\n array_item=1?\n yes\n /?\n no\n}",
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}",
119
143
  "minimised_modl": "_array[1;2];_array_item=%array.0;test={array_item=1?yes/?no}",
120
- "expected_output": "{\n \"test\": \"yes\"\n}"},
121
- {
122
- "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!",
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!",
123
148
  "minimised_modl": "_person(name(speak=say;first=John;last=Smith));just `%person.name.speak.u`_this=Hello %person.name.first.d!",
124
- "expected_output": "{\n \"just SAY_this\": \"Hello john!\"\n}"},
125
- {
126
- "input": "*class(\n *i=test;\n *a=[\n [one;two;three]\n ]\n);\ntest=1:2:3",
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",
127
153
  "minimised_modl": "*class(\n *i=test\n *a=[\n [one;two;three]\n ]\n)\ntest=1:2:3",
128
- "expected_output": "{\n \"test\": {\n \"one\": 1,\n \"two\": 2,\n \"three\": 3\n }\n}"},
129
- {
130
- "input": "*class(\n *i=test;\n *a=[\n [one;two;three]\n ]\n);\n\ntest=1:2:(a=Alpha;b=Bravo;c=Charlie)",
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)",
131
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)",
132
- "expected_output": "{\n \"test\": {\n \"one\": 1,\n \"two\": 2,\n \"three\": {\n \"a\": \"Alpha\",\n \"b\": \"Bravo\",\n \"c\": \"Charlie\"\n }\n }\n}"},
133
- {
134
- "input": "*class(\n *i=test;\n *a=[\n [one;two;three]\n ]\n);\n\ntest=1:2:[a;b;c]",
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]",
135
163
  "minimised_modl": "*class(\n *i=test\n *a=[\n [one;two;three]\n ]\n)\n\ntest=1:2:[a;b;c]",
136
- "expected_output": "{\n \"test\": {\n \"one\": 1,\n \"two\": 2,\n \"three\": [\n \"a\",\n \"b\",\n \"c\"\n ]\n }\n}\n"},
137
- {
138
- "input": "_name = John;\n%name = \"123\"",
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\"",
139
168
  "minimised_modl": "_name = John;%name = \"123\"",
140
- "expected_output": "{\"John\":\"123\"}"},
141
- {"input": "[\none;\ntwo;\nthree;\n]",
169
+ "expected_output": "{\"John\":\"123\"}",
170
+ "tested_features":["object_ref"]
171
+ },
172
+ { "input": "[\none;\ntwo;\nthree;\n]",
142
173
  "minimised_modl": "[one;two;three;]",
143
- "expected_output": "[\"one\",\"two\",\"three\"]"},
144
- {"input": "[\none;\ntwo;\nthree\n]",
174
+ "expected_output": "[\"one\",\"two\",\"three\"]",
175
+ "tested_features":["array"]
176
+ },
177
+ { "input": "[\none;\ntwo;\nthree\n]",
145
178
  "minimised_modl": "[one;two;three]",
146
- "expected_output": "[\"one\",\"two\",\"three\"]"},
147
- {
148
- "input": "_country = gb;\nsupport_contact = {\ncountry=gb?\n}",
179
+ "expected_output": "[\"one\",\"two\",\"three\"]",
180
+ "tested_features":["array"]
181
+ },
182
+ { "input": "_country = gb;\nsupport_contact = {\ncountry=gb?\n}",
149
183
  "minimised_modl": "_country=gb;support_contact={country=gb?}",
150
- "expected_output": "{\"support_contact\": true}"},
151
- {
152
- "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)",
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)",
153
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)",
154
- "expected_output": "{\"delta\": {\"test1\": \"test2\",\"y\": \"yankee\",\"x\": \"xray\",\"w\": \"whisky\",\"v\": \"victor\"}}"},
155
- {
156
- "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)",
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)",
157
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)",
158
- "expected_output": "{\"delta\": {\"test1\": \"test2\",\"y\": \"yankee\",\"x\": \"xray\",\"w\": \"whisky\",\"v\": \"victor\"}}"},
159
- {"input": "_test=[[a;b]];letters2=%test.0.0",
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",
160
198
  "minimised_modl": "_test=[[a;b]];letters2=%test.0.0",
161
- "expected_output": "{\"letters2\": \"a\"}"},
162
- {"input": "?=`e1afmkfd`:` -7sbcecqbdsccxfizhcp6b8ah`;(name=%0.p;department=%1.p)",
199
+ "expected_output": "{\"letters2\": \"a\"}",
200
+ "tested_features":["object_ref"]
201
+ },
202
+ { "input": "?=`e1afmkfd`:` -7sbcecqbdsccxfizhcp6b8ah`;(name=%0.p;department=%1.p)",
163
203
  "minimised_modl": "?=`e1afmkfd`:` -7sbcecqbdsccxfizhcp6b8ah`;(name=%0.p;department=%1.p)",
164
- "expected_output": "{\"name\":\"пример\",\"department\":\"обслуживание клиентов\"}"
204
+ "expected_output": "{\"name\":\"пример\",\"department\":\"обслуживание клиентов\"}",
205
+ "tested_features":["object_ref", "puny"]
165
206
  },
166
- {"input": "*class(*id=object;*superclass=arr);sales(name=John Smith;telephone=44800 555 555);service(name=Jim Brown;telephone=44800 666 666)",
207
+ { "input": "*class(*id=object;*superclass=arr);sales(name=John Smith;telephone=44800 555 555);service(name=Jim Brown;telephone=44800 666 666)",
167
208
  "minimised_modl": "*c(*id=object;*superclass=arr);sales(name=John Smith;telephone=44800 555 555);service(name=Jim Brown;telephone=44800 666 666)",
168
- "expected_output": "[{\"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"]
169
211
  },
170
- {
171
- "input": "*class(\n *id=p;\n *NAME=person\n);\n\np(name=John Smith;dob=01/01/2001)",
212
+ { "input": "*class(\n *id=p;\n *NAME=person\n);\n\np(name=John Smith;dob=01/01/2001)",
172
213
  "minimised_modl": "*c(*i=p;*N=person);p(name=John Smith;dob=01/01/2001)",
173
- "expected_output": "{\n \"person\" : {\n \"name\" : \"John Smith\",\n \"dob\" : \"01/01/2001\"\n }\n}\n"
214
+ "expected_output": "{\n \"person\" : {\n \"name\" : \"John Smith\",\n \"dob\" : \"01/01/2001\"\n }\n}\n",
215
+ "tested_features":["class"]
174
216
  },
175
- {"input": "*class(*id=a;*name=age);a=10",
217
+ { "input": "*class(*id=a;*name=age);a=10",
176
218
  "minimised_modl": "*class(*id=a;*name=age);a=10",
177
- "expected_output": "{\"age\":10}"
219
+ "expected_output": "{\"age\":10}",
220
+ "tested_features":["class"]
178
221
  },
179
- {"input": "*class(*id=a;*name=age;*superclass=num);a=10",
222
+ { "input": "*class(*id=a;*name=age;*superclass=num);a=10",
180
223
  "minimised_modl": "*class(*id=a;*name=age;*superclass=num);a=10",
181
- "expected_output": "{\"age\":10}"
224
+ "expected_output": "{\"age\":10}",
225
+ "tested_features":["class"]
182
226
  },
183
- {"input": "*class(*id=a;*name=age;*superclass=str);a=10",
227
+ { "input": "*class(*id=a;*name=age;*superclass=str);a=10",
184
228
  "minimised_modl": "*class(*id=a;*name=age;*superclass=str);a=10",
185
- "expected_output": "{\"age\":\"10\"}"
229
+ "expected_output": "{\"age\":\"10\"}",
230
+ "tested_features":["class"]
186
231
  },
187
- {"input": "*class(*id=newstr;*superclass=str);*class(*id=a;*name=age;*superclass=newstr);a=10",
232
+ { "input": "*class(*id=newstr;*superclass=str);*class(*id=a;*name=age;*superclass=newstr);a=10",
188
233
  "minimised_modl": "*class(*id=newstr;*superclass=str);*class(*id=a;*name=age;*superclass=newstr);a=10",
189
- "expected_output": "{\"age\":\"10\"}"
234
+ "expected_output": "{\"age\":\"10\"}",
235
+ "tested_features":["class"]
190
236
  },
191
- {"input": "?[[a;b;c]];letters=%0",
237
+ { "input": "?[[a;b;c]];letters=%0",
192
238
  "minimised_modl": "?[[a;b;c]];letters=%0",
193
- "expected_output": "{\"letters\": [ \"a\", \"b\", \"c\"]}"
239
+ "expected_output": "{\"letters\": [ \"a\", \"b\", \"c\"]}",
240
+ "tested_features":["object_ref"]
194
241
  },
195
- {
196
- "input": "?=[a;b;c;d]:[1;2;3;4;5];\ntest=%1.0",
242
+ { "input": "?=[a;b;c;d]:[1;2;3;4;5];\ntest=%1.0",
197
243
  "minimised_modl": "?=[a;b;c;d]:[1;2;3;4;5];test=%1.0",
198
- "expected_output": "{\n \"test\" : 1\n}\n"
244
+ "expected_output": "{\n \"test\" : 1\n}\n",
245
+ "tested_features":["object_ref"]
199
246
  },
200
- {"input": "_test=123;object(print_test = %test.test)",
247
+ { "input": "_test=123;object(print_test = %test.test)",
201
248
  "minimised_modl": "_test=123;object(print_test = %test.test)",
202
- "expected_output": "{\"object\":{\"print_test\":\"123.test\"}}"},
203
- {"input": "?=one:two:three;test1=%0;test2=%1;test3=%2;test4=%3;test5=%4;test6=%5;test7=%6;test8=%7;test9=%8",
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",
204
253
  "minimised_modl": "?=one:two:three;test1=%0;test2=%1;test3=%2;test4=%3;test5=%4;test6=%5;test7=%6;test8=%7;test9=%8",
205
- "expected_output": "[{\"test1\": \"one\"},{\"test2\": \"two\"},{\"test3\": \"three\"},{\"test4\": \"%3\"},{\"test5\": \"%4\"},{\"test6\": \"%5\"},{\"test7\": \"%6\"},{\"test8\": \"%7\"},{\"test9\": \"%8\"}]"},
206
- {
207
- "input": "a=1:2:3;b=4:5:6",
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",
208
258
  "minimised_modl": "a=1:2:3;b=4:5:6",
209
- "expected_output": "[ {\n \"a\" : [ 1, 2, 3 ]\n}, {\n \"b\" : [ 4, 5, 6 ]\n} ]"},
210
- {
211
- "input": "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",
212
263
  "minimised_modl": "a=1:2:3;b=4:5:6;",
213
- "expected_output": "[ {\n \"a\" : [ 1, 2, 3 ]\n}, {\n \"b\" : [ 4, 5, 6 ]\n} ]"},
214
- {"input": "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",
215
268
  "minimised_modl": "a=1:2:3;b=4:5:6",
216
- "expected_output": "[ {\n \"a\" : [ 1, 2, 3 ]\n}, {\n \"b\" : [ 4, 5, 6 ]\n} ]"},
217
- {"input": "a=1:2:3;\nb=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",
218
273
  "minimised_modl": "a=1:2:3;\nb=4:5:6",
219
- "expected_output": "[ {\n \"a\" : [ 1, 2, 3 ]\n}, {\n \"b\" : [ 4, 5, 6 ]\n} ]"},
220
- {
221
- "input": "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",
222
278
  "minimised_modl": "a=1:2:3\nb=4:5:6",
223
- "expected_output": "[ {\n \"a\" : [ 1, 2, 3 ]\n}, {\n \"b\" : [ 4, 5, 6 ]\n} ]"},
224
- {
225
- "input": "a=1:2:3\n;\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",
226
283
  "minimised_modl": "a=1:2:3\n;\nb=4:5:6",
227
- "expected_output": "[ {\n \"a\" : [ 1, 2, 3 ]\n}, {\n\"b\" : [ 4, 5, 6 ]\n} ]"},
228
- {
229
- "input": "_test=(a=b=c=d=f);\nx=%test.a.b.c.d",
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",
230
288
  "minimised_modl": "_test=(a=b=c=d=f)\nx=%test.a.b.c.d",
231
- "expected_output": "{\"x\":\"f\"}"},
232
- {
233
- "input": "a(b(c(d(e(f=1)))));\ntesting=%a.b.c.d.e.f",
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",
234
293
  "minimised_modl": "a(b(c(d(e(f=1)))))\ntesting=%a.b.c.d.e.f",
235
- "expected_output": "[ {\"a\" : {\"b\" : {\"c\" : {\"d\" : {\"e\" : {\"f\" : 1}}}}}}, {\"testing\":1}]"},
236
- {
237
- "input": "_test=(a=b=c=d=f);\ntesting=%test.a.b.c.d",
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",
238
298
  "minimised_modl": "_test=(a=b=c=d=f)\ntesting=%test.a.b.c.d",
239
- "expected_output": "{\"testing\":\"f\"}"},
240
- {
241
- "input": "a=\nb\n=c;\nd=e",
299
+ "expected_output": "{\"testing\":\"f\"}",
300
+ "tested_features":["object_ref"]
301
+ },
302
+ { "input": "a=\nb\n=c;\nd=e",
242
303
  "minimised_modl": "a=\nb\n=c\nd=e",
243
- "expected_output": "[ {\"a\" : {\"b\" : \"c\"}}, {\"d\" : \"e\"} ]"},
244
- {"input": "test=this is a #hashtag test;test2=#testing 123",
304
+ "expected_output": "[ {\"a\" : {\"b\" : \"c\"}}, {\"d\" : \"e\"} ]",
305
+ "tested_features":["map"]
306
+ },
307
+ { "input": "test=this is a #hashtag test;test2=#testing 123",
245
308
  "minimised_modl": "test=this is a #hashtag test;test2=#testing 123",
246
- "expected_output": "[ {\"test\" : \"this is a #hashtag test\"}, {\"test2\" : \"#testing 123\"} ]"},
247
- {"input": "a=(b=c=d=e=f)",
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)",
248
313
  "minimised_modl": "a=(b=c=d=e=f)",
249
- "expected_output": "{\"a\": {\"b\": {\"c\": {\"d\": {\"e\": \"f\"}}}}}"},
250
- {"input": "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",
251
318
  "minimised_modl": "a=b=c=d=e=f",
252
- "expected_output": "{\"a\": {\"b\": {\"c\": {\"d\": {\"e\": \"f\"}}}}}"},
253
- {"input": "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))))",
254
323
  "minimised_modl": "a=(b=(c=(d=(e=f))))",
255
- "expected_output": "{\"a\": {\"b\": {\"c\": {\"d\": {\"e\": \"f\"}}}}}"},
256
- {
257
- "input": "country=gb;\nx=[{ country=gb ? this /country=us? that }]",
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 }]",
258
328
  "minimised_modl": "country=gb;x=[{ country=gb? this /country=us? that }]",
259
- "expected_output": "[{\"country\" : \"gb\"}, { \"x\" : [ \"this\" ]}]"},
260
- {"input": "_a=3;_b=3;c={a=b?true/?false}",
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}",
261
333
  "minimised_modl": "_a=3;_b=3;c={a=b?true/?false}",
262
- "expected_output": "{\"c\": true}"},
263
- {"input": "a=1;b=2;b={{a=1}|{b=2}?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}",
264
338
  "minimised_modl": "a=1;b=2;b={{a=1}|{b=2}?true/?false}",
265
- "expected_output": "[{\"a\": 1},{\"b\": 2},{\"b\": true}]"},
266
- {
267
- "input": "_a=1;\n_b=2;\nx={a=b?}",
339
+ "expected_output": "[{\"a\": 1},{\"b\": 2},{\"b\": true}]",
340
+ "tested_features":["conditional"]
341
+ },
342
+ { "input": "_a=1;\n_b=2;\nx={a=b?}",
268
343
  "minimised_modl": "_a=1;_b=2;x={a=b?}",
269
- "expected_output": "{\"x\":false}"},
270
- {
271
- "input": "_a=1;\n_b=1;\nx={a=b?}",
344
+ "expected_output": "{\"x\":false}",
345
+ "tested_features":["object_ref", "conditional"]
346
+ },
347
+ { "input": "_a=1;\n_b=1;\nx={a=b?}",
272
348
  "minimised_modl": "_a=1;_b=1;x={a=b?}",
273
- "expected_output": "{\"x\":true}"},
274
- {
275
- "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",
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",
276
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",
277
- "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} ]"
278
- }, {
279
- "input": "*VERSION=1;\n\"test\"=1",
280
- "minimised_modl": "*VERSION=1;test=1",
281
- "expected_output": "{\"test\" : 1}"
282
- }, {
283
- "input": "*VERSION=100;\n\"test\"=1",
284
- "minimised_modl": "*VERSION=100;test=1",
285
- "expected_output": "{\"test\" : 1}"
286
- },{
287
- "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)",
288
- "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))))",
289
- "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"
290
- }, {
291
- "input": "_test=1~:2;\n\nresult={\n test=1~:2?\n yes\n /?\n no\n}",
292
- "minimised_modl": "_test=1~:2;result={test=1~:2?yes/?no}",
293
- "expected_output": "{\n \"result\" : \"yes\"\n}\n"
294
- }, {
295
- "input": "_test=\"http://www.tesco.com\";\n\nresult={\n test=\"http://www.tesco.com\"?\n yes\n /?\n no\n}",
296
- "minimised_modl": "_test=http~://www.tesco.com;result={test=\"http://www.tesco.com\"?yes/?no}",
297
- "expected_output": "{\n \"result\" : \"yes\"\n}\n"
298
- }, {
299
- "input": "_test=\"http://www.tesco.com\";\n\nresult={\n test=\"http://www.tesco.com\"?\n yes\n /?\n no\n}",
300
- "minimised_modl": "_test=http~://www.tesco.com;result={test=\"http://www.tesco.com\"?yes/?no}",
301
- "expected_output": "{\n \"result\" : \"yes\"\n}\n"
302
- }, {
303
- "input": "_branch=\"alex.\";_root=d;namespace=`%branch`blah.`%root`",
304
- "minimised_modl": "_branch=alex.;_root=d;namespace=`%branch`blah.`%root`",
305
- "expected_output": "{\n \"namespace\" : \"alex.blah.d\"\n}\n"
306
- }, {
307
- "input": "namespace=`%branch`blah.`%root`",
308
- "minimised_modl": "namespace=`%branch`blah.`%root`",
309
- "expected_output": "{\n \"namespace\" : \"%branchblah.%root\"\n}\n"
310
- }, {
311
- "input": "_root=tesco.com;\n_branch=direct.;\nnamespace1=`%branch`numrecord.`%root`;\nnamespace2=`%branch`_`%root`.numq.net",
312
- "minimised_modl": "_root=tesco.com;_branch=direct.;namespace1=`%branch`numrecord.`%root`;namespace2=`%branch`_`%root`.numq.net",
313
- "expected_output": "[ {\n \"namespace1\" : \"direct.numrecord.tesco.com\"\n}, {\n \"namespace2\" : \"direct._tesco.com.numq.net\"\n} ]\n"
314
- }, {
315
- "input": "_branch=\"\";\n_root=\"\";\nnamespace=`%branch`numrecord.`%root`",
316
- "minimised_modl": "_branch=\"\";_root=\"\";namespace=`%branch`numrecord.`%root`",
317
- "expected_output": "{\n \"namespace\" : \"numrecord.\"\n}\n"
318
- }, {
319
- "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]",
320
- "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]",
321
- "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"
322
- }, {
323
- "input": "*CLASS(\n *id=p;\n *name=person;\n *SUPERCLASS=map\n);\n\np(name=John Smith;dob=01/01/2000)",
324
- "minimised_modl": "*C(*i=p;*n=person;*S=map);p(name=John Smith;dob=01/01/2000)",
325
- "expected_output": "{\n \"person\" : {\n \"name\" : \"John Smith\",\n \"dob\" : \"01/01/2000\"\n }\n}\n"
326
- }, {
327
- "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",
328
- "minimised_modl": "*c(*i=m;*n=message;*S=map;*a[[direction;date_time;message]];method=sms);m=in:2018-03-22:hi",
329
- "expected_output": "{\n \"message\" : {\n \"direction\" : \"in\",\n \"date_time\" : \"2018-03-22\",\n \"message\" : \"hi\",\n \"method\" : \"sms\"\n }\n}\n"
330
- }, {
331
- "input": "*class(\n *id=car;\n *name=car;\n *superclass=map\n);\n\ncar(\n make=Bentley\n)",
332
- "minimised_modl": "*c(*i=car;*n=car;*s=map);car(make=Bentley)",
333
- "expected_output": "{\n \"car\" : {\n \"make\" : \"Bentley\"\n }\n}\n"
334
- }, {
335
- "input": "?=[one;two];\ntest=Blah `%0.s` %1.s",
336
- "minimised_modl": "?=one:two;test=Blah `%0.s` %1.s",
337
- "expected_output": "{\n \"test\" : \"Blah One Two\"\n}\n"
338
- }, {
339
- "input": "?=one:two;\ntest=Blah `%0.r(o,huzzah)` `%1.t(w)`",
340
- "minimised_modl": "?=one:two;test=Blah `%0.r(o,huzzah)` `%1.t(w)`",
341
- "expected_output": "{\n \"test\" : \"Blah huzzahne t\"\n}\n"
342
- }, {
343
- "input": "_test=\"123\";\nobject(\n print_test = %test.test\n)",
344
- "minimised_modl": "_test=\"123\";object(print_test=%test.test)",
345
- "expected_output": "{\n \"object\" : {\n \"print_test\" : \"123.test\"\n }\n}\n"
346
- }, {
347
- "input": "_var = NotThisOne;_var=`%var`blah;out=`%var`deblah",
348
- "minimised_modl": "_var=NotThisOne;_var=`%var`blah;out=`%var`deblah",
349
- "expected_output": "{\n \"out\" : \"NotThisOneblahdeblah\"\n}\n"
350
- }, {
351
- "input": "_var = NotThisOne;_var=blah;out=`%var`deblah",
352
- "minimised_modl": "_var=NotThisOne;_var=blah;out=`%var`deblah",
353
- "expected_output": "{\n \"out\" : \"blahdeblah\"\n}\n"
354
- }, {
355
- "input": "test(\n map(\n array[]\n );\n array[\n map();\n array[1;2;3]\n ]\n)",
356
- "minimised_modl": "test(map(array[]);array[map();array=1:2:3])",
357
- "expected_output": "{\n \"test\" : {\n \"map\" : {\n \"array\" : [ ]\n },\n \"array\" : [ {\n \"map\" : { }\n }, {\n \"array\" : [ 1, 2, 3 ]\n } ]\n }\n}\n"
358
- }, {
359
- "input": "{\n01?\n test=1\n}",
360
- "minimised_modl": "{01?test=1}",
361
- "expected_output": "{\n \"test\" : 1\n}\n"
362
- }, {
363
- "input": "test=()",
364
- "minimised_modl": "test()",
365
- "expected_output": "{\n \"test\" : { }\n}\n"
366
- }, {
367
- "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}",
368
- "minimised_modl": "_co=at;_l=de;{co=at?country=Austria;language={l=fr?French/l=de?German/?Other}/?country=Other}",
369
- "expected_output": "[ {\n \"country\" : \"Austria\"\n}, {\n \"language\" : \"German\"\n} ]\n"
370
- }, {
371
- "input": "true2 = 01;\ntrue1 = true;\nfalse2 = 00;\nfalse1 = false;\nnull2 = 000;\nnull1 = null",
372
- "minimised_modl": "true2=01;true1=01;false2=00;false1=00;null2=000;null1=000",
373
- "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"
374
- }, {
375
- "input": "_person( \n name(\n first=John;\n last=Smith\n )\n);\nsay=%person.name.first",
376
- "minimised_modl": "_person(name(first=John;last=Smith));say=%person.name.first",
377
- "expected_output": "{\"say\":\"John\"}"
378
- }, {
379
- "input": "_person( \n name(\n first=John;\n last=Smith\n )\n);\nsay=%person.name.first",
380
- "minimised_modl": "_person(name(first=John;last=Smith));say=%person.name.first",
381
- "expected_output": "{\n \"say\" : \"John\"\n}\n"
382
- }, {
383
- "input": "_C=gb;\n_COUNTRIES(\n us=United States;\n gb=United Kingdom;\n de=Germany\n);\n\ncountry_name = %COUNTRIES.%C",
384
- "minimised_modl": "_C=gb;_COUNTRIES(us=United States;gb=United Kingdom;de=Germany);country_name=%COUNTRIES.%C",
385
- "expected_output": "{\n \"country_name\" : \"United Kingdom\"\n}\n"
386
- }, {
387
- "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}",
388
- "minimised_modl": "*c(*i=car;*n=car;*s=map;*a=[m]:[m;md]);_C=gb;car=Bentley:{C=ru?ContinentalRussia GT/?Continental GT}",
389
- "expected_output": "{\n \"car\" : {\n \"m\" : \"Bentley\",\n \"md\" : \"Continental GT\"\n }\n}\n"
390
- }, {
391
- "input": "_person( \n name(\n first=\"John\"\n )\n);\na=%person.name.first",
392
- "minimised_modl": "_person(name(first=John));a=%person.name.first",
393
- "expected_output": "{\n \"a\" : \"John\"\n}\n"
394
- }, {
395
- "input": "?=[a;b;c;d]:[1;2;3;4;5];\ntest=%1",
396
- "minimised_modl": "?=[a;b;c;d]:[1;2;3;4;5];test=%1",
397
- "expected_output": "{\n \"test\" : [ 1, 2, 3, 4, 5 ]\n}\n"
398
- }, {
399
- "input": "_test=123;\nprint=%_test",
400
- "minimised_modl": "_test=123;print=%_test",
401
- "expected_output": "{\n \"print\" : 123\n}\n"
402
- }, {
403
- "input": "_test=abc;\n\n{\n test?\n result=test is defined\n /?\n result=test is not defined\n}",
404
- "minimised_modl": "_test=abc;{test?result=test is defined/?result=test is not defined}",
405
- "expected_output": "{\n \"result\" : \"test is defined\"\n}\n"
406
- }, {
407
- "input": "{\n true?\n result=true\n}\n",
408
- "minimised_modl": "{01?result=01}",
409
- "expected_output": "{\n \"result\" : true\n}\n"
410
- }, {
411
- "input": "_test=true;\n\n{\n test?\n result=%test\n}\n",
412
- "minimised_modl": "_test=01;{test?result=%test}",
413
- "expected_output": "{\n \"result\" : true\n}\n"
414
- }, {
415
- "input": "_test=false;\n\n{\n test?\n result=result is true\n /?\n result=result is false\n}",
416
- "minimised_modl": "_test=00;{test?result=result is true/?result=result is false}",
417
- "expected_output": "{\n \"result\" : \"result is false\"\n}\n"
418
- }, {
419
- "input": "{\n test?\n result=test is defined\n /?\n result=test is not defined\n}\n",
420
- "minimised_modl": "{test?result=test is defined/?result=test is not defined}",
421
- "expected_output": "{\n \"result\" : \"test is not defined\"\n}\n"
422
- }, {
423
- "input": "{\n !test?\n result=test is not defined\n /?\n result=test is defined\n}\n",
424
- "minimised_modl": "{!test?result=test is not defined/?result=test is defined}",
425
- "expected_output": "{\n \"result\" : \"test is not defined\"\n}\n"
426
- }, {
427
- "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}",
428
- "minimised_modl": "_colour=green;_test={colour=green?01/?00};{!test?result=it's not green/?result=it's green}",
429
- "expected_output": "{\n \"result\" : \"it's green\"\n}\n"
430
- }, {
431
- "input": "_test=1;\nresult={\n %test=1?\n yes\n /?\n no\n}",
432
- "minimised_modl": "_test=1;result={%test=1?yes/?no}",
433
- "expected_output": "{\n \"result\" : \"yes\"\n}\n"
434
- }, {
435
- "input": "_test=1;\nresult={\n test=1?\n yes\n /?\n no\n}",
436
- "minimised_modl": "_test=1;result={test=1?yes/?no}",
437
- "expected_output": "{\n \"result\" : \"yes\"\n}\n"
438
- }, {
439
- "input": "_test=1;\nresult={\n _test=1?\n yes\n /?\n no\n}",
440
- "minimised_modl": "_test=1;result={_test=1?yes/?no}",
441
- "expected_output": "{\n \"result\" : \"yes\"\n}\n"
442
- }, {
443
- "input": "_test=1;\nresult={\n %_test=1?\n yes\n /?\n no\n}",
444
- "minimised_modl": "_test=1;result={%_test=1?yes/?no}",
445
- "expected_output": "{\n \"result\" : \"yes\"\n}\n"
446
- }, {
447
- "input": "?[[a;b;c];[one;two;three]];letters=%0;numbers=%1",
448
- "minimised_modl": "?=[a;b;c]:[one;two;three];letters=%0;numbers=%1",
449
- "expected_output": "[ {\n \"letters\" : [ \"a\", \"b\", \"c\" ]\n}, {\n \"numbers\" : [ \"one\", \"two\", \"three\" ]\n} ]\n"
450
- }, {
451
- "input": "?=[a;b;c]:[one;two;three];letters=%0;numbers=%1",
452
- "minimised_modl": "?=[a;b;c]:[one;two;three];letters=%0;numbers=%1",
453
- "expected_output": "[ {\n \"letters\" : [ \"a\", \"b\", \"c\" ]\n}, {\n \"numbers\" : [ \"one\", \"two\", \"three\" ]\n} ]\n"
454
- }, {
455
- "input": "?[a;b;c];letters=%0",
456
- "minimised_modl": "?=a:b:c;letters=%0",
457
- "expected_output": "{\n \"letters\" : \"a\"\n}\n"
458
- }, {
459
- "input": "?=[a;b;c]:[one;two;three];letters=%0;numbers=%1",
460
- "minimised_modl": "?=[a;b;c]:[one;two;three];letters=%0;numbers=%1",
461
- "expected_output": "[ {\n \"letters\" : [ \"a\", \"b\", \"c\" ]\n}, {\n \"numbers\" : [ \"one\", \"two\", \"three\" ]\n} ]\n"
462
- }, {
463
- "input": "test=[zero;one]:[a;b]",
464
- "minimised_modl": "test=[zero;one]:[a;b]",
465
- "expected_output": "{\n \"test\" : [ [ \"zero\", \"one\" ], [ \"a\", \"b\" ] ]\n}\n"
466
- }, {
467
- "input": "test=[zero;one]:[a;b]",
468
- "minimised_modl": "test=[zero;one]:[a;b]",
469
- "expected_output": "{\n \"test\" : [ [ \"zero\", \"one\" ], [ \"a\", \"b\" ] ]\n}\n"
470
- }, {
471
- "input": "?[zero;one;two];\nfirst_var=%0;\nsecond_var=%1;\nthird_var=%2",
472
- "minimised_modl": "?=zero:one:two;first_var=%0;second_var=%1;third_var=%2",
473
- "expected_output": "[ {\n \"first_var\" : \"zero\"\n}, {\n \"second_var\" : \"one\"\n}, {\n \"third_var\" : \"two\"\n} ]\n"
474
- }, {
475
- "input": "_C=gb;\no(\n{C=gb?test1=123};\ntest2=456\n)",
476
- "minimised_modl": "_C=gb;o({C=gb?test1=123};test2=456)",
477
- "expected_output": "{\n \"o\" : {\n \"test1\" : 123,\n \"test2\" : 456\n }\n}\n"
478
- }, {
479
- "input": "{\ntrue?\n test=1\n}",
480
- "minimised_modl": "{01?test=1}",
481
- "expected_output": "{\n \"test\" : 1\n}\n"
482
- }, {
483
- "input": "_test[a;b;c];alex=%test",
484
- "minimised_modl": "_test=a:b:c;alex=%test",
485
- "expected_output": "{\n \"alex\" : [ \"a\", \"b\", \"c\" ]\n}\n"
486
- }, {
487
- "input": "_test[a;b;c];alex=%test.0",
488
- "minimised_modl": "_test=a:b:c;alex=%test.0",
489
- "expected_output": "{\n \"alex\" : \"a\"\n}\n"
490
- }, {
491
- "input": "?[a;b;c];alex=%0",
492
- "minimised_modl": "?=a:b:c;alex=%0",
493
- "expected_output": "{\n \"alex\" : \"a\"\n}\n"
494
- }, {
495
- "input": "_bool=true;\n{\n%bool?\n test=1\n}",
496
- "minimised_modl": "_bool=01;{%bool?test=1}",
497
- "expected_output": "{\n \"test\" : 1\n}\n"
498
- }, {
499
- "input": "_co = gb;\ntest = {\n co = gb?\n UK\n /?\n Other\n}",
500
- "minimised_modl": "_co=gb;test={co=gb?UK/?Other}",
501
- "expected_output": "{\n \"test\" : \"UK\"\n}\n"
502
- }, {
503
- "input": "?=0:1:2;\nresult={\n%1>1?\n yes\n/?\n no\n}",
504
- "minimised_modl": "?=0:1:2;result={%1>1?yes/?no}",
505
- "expected_output": "{\n \"result\" : \"no\"\n}\n"
506
- }, {
507
- "input": "_test_vars(\n one = 1;\n two = 2\n);\n\nfirst_number = %test_vars.one",
508
- "minimised_modl": "_test_vars(one=1;two=2);first_number=%test_vars.one",
509
- "expected_output": "{\n \"first_number\" : 1\n}\n"
510
- }, {
511
- "input": "_C=gb;\n_COUNTRIES[\n United States;\n United Kingdom;\n Germany\n];\n\ncountry_name = %COUNTRIES.0",
512
- "minimised_modl": "_C=gb;_COUNTRIES=United States:United Kingdom:Germany;country_name=%COUNTRIES.0",
513
- "expected_output": "{\n \"country_name\" : \"United States\"\n}\n"
514
- }, {
515
- "input": "(_C=gb;\n{C=gb?test1=123};\ntest2=456)",
516
- "minimised_modl": "(_C=gb;{C=gb?test1=123};test2=456)",
517
- "expected_output": "{\n \"test1\" : 123,\n \"test2\" : 456\n}\n"
518
- }, {
519
- "input": "alex=1.2345",
520
- "minimised_modl": "alex=1.2345",
521
- "expected_output": "{\n \"alex\" : 1.2345\n}\n"
522
- }, {
523
- "input": "?=zero:one:two;\ndiscount=%30",
524
- "minimised_modl": "?=zero:one:two;discount=%30",
525
- "expected_output": "{\n \"discount\" : \"%30\"\n}\n"
526
- }, {
527
- "input": "{\ntrue?\n test=1\n}",
528
- "minimised_modl": "{01?test=1}",
529
- "expected_output": "{\n \"test\" : 1\n}\n"
530
- }, {
531
- "input": "{\nTRUE?\n test=1\n}",
532
- "minimised_modl": "{01?test=1}",
533
- "expected_output": "{\n \"test\" : 1\n}\n"
534
- }, {
535
- "input": "_test=abcdefg;\nresult={\n {test!=a*}?\n in\n /?\n out\n}",
536
- "minimised_modl": "_test=abcdefg;result={{test!=a*}?in/?out}",
537
- "expected_output": "{\n \"result\" : \"out\"\n}\n"
538
- }, {
539
- "input": "test=[]",
540
- "minimised_modl": "test[]",
541
- "expected_output": "{\n \"test\" : [ ]\n}\n"
542
- }, {
543
- "input": "test(\n empty_array=[];\n empty_map=()\n)\n",
544
- "minimised_modl": "test(empty_array[];empty_map())",
545
- "expected_output": "{\n \"test\" : {\n \"empty_array\" : [ ],\n \"empty_map\" : { }\n }\n}\n"
546
- }, {
547
- "input": "_num1 = 2;\n_num2 = 1000;\n\nresult={\n num1>num2?\n num1 is bigger\n /?\n num1 is not bigger\n}\n",
548
- "minimised_modl": "_num1=2;_num2=1000;result={num1>num2?num1 is bigger/?num1 is not bigger}",
549
- "expected_output": "{\n \"result\" : \"num1 is not bigger\"\n}\n"
550
- }, {
551
- "input": "?=0:1:2;\nzero=%0;\none=%1;\ntwo=%2",
552
- "minimised_modl": "?=0:1:2;zero=%0;one=%1;two=%2",
553
- "expected_output": "[ {\n \"zero\" : 0\n}, {\n \"one\" : 1\n}, {\n \"two\" : 2\n} ]\n"
554
- }, {
555
- "input": "?=a:b:c;\nzero=%0;\none=%1;\ntwo=%2\n",
556
- "minimised_modl": "?=a:b:c;zero=%0;one=%1;two=%2",
557
- "expected_output": "[ {\n \"zero\" : \"a\"\n}, {\n \"one\" : \"b\"\n}, {\n \"two\" : \"c\"\n} ]\n"
558
- }, {
559
- "input": "_num1 = 5;\n_num2 = 2;\n\nresult={\n num1>num2?\n num1 is bigger\n /?\n num1 is not bigger\n}",
560
- "minimised_modl": "_num1=5;_num2=2;result={num1>num2?num1 is bigger/?num1 is not bigger}",
561
- "expected_output": "{\n \"result\" : \"num1 is bigger\"\n}\n"
562
- }, {
563
- "input": "?=\"A\":B:C;\nfirst_letter=%0",
564
- "minimised_modl": "?=A:B:C;first_letter=%0",
565
- "expected_output": "{\n \"first_letter\" : \"A\"\n}\n"
566
- }, {
567
- "input": "test=100%",
568
- "minimised_modl": "test=100%",
569
- "expected_output": "{\n \"test\" : \"100%\"\n}\n"
570
- }, {
571
- "input": "test=`test`",
572
- "minimised_modl": "test=`test`",
573
- "expected_output": "{\n \"test\" : \"test\"\n}\n"
574
- }, {
575
- "input": "test=\u0021",
576
- "minimised_modl": "test=\u0021",
577
- "expected_output": "{\n \"test\" : \"!\"\n}\n"
578
- }, {
579
- "input": "test=[zero;one]",
580
- "minimised_modl": "test=zero:one",
581
- "expected_output": "{\n \"test\" : [ \"zero\", \"one\" ]\n}\n"
582
- }, {
583
- "input": "_C=fr;\n{C=gb?test1=123};\ntest2=456",
584
- "minimised_modl": "_C=fr;{C=gb?test1=123};test2=456",
585
- "expected_output": "{\n \"test2\" : 456\n}\n"
586
- }, {
587
- "input": "_C=ca;\n_L=en;\n{\n C=ca?\n n=Tesco Canada\n {L=fr?\n s=Chaque Petite Contribution\n }\n}",
588
- "minimised_modl": "_C=ca;_L=en;{C=ca?n=Tesco Canada;{L=fr?s=Chaque Petite Contribution}}",
589
- "expected_output": "{\n \"n\" : \"Tesco Canada\"\n}\n"
590
- }, {
591
- "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}",
592
- "minimised_modl": "_L=en;{C=ca?o(n=Tesco Canada;s={L=fr?Chaque Petite Contribution/?Every Little Helps})}",
593
- "expected_output": "null"
594
- }, {
595
- "input": "_letter=a;\n{\n letter=a?\n word=Apple\n /letter=b?\n word=Bee\n /?\n word=Other\n}",
596
- "minimised_modl": "_letter=a;{letter=a?word=Apple/letter=b?word=Bee/?word=Other}",
597
- "expected_output": "{\n \"word\" : \"Apple\"\n}\n"
598
- }, {
599
- "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}",
600
- "minimised_modl": "_int=1;{int=1?number=one/int=2?number=two/int=3?number=three/?number=other}",
601
- "expected_output": "{\n \"number\" : \"one\"\n}\n"
602
- }, {
603
- "input": "_number=one;\n{\n number=one?\n int=1\n /number=two?\n int=2\n /number=three?\n int=3\n}",
604
- "minimised_modl": "_number=one;{number=one?int=1/number=two?int=2/number=three?int=3}",
605
- "expected_output": "{\n \"int\" : 1\n}\n"
606
- }, {
607
- "input": "_co=gb;\n{\nco=gb?\n country = United Kingdom\n/?\n country = Other\n}",
608
- "minimised_modl": "_co=gb;{co=gb?country=United Kingdom/?country=Other}",
609
- "expected_output": "{\n \"country\" : \"United Kingdom\"\n}\n"
610
- }, {
611
- "input": "_co=gb;\n{\nco=gb?\n country = United Kingdom\n/?\n country = Other\n}",
612
- "minimised_modl": "_co=gb;{co=gb?country=United Kingdom/?country=Other}",
613
- "expected_output": "{\n \"country\" : \"United Kingdom\"\n}\n"
614
- }, {
615
- "input": "_co = gb;\ntest = {\n co = gb?\n test=123\n /?\n test\n}",
616
- "minimised_modl": "_co=gb;test={co=gb?test=123/?test}",
617
- "expected_output": "{\n \"test\" : {\n \"test\" : 123\n }\n}\n"
618
- }, {
619
- "input": "_co = fr;\ntest = {\n co = gb?\n test=123\n /?\n test\n}",
620
- "minimised_modl": "_co=fr;test={co=gb?test=123/?test}",
621
- "expected_output": "{\n \"test\" : \"test\"\n}\n"
622
- }, {
623
- "input": "_COUNTRY=gb;\ncountry=The country is %COUNTRY",
624
- "minimised_modl": "_COUNTRY=gb;country=The country is %COUNTRY",
625
- "expected_output": "{\n \"country\" : \"The country is gb\"\n}\n"
626
- }, {
627
- "input": "COUNTRY=gb;\ncountry=The country is %COUNTRY",
628
- "minimised_modl": "COUNTRY=gb;country=The country is %COUNTRY",
629
- "expected_output": "[ {\n \"COUNTRY\" : \"gb\"\n}, {\n \"country\" : \"The country is gb\"\n} ]\n"
630
- }, {
631
- "input": "_co=gb;\ncountry=The country is %co",
632
- "minimised_modl": "_co=gb;country=The country is %co",
633
- "expected_output": "{\n \"country\" : \"The country is gb\"\n}\n"
634
- }, {
635
- "input": "_test = 123;\n_test2 = abc",
636
- "minimised_modl": "_test=123;_test2=abc",
637
- "expected_output": "null"
638
- }, {
639
- "input": "_co=gb;\ntest=123",
640
- "minimised_modl": "_co=gb;test=123",
641
- "expected_output": "{\n \"test\" : 123\n}\n"
642
- }, {
643
- "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\"",
644
- "minimised_modl": "*m(*i=cn;*n=company_name;*transform=`replace(-, ).trim(.).initcap`);_domain=smiths-limited.com;friendly_name=%domain.cn",
645
- "expected_output": "{\n \"friendly_name\" : \"Smiths Limited\"\n}\n"
646
- }, {
647
- "input": "*method(\n *id=rt;\n *name=remove_two;\n *transform=`replace(two,)`\n);\n\n_numbers = one two three;\nname = %numbers.rt",
648
- "minimised_modl": "*m(*i=rt;*n=remove_two;*transform=`replace(two,)`);_numbers=one two three;name=%numbers.rt",
649
- "expected_output": "{\n \"name\" : \"one three\"\n}\n"
650
- }, {
651
- "input": "_co=ca;\n_l=fr;\n{\n { co = ca & l = fr } | co = fr?\n support_number=14161234567\n /?\n support_number=441270123456\n}",
652
- "minimised_modl": "_co=ca;_l=fr;{{co=ca&l=fr}|co=fr?support_number=14161234567/?support_number=441270123456}",
653
- "expected_output": "{\n \"support_number\" : 14161234567\n}\n"
654
- }, {
655
- "input": "_input=\"hi apple ios\";\n{\n {input=*apple*ios*}?\n support_number=441270123456\n /?\n support_number=International Clients:14161234567\n}",
656
- "minimised_modl": "_input=hi apple ios;{{input=*apple*ios*}?support_number=441270123456/?support_number=International Clients:14161234567}",
657
- "expected_output": "{\n \"support_number\" : 441270123456\n}\n"
658
- }, {
659
- "input": "_input=\"An iOS string\";\n{\n {input=*iOS*}?\n support_number=441270123456\n /?\n support_number=International Clients:14161234567\n}",
660
- "minimised_modl": "_input=An iOS string;{{input=*iOS*}?support_number=441270123456/?support_number=International Clients:14161234567}",
661
- "expected_output": "{\n \"support_number\" : 441270123456\n}\n"
662
- }, {
663
- "input": "_input=\"An iOS string\";\n{\n !{input=iOS*}?\n support_number=441270123456\n /?\n support_number=International Clients:14161234567\n}",
664
- "minimised_modl": "_input=An iOS string;{!{input=iOS*}?support_number=441270123456/?support_number=International Clients:14161234567}",
665
- "expected_output": "{\n \"support_number\" : 441270123456\n}\n"
666
- }, {
667
- "input": "_number=42;\n{\n {number>41}?\n support_number=441270123456\n /?\n support_number=International Clients:14161234567\n}",
668
- "minimised_modl": "_number=42;{{number>41}?support_number=441270123456/?support_number=International Clients:14161234567}",
669
- "expected_output": "{\n \"support_number\" : 441270123456\n}\n"
670
- }, {
671
- "input": "_co=ca;\n{\n co = fr?\n support_number=14161234567\n /?\n support_number=441270123456\n}",
672
- "minimised_modl": "_co=ca;{co=fr?support_number=14161234567/?support_number=441270123456}",
673
- "expected_output": "{\n \"support_number\" : 441270123456\n}\n"
674
- }, {
675
- "input": "_country=gb;\n{\n country=us/gb/au?\n support_number=441270123456\n /?\n support_number=International Clients:14161234567\n}",
676
- "minimised_modl": "_country=gb;{country=us/gb/au?support_number=441270123456/?support_number=International Clients:14161234567}",
677
- "expected_output": "{\n \"support_number\" : 441270123456\n}\n"
678
- }, {
679
- "input": "_test=gb;\nresult={test=gb/au?No/?Yes}",
680
- "minimised_modl": "_test=gb;result={test=gb/au?No/?Yes}",
681
- "expected_output": "{\n \"result\" : \"No\"\n}\n"
682
- }, {
683
- "input": "_number=42;\n{\n !{number>41}?\n support_number=441270123456\n /?\n support_number=International Clients:14161234567\n}",
684
- "minimised_modl": "_number=42;{!{number>41}?support_number=441270123456/?support_number=International Clients:14161234567}",
685
- "expected_output": "{\n \"support_number\" : [ \"International Clients\", 14161234567 ]\n}\n"
686
- }, {
687
- "input": "_country=gb;\n{\n !{country=us/gb/au}?\n support_number=441270123456\n /?\n support_number=International Clients:14161234567\n}",
688
- "minimised_modl": "_country=gb;{!{country=us/gb/au}?support_number=441270123456/?support_number=International Clients:14161234567}",
689
- "expected_output": "{\n \"support_number\" : [ \"International Clients\", 14161234567 ]\n}\n"
690
- }, {
691
- "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!",
692
- "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!",
693
- "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"
694
- }, {
695
- "input": "_var=2;\n*L=\"http://s3-eu-west-1.amazonaws.com/modltestfiles/testing.txt!\";\nprint=%update_date\n",
696
- "minimised_modl": "_var=2;*L=http~://s3-eu-west-1.amazonaws.com/modltestfiles/testing.txt!;print=%update_date",
697
- "expected_output": "{\n \"print\" : \"20180921 08:20 2\"\n}\n"
698
- }, {
699
- "input": "_T=grammar_tests/demo;\n*L=`%T`_config",
700
- "minimised_modl": "_T=grammar_tests/demo;*L=`%T`_config",
701
- "expected_output": "null"
702
- }, {
703
- "input": "*l=grammar_tests/1;*L=grammar_tests/1;a=1",
704
- "minimised_modl": "*l=grammar_tests/1;*L=grammar_tests/1;a=1",
705
- "expected_output": "{\n \"a\" : 1\n}\n"
706
- }, {
707
- "input": "*l=grammar_tests/1;*l=grammar_tests/1;a=1",
708
- "minimised_modl": "*L=grammar_tests/1;*l=grammar_tests/1;a=1",
709
- "expected_output": "{\n \"a\" : 1\n}\n"
710
- }, {
711
- "input": "*L=grammar_tests/1:grammar_tests/2:grammar_tests/3;\nthe_number=%number",
712
- "minimised_modl": "*L=grammar_tests/1:grammar_tests/2:grammar_tests/3;the_number=%number",
713
- "expected_output": "{\n \"the_number\" : 3\n}\n"
714
- }, {
715
- "input": "*L=grammar_tests/1:grammar_tests/2:grammar_tests/3:grammar_tests/1;\nthe_number=%number",
716
- "minimised_modl": "*L=grammar_tests/1:grammar_tests/2:grammar_tests/3:grammar_tests/1;the_number=%number",
717
- "expected_output": "{\n \"the_number\" : 1\n}\n"
718
- }, {
719
- "input": "*L[grammar_tests/1;grammar_tests/2;grammar_tests/3;grammar_tests/1];\nthe_number=%number",
720
- "minimised_modl": "*L=grammar_tests/1:grammar_tests/2:grammar_tests/3:grammar_tests/1;the_number=%number",
721
- "expected_output": "{\n \"the_number\" : 1\n}\n"
722
- }, {
723
- "input": "*L=grammar_tests/a:grammar_tests/b:grammar_tests/c;\nvar=%var",
724
- "minimised_modl": "*L=grammar_tests/a:grammar_tests/b:grammar_tests/c;var=%var",
725
- "expected_output": "{\n \"var\" : \"abc\"\n}\n"
726
- }, {
727
- "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!",
728
- "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!",
729
- "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"
730
- }, {
731
- "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",
732
- "minimised_modl": "_c=us;_l=en;*L=grammar_tests/import_config.modl;country=%c;language=%l;time_zone=%tz",
733
- "expected_output": "[ {\n \"country\" : \"us\"\n}, {\n \"language\" : \"en\"\n}, {\n \"time_zone\" : \"EST\"\n} ]\n"
734
- }, {
735
- "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!",
736
- "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!",
737
- "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"
738
- }, {
739
- "input": "o=[test;test;t=Customer Service:44123]",
740
- "minimised_modl": "o[test;test;t=Customer Service:44123]",
741
- "expected_output": "{\n \"o\" : [ \"test\", \"test\", {\n \"t\" : [ \"Customer Service\", 44123 ]\n } ]\n}\n"
742
- }, {
743
- "input": "test[number=1;number=2;number=3]",
744
- "minimised_modl": "test[number=1;number=2;number=3]",
745
- "expected_output": "{\n \"test\" : [ {\n \"number\" : 1\n }, {\n \"number\" : 2\n }, {\n \"number\" : 3\n } ]\n}\n"
746
- }, {
747
- "input": "test(one=1;two=2;three=3)",
748
- "minimised_modl": "test(one=1;two=2;three=3)",
749
- "expected_output": "{\n \"test\" : {\n \"one\" : 1,\n \"two\" : 2,\n \"three\" : 3\n }\n}\n"
750
- }, {
751
- "input": "test=test",
752
- "minimised_modl": "test=test",
753
- "expected_output": "{\n \"test\" : \"test\"\n}\n"
754
- }, {
755
- "input": "one=1;two=2;three=3",
756
- "minimised_modl": "one=1;two=2;three=3",
757
- "expected_output": "[ {\n \"one\" : 1\n}, {\n \"two\" : 2\n}, {\n \"three\" : 3\n} ]\n"
758
- }, {
759
- "input": "[o(n=test);o(n=test2)]",
760
- "minimised_modl": "[o(n=test);o(n=test2)]",
761
- "expected_output": "[ {\n \"o\" : {\n \"n\" : \"test\"\n }\n}, {\n \"o\" : {\n \"n\" : \"test2\"\n }\n} ]\n"
762
- }, {
763
- "input": "R=0;\nnumber=1;number=2;number=3",
764
- "minimised_modl": "R=0;number=1;number=2;number=3",
765
- "expected_output": "[ {\n \"R\" : 0\n}, {\n \"number\" : 1\n}, {\n \"number\" : 2\n}, {\n \"number\" : 3\n} ]\n"
766
- }, {
767
- "input": "test=(one=1)",
768
- "minimised_modl": "test(one=1)",
769
- "expected_output": "{\n \"test\" : {\n \"one\" : 1\n }\n}\n"
770
- }, {
771
- "input": "test(one=1)",
772
- "minimised_modl": "test(one=1)",
773
- "expected_output": "{\n \"test\" : {\n \"one\" : 1\n }\n}\n"
774
- }, {
775
- "input": "test=[1;2;3]",
776
- "minimised_modl": "test=1:2:3",
777
- "expected_output": "{\n \"test\" : [ 1, 2, 3 ]\n}\n"
778
- }, {
779
- "input": "test[1;2;3]",
780
- "minimised_modl": "test=1:2:3",
781
- "expected_output": "{\n \"test\" : [ 1, 2, 3 ]\n}\n"
782
- }, {
783
- "input": "o(n=Tesco;s=Every Little Helps)",
784
- "minimised_modl": "o(n=Tesco;s=Every Little Helps)",
785
- "expected_output": "{\n \"o\" : {\n \"n\" : \"Tesco\",\n \"s\" : \"Every Little Helps\"\n }\n}\n"
786
- }, {
787
- "input": "o(n=test)",
788
- "minimised_modl": "o(n=test)",
789
- "expected_output": "{\n \"o\" : {\n \"n\" : \"test\"\n }\n}\n"
790
- }, {
791
- "input": "o(n=test)\n",
792
- "minimised_modl": "o(n=test)",
793
- "expected_output": "{\n \"o\" : {\n \"n\" : \"test\"\n }\n}\n"
794
- }, {
795
- "input": "o(\nn=test\n)",
796
- "minimised_modl": "o(n=test)",
797
- "expected_output": "{\n \"o\" : {\n \"n\" : \"test\"\n }\n}\n"
798
- }, {
799
- "input": "o(n=test)",
800
- "minimised_modl": "o(n=test)",
801
- "expected_output": "{\n \"o\" : {\n \"n\" : \"test\"\n }\n}\n"
802
- }, {
803
- "input": "o(n=test);\no(n=test2)",
804
- "minimised_modl": "o(n=test);o(n=test2)",
805
- "expected_output": "[ {\n \"o\" : {\n \"n\" : \"test\"\n }\n}, {\n \"o\" : {\n \"n\" : \"test2\"\n }\n} ]\n"
806
- }, {
807
- "input": "o(n=test);o(n=test2)",
808
- "minimised_modl": "o(n=test);o(n=test2)",
809
- "expected_output": "[ {\n \"o\" : {\n \"n\" : \"test\"\n }\n}, {\n \"o\" : {\n \"n\" : \"test2\"\n }\n} ]\n"
810
- }, {
811
- "input": "o=[test;test]",
812
- "minimised_modl": "o=test:test",
813
- "expected_output": "{\n \"o\" : [ \"test\", \"test\" ]\n}\n"
814
- }, {
815
- "input": "o=test",
816
- "minimised_modl": "o=test",
817
- "expected_output": "{\n \"o\" : \"test\"\n}\n"
818
- }, {
819
- "input": "o=[1;2]",
820
- "minimised_modl": "o=1:2",
821
- "expected_output": "{\n \"o\" : [ 1, 2 ]\n}\n"
822
- }, {
823
- "input": "o=[test1;test2]",
824
- "minimised_modl": "o=test1:test2",
825
- "expected_output": "{\n \"o\" : [ \"test1\", \"test2\" ]\n}\n"
826
- }, {
827
- "input": "o(t=test1;t2=test2)",
828
- "minimised_modl": "o(t=test1;t2=test2)",
829
- "expected_output": "{\n \"o\" : {\n \"t\" : \"test1\",\n \"t2\" : \"test2\"\n }\n}\n"
830
- }, {
831
- "input": "o(t(a=test;b=test2);t2(c=test;d=test2))",
832
- "minimised_modl": "o(t(a=test;b=test2);t2(c=test;d=test2))",
833
- "expected_output": "{\n \"o\" : {\n \"t\" : {\n \"a\" : \"test\",\n \"b\" : \"test2\"\n },\n \"t2\" : {\n \"c\" : \"test\",\n \"d\" : \"test2\"\n }\n }\n}"
834
- }, {
835
- "input": "o=1:2::4:5",
836
- "minimised_modl": "5",
837
- "expected_output": "{\n \"o\" : [ 1, 2, null, 4, 5 ]\n}"
838
- }, {
839
- "input": "o=[1;2;;4;5]",
840
- "minimised_modl": "o=1:2::4:5",
841
- "expected_output": "{\n \"o\" : [ 1, 2, null, 4, 5 ]\n}"
842
- }, {
843
- "input": "o=[1;\n2;\n\n3;\n4;\n5]",
844
- "minimised_modl": "o=1:2:3:4:5",
845
- "expected_output": "{\n \"o\" : [ 1, 2, 3, 4, 5 ]\n}"
846
- }, {
847
- "input": "o=[1 2 3 4 5]",
848
- "minimised_modl": "o=1 2 3 4 5",
849
- "expected_output": "{\n \"o\" : [ \"1 2 3 4 5\" ]\n}"
850
- }, {
851
- "input": "o=`ok`",
852
- "minimised_modl": "o=`ok`",
853
- "expected_output": "{\n \"o\" : \"ok\"\n}"
854
- }, {
855
- "input": "o=``",
856
- "minimised_modl": "o=``",
857
- "expected_output": "{\n \"o\" : \"\"\n}"
858
- }, {
859
- "input": "_test=(\n numbers=[[1;2;3;4;5];[6;7;8;9;10]]\n);\n \ntesting=%test.numbers.0.0",
860
- "minimised_modl": "_test=(numbers=[[1;2;3;4;5];[6;7;8;9;10]]);testing=%test.numbers.0.0",
861
- "expected_output": "{\n \"testing\" : 1\n}"
862
- }, {
863
- "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",
864
- "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",
865
- "expected_output": "{\n \"testing\" : \"this is a string that includes a reference with a letter s after it 1s\"\n}"
866
- }, {
867
- "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",
868
- "minimised_modl": "_test=(numbers=(v=TEST));testing=this is a string that includes extra transforms for the value `%test.numbers.v.d`_value",
869
- "expected_output": "{\n \"testing\" : \"this is a string that includes extra transforms for the value test_value\"\n}"
870
- }, {
871
- "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",
872
- "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",
873
- "expected_output": "{\n \"testing\" : \"this is a string that includes extra transforms for the value test2_value\"\n}"
874
- }, {
875
- "input": "_test=(\n first=(\"v1\"=one);\n second=(\"v2\"=two:three)\n);\n \ntesting = \"`%test.second.v2.1`\"",
876
- "minimised_modl": "_test=(first=(v1=one);second=(v2=two:three));testing=`%test.second.v2.1`",
877
- "expected_output": "{\n \"testing\" : \"three\"\n}\n"
878
- }, {
879
- "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`\"",
880
- "minimised_modl": "_test=(first=(v1=[one]);second=(v2=two:three));testing=`%test.first.v1.0``%test.second.v2.0``%test.second.v2.1`",
881
- "expected_output": "{\n \"testing\" : \"onetwothree\"\n}\n"
882
- }, {
883
- "input": "_test=(\n first=(\"v1\"=(one=(two=three)))\n);\n \ntesting = \"`%test.first.v1.one.two`\"",
884
- "minimised_modl": "_test=(first=(v1=(one=(two=three))));testing=`%test.first.v1.one.two`",
885
- "expected_output": "{\n \"testing\" : \"three\"\n}\n"
886
- },
887
- {"input": "b=2;c=2;d=2;e=2;a={{b=c & d=e}?v1:v2:v3/?v4:v5:v6}",
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})}",
749
+ "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",
804
+ "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",
883
+ "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}",
888
1116
  "minimised_modl": "b=2;c=2;d=2;e=2;a={{b=c & d=e}?v1:v2:v3/?v4:v5:v6}",
889
- "expected_output": "[{\"b\": 2},{\"c\": 2},{\"d\": 2},{\"e\": 2}, {\"a\": [\"v1\",\"v2\",\"v3\"]}]"},
890
-
891
- {"input" : "o=1:2:3:4:5",
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",
892
1121
  "minimised_modl" : "o=1:2:3:4:5",
893
- "expected_output" : "{\n \"o\" : [ 1, 2, 3, 4, 5 ]\n}"
1122
+ "expected_output" : "{\n \"o\" : [ 1, 2, 3, 4, 5 ]\n}",
1123
+ "tested_features":["nbArray"]
894
1124
  },
895
1125
  {"input" : "o=1:2::4:5",
896
1126
  "minimised_modl" : "o=1:2::4:5",
897
- "expected_output" : "{\n \"o\" : [ 1, 2, null, 4, 5 ]\n}"
1127
+ "expected_output" : "{\n \"o\" : [ 1, 2, null, 4, 5 ]\n}",
1128
+ "tested_features":["nbArray", "null"]
898
1129
  },
899
- {"input" : "o=[1;2;3;4;5]",
1130
+ { "input" : "o=[1;2;3;4;5]",
900
1131
  "minimised_modl" : "o=[1;2;3;4;5]",
901
- "expected_output" : "{\n \"o\" : [ 1, 2, 3, 4, 5 ]\n}"
1132
+ "expected_output" : "{\n \"o\" : [ 1, 2, 3, 4, 5 ]\n}",
1133
+ "tested_features":["array"]
902
1134
  },
903
1135
  {"input" : "o=[1;2;;4;5]",
904
1136
  "minimised_modl" : "o=[1;2;;4;5]",
905
- "expected_output" : "{\n \"o\" : [ 1, 2, null, 4, 5 ]\n}"
1137
+ "expected_output" : "{\n \"o\" : [ 1, 2, null, 4, 5 ]\n}",
1138
+ "tested_features":["array", "null"]
906
1139
  },
907
- {
908
- "input": "o=[1;\n2;\n3;\n4;\n5]",
1140
+ { "input": "o=[1;\n2;\n3;\n4;\n5]",
909
1141
  "minimised_modl" : "o=[1\n2\n3\n4\n5]",
910
1142
  "expected_output" : "{\n \"o\" : [ 1, 2, 3, 4, 5 ]\n}"
911
1143
  },
912
- {
913
- "input": "o=[1;\n2;\n\n3;\n4;\n5]",
1144
+ { "input": "o=[1;\n2;\n\n3;\n4;\n5]",
914
1145
  "minimised_modl" : "o=[1\n2\n\n3\n4\n5]",
915
- "expected_output" : "{\n \"o\" : [ 1, 2, 3, 4, 5 ]\n}"
1146
+ "expected_output" : "{\n \"o\" : [ 1, 2, 3, 4, 5 ]\n}",
1147
+ "tested_features":["array"]
916
1148
  },
917
- {"input" : "o=[1 2 3 4 5]",
1149
+ { "input" : "o=[1 2 3 4 5]",
918
1150
  "minimised_modl" : "o=[1 2 3 4 5]",
919
- "expected_output" : "{\n \"o\" : [ \"1 2 3 4 5\" ]\n}"
1151
+ "expected_output" : "{\n \"o\" : [ \"1 2 3 4 5\" ]\n}",
1152
+ "tested_features":["array"]
920
1153
  },
921
- {"input" : "o=`ok`",
1154
+ { "input" : "o=`ok`",
922
1155
  "minimised_modl" : "o=ok",
923
- "expected_output" : "{\n \"o\" : \"ok\"}"
1156
+ "expected_output" : "{\n \"o\" : \"ok\"}",
1157
+ "tested_features":["pair", "graves"]
924
1158
  },
925
- {"input" : "o=``",
1159
+ { "input" : "o=``",
926
1160
  "minimised_modl" : "o=``",
927
- "expected_output" : "{\n \"o\" : \"\"\n}"
1161
+ "expected_output" : "{\n \"o\" : \"\"\n}",
1162
+ "tested_features":["pair", "graves"]
928
1163
  },
929
- {"input" : "o=\"ok\"",
1164
+ { "input" : "o=\"ok\"",
930
1165
  "minimised_modl" : "o=ok",
931
- "expected_output" : "{\n \"o\" : \"ok\"}"
1166
+ "expected_output" : "{\n \"o\" : \"ok\"}",
1167
+ "tested_features":["pair"]
932
1168
  },
933
- {"input" : "o=\"\"",
1169
+ { "input" : "o=\"\"",
934
1170
  "minimised_modl" : "o=\"\"",
935
- "expected_output" : "{\n \"o\" : \"\"\n}"
1171
+ "expected_output" : "{\n \"o\" : \"\"\n}",
1172
+ "tested_features":["pair"]
936
1173
  },
937
- {
938
- "input": "_test=( numbers=[[1;2;3;4;5];[6;7;8;9;10]]\n);\n \ntesting=%test.numbers.0.0",
1174
+ { "input": "_test=( numbers=[[1;2;3;4;5];[6;7;8;9;10]]\n);\n \ntesting=%test.numbers.0.0",
939
1175
  "minimised_modl" : "_test=(numbers=[[1;2;3;4;5];[6;7;8;9;10]]);testing=%test.numbers.0.0",
940
1176
  "expected_output" : "{\"testing\":1}"
941
1177
  },
942
- {
943
- "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",
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",
944
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",
945
- "expected_output" : "{\"testing\":\"this is a string that includes a reference with a letter s after it 1s\"}"
1180
+ "expected_output" : "{\"testing\":\"this is a string that includes a reference with a letter s after it 1s\"}",
1181
+ "tested_features":["object_ref"]
946
1182
  },
947
- {
948
- "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",
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",
949
1184
  "minimised_modl" : "_test=(numbers=(\"v\"=TEST));testing = this is a string that includes extra transforms for the value `%test.numbers.v.d`_value",
950
- "expected_output" : "{\"testing\":\"this is a string that includes extra transforms for the value test_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"]
951
1187
  },
952
- {
953
- "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",
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",
954
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",
955
- "expected_output" : "{\"testing\":\"this is a string that includes extra transforms for the value test2_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"]
956
1192
  },
957
- {
958
- "input": "_test=(\n first=(\"v1\"=one);\n second=(\"v2\"=two:three)\n);\n \ntesting = \"`%test.second.v2.1`\"",
1193
+ { "input": "_test=(\n first=(\"v1\"=one);\n second=(\"v2\"=two:three)\n);\n \ntesting = \"`%test.second.v2.1`\"",
959
1194
  "minimised_modl" : "_test=(first=(\"v1\"=one);second=(\"v2\"=two:three));testing = \"`%test.second.v2.1`\"",
960
- "expected_output" : "{\"testing\":\"three\"}"
1195
+ "expected_output" : "{\"testing\":\"three\"}",
1196
+ "tested_features":["object_ref", "graves"]
961
1197
  },
962
- {
963
- "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`\"",
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`\"",
964
1199
  "minimised_modl" : "_test=(first=(\"v1\"=[one]);second=(\"v2\"=two:three));testing = \"`%test.first.v1.0``%test.second.v2.0``%test.second.v2.1`\"",
965
- "expected_output" : "{\"testing\":\"onetwothree\"}"
1200
+ "expected_output" : "{\"testing\":\"onetwothree\"}",
1201
+ "tested_features":["object_ref"]
966
1202
  },
967
- {
968
- "input": "_test=(\n first=(\"v1\"=(one=(two=three)))\n);\n \ntesting = \"`%test.first.v1.one.two`\"",
1203
+ { "input": "_test=(\n first=(\"v1\"=(one=(two=three)))\n);\n \ntesting = \"`%test.first.v1.one.two`\"",
969
1204
  "minimised_modl" : "_test=(first=(\"v1\"=(one=(two=three))));testing = \"`%test.first.v1.one.two`\"",
970
- "expected_output" : "{\"testing\":\"three\"}"
1205
+ "expected_output" : "{\"testing\":\"three\"}",
1206
+ "tested_features":["object_ref"]
971
1207
  },
972
- {
973
- "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}",
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}",
974
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}",
975
- "expected_output": "[{\"tony\": \"hungry\"},{\"needs_food_1\": true},{\"needs_food_2\": true},{\"needs_food_3\": true},{\"needs_food_3\": true}]"
976
-
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"]
977
1212
  },
978
- {
979
- "input": "_c=de;\nresult={c!=de/at?German or Austrian/?Other}",
1213
+ { "input": "_c=de;\nresult={c!=de/at?German or Austrian/?Other}",
980
1214
  "minimised_modl": "_c=de\nresult={c!=de/at?German or Austrian/?Other}",
981
- "expected_output": "{\"result\":\"Other\"}"},
982
- {
983
- "input": "_test = 1;\nresult={!test!=1?one/?Other}",
1215
+ "expected_output": "{\"result\":\"Other\"}",
1216
+ "tested_features":["object_ref", "conditional"]
1217
+ },
1218
+ { "input": "_test = 1;\nresult={!test!=1?one/?Other}",
984
1219
  "minimised_modl": "_test = 1\nresult={!test!=1?one/?Other}",
985
- "expected_output": "{\"result\":\"one\"}"},
986
- {"input": "x=[1;2:3:4]",
1220
+ "expected_output": "{\"result\":\"one\"}",
1221
+ "tested_features":["object_ref", "conditional"]
1222
+ },
1223
+ { "input": "x=[1;2:3:4]",
987
1224
  "minimised_modl": "x=[1;2:3:4]",
988
- "expected_output": "{\"x\": [1,[2,3,4]]}"},
989
- {
990
- "input": "_x=[1;2:3:4];\na=%x.1.1",
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",
991
1229
  "minimised_modl": "_x=[1;2:3:4]\na=%x.1.1",
992
- "expected_output": "{\"a\":3}"},
993
- {"input": "x=[1;;;;;;;2:::::::::3;;;;;;;;;;4:::::::::5]",
1230
+ "expected_output": "{\"a\":3}",
1231
+ "tested_features":["object_ref"]
1232
+ },
1233
+ { "input": "x=[1;;;;;;;2:::::::::3;;;;;;;;;;4:::::::::5]",
994
1234
  "minimised_modl": "x=[1;;;;;;;2:::::::::3;;;;;;;;;;4:::::::::5]",
995
- "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] ]}"},
996
- {"input": "*LOAD=\"http://modules.num.uk/1.txt\";o=Tesco:Every Little Helps:[t=Customer Service:0845555555];",
997
- "minimised_modl": "*LOAD=\"http://modules.num.uk/1.txt\";o=Tesco:Every Little Helps:[t=Customer Service:0845555555];",
998
- "expected_output": "{\"organisation\":{\"name\":\"Tesco\",\"slogan\":\"Every Little Helps\",\"objects\":[{\"telephone\":{\"description\":\"Customer Service\",\"value\":\"0845555555\",\"object_type\":\"media\",\"object_display_name\":\"Telephone\",\"description_default\":\"Call\",\"prefix\":\"tel://\",\"media_type\":\"core\"}}],\"object_type\":\"entity\",\"object_display_name\":\"Organisation\",\"description_default\":\"View Organisation\"}}"}
999
- ]
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",
1250
+ "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",
1255
+ "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",
1260
+ "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",
1265
+ "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",
1270
+ "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)",
1275
+ "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",
1290
+ "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",
1295
+ "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",
1300
+ "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",
1305
+ "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",
1310
+ "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",
1315
+ "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",
1325
+ "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",
1330
+ "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)",
1335
+ "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]",
1340
+ "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",
1360
+ "expected_output": "{\n \"a\": \"EXAMPLE.nonsense.s\"\n}",
1361
+ "tested_features":["object_ref"]
1362
+ }
1363
+ ]