{ "scenario": "Valid tests", "description": "Additional valid tests", "defaultTestProperties": { "locale": "en-US" }, "tests": [ { "src": "hello {|4.2| :number minimumFractionDigits=2}", "exp": "hello 4.20"}, { "src": "hello {|4.2| :number minimumFractionDigits = 2}", "exp": "hello 4.20" }, { "src": "hello {|4.2| :number minimumFractionDigits= 2}", "exp": "hello 4.20" }, { "src": "hello {|4.2| :number minimumFractionDigits =2}", "exp": "hello 4.20"}, { "src": "hello {|4.2| :number minimumFractionDigits=2 }", "exp": "hello 4.20"}, { "src": "hello {|4.2| :number minimumFractionDigits=2 bar=3}", "exp": "hello 4.20"}, { "src": "hello {|4.2| :number minimumFractionDigits=2 bar=3 }", "exp": "hello 4.20"}, { "src": "hello {|4.2| :number minimumFractionDigits=|2|}", "exp": "hello 4.20"}, { "src": "content -tag", "exp": "content -tag"}, { "src": "", "exp": ""}, { "src": "{|hel\\\\lo|}", "exp": "hel\\lo"}, { "src": "{|hel\\|lo|}", "exp": "hel|lo"}, { "src": "{|hel\\|\\\\lo|}", "exp": "hel|\\lo"}, { "src": "hel\\{lo", "exp": "hel{lo"}, { "src": "hel\\}lo", "exp": "hel}lo"}, { "src": "hel\\\\lo", "exp": "hel\\lo"}, { "src": "hel\\{\\\\lo", "exp": "hel{\\lo"}, { "src": "hel\\{\\}lo", "exp": "hel{}lo"}, { "src": "hello {|wo\nrld|}", "exp": "hello wo\nrld"}, { "src": "hello wo\nrld", "exp": "hello wo\nrld"}, { "src": "{#tag/} content", "exp": " content"}, { "src": "{#tag} content", "exp": " content"}, { "src": "{#tag/} {|content|}", "exp": " content"}, { "src": "{#tag} {|content|}", "exp": " content"}, { "src": "{|content|} {#tag/}", "exp": "content "}, { "src": "{|content|} {#tag}", "exp": "content "}, { "src": "{/tag} {|content|}", "exp": " content"}, { "src": "{|content|} {/tag}", "exp": "content "}, { "src": "{#tag} {|content|} {/tag}", "exp": " content "}, { "src": "{/tag} {|content|} {#tag}", "exp": " content "}, { "src": "{#tag/} {|content|} {#tag}", "exp": " content "}, { "src": "{#tag/} {|content|} {/tag}", "exp": " content "}, { "src": "{#tag foo=bar/} {|content|}", "exp": " content"}, { "src": "{#tag foo=bar} {|content|}", "exp": " content"}, { "src": "{/tag foo=bar} {|content|}", "exp": " content"}, { "src": "{#tag foo=bar} {|content|} {/tag foo=bar}", "exp": " content "}, { "src": "{/tag foo=bar} {|content|} {#tag foo=bar}", "exp": " content "}, { "src": "{#tag foo=bar /} {|content|} {#tag foo=bar}", "exp": " content "}, { "src": "{#tag foo=bar/} {|content|} {/tag foo=bar}", "exp": " content "}, { "src": "The value is {horse @horse}.", "exp": "The value is horse."}, { "src": "hello {|4.2| @number}", "exp": "hello 4.2"}, { "src": "The value is {horse @horse=cool}.", "exp": "The value is horse."}, { "src": "hello {|4.2| @number=5}", "exp": "hello 4.2"}, { "src": "{-1}", "exp": "-1"}, { "src": "{0}", "exp": "0"}, { "src": "{0.0123}", "exp": "0.0123"}, { "src": "{1.234e5}", "exp": "1.234e5", "ignoreJava": "See ICU-22810"}, { "src": "{1.234E5}", "exp": "1.234E5", "ignoreJava": "See ICU-22810"}, { "src": "{1.234E+5}", "exp": "1.234E+5", "ignoreJava": "See ICU-22810"}, { "src": "{1.234e-5}", "exp": "1.234e-5", "ignoreJava": "See ICU-22810"}, { "src": "{42e5}", "exp": "42e5", "ignoreJava": "See ICU-22810"}, { "src": "{42e0}", "exp": "42e0", "ignoreJava": "See ICU-22810"}, { "src": "{42e000}", "exp": "42e000", "ignoreJava": "See ICU-22810"}, { "src": "{42e369}", "exp": "42e369", "ignoreJava": "See ICU-22810"}, { "src": "hello {|3| :number }", "exp": "hello 3" }, { "src": "{:foo}", "expErrors": [{ "type": "unknown-function" }], "ignoreJava": "See https://github.com/unicode-org/message-format-wg/issues/782" }, { "src": "{:foo }", "expErrors": [{ "type": "unknown-function" }], "ignoreJava": "See https://github.com/unicode-org/message-format-wg/issues/782" }, { "src": "{:foo }", "expErrors": [{ "type": "unknown-function" }], "ignoreJava": "See https://github.com/unicode-org/message-format-wg/issues/782" }, { "src": "{:foo k=v}", "expErrors": [{ "type": "unknown-function" }], "ignoreJava": "See https://github.com/unicode-org/message-format-wg/issues/782" }, { "src": "{:foo k=v }", "expErrors": [{ "type": "unknown-function" }], "ignoreJava": "See https://github.com/unicode-org/message-format-wg/issues/782" }, { "src": "{:foo k1=v1 k2=v2}", "expErrors": [{ "type": "unknown-function" }], "ignoreJava": "See https://github.com/unicode-org/message-format-wg/issues/782" }, { "src": "{:foo k1=v1 k2=v2 }", "expErrors": [{ "type": "unknown-function" }], "ignoreJava": "See https://github.com/unicode-org/message-format-wg/issues/782" }, { "src": "{|3.14| }", "exp": "3.14" }, { "src": "{|3.14| }", "exp": "3.14" }, { "src": "{|3.14| :number}", "exp": "3.14" }, { "src": "{|3.14| :number }", "exp": "3.14" }, { "src": "{$bar }", "expErrors": [{ "type": "unresolved-variable" }], "ignoreJava": "See https://github.com/unicode-org/message-format-wg/issues/782" }, { "src": "{$bar }", "expErrors": [{ "type": "unresolved-variable" }], "ignoreJava": "See https://github.com/unicode-org/message-format-wg/issues/782" }, { "src": "{$bar :foo}", "expErrors": [{ "type": "unresolved-variable" }], "ignoreJava": "See https://github.com/unicode-org/message-format-wg/issues/782" }, { "src": "{$bar :foo }", "expErrors": [{ "type": "unresolved-variable" }], "ignoreJava": "See https://github.com/unicode-org/message-format-wg/issues/782" }, { "src": "{$bar-foo}", "expErrors": [{ "type": "unresolved-variable" }], "ignoreJava": "See https://github.com/unicode-org/message-format-wg/issues/782" }, { "src": ".local $foo = {|hello|} .local $foo = {$foo} {{{$foo}}}", "expErrors": [{ "type": "duplicate-declaration" }] }, { "src": "good {placeholder}", "exp": "good placeholder" }, { "src": "a\\\\qbc", "exp": "a\\qbc", "comment": "pattern -> escaped-char -> backslash backslash" }, { "comment": "message -> simple-message -> simple-start pattern -> escaped-char", "src": "\\\\", "exp": "\\" }, { "comment": "message -> simple-message -> simple-start pattern -> placeholder -> markup -> \"{\" s \"#\" identifier \"}\"", "src": "{ #a}", "exp": "" }, { "comment": "message -> simple-message -> simple-start pattern -> placeholder -> markup -> \"{\" s \"/\" identifier \"}\"", "src": "{ /a}", "exp": "" }, { "comment": "message -> complex-message -> *(declaration [s]) complex-body -> declaration complex-body -> input-declaration complex-body -> input variable-expression complex-body", "src": ".input{$x}{{}}", "exp": "" }, { "comment": "Test that escaped characters are re-escaped properly when serializing literals", "src": "{|\\}|}", "exp": "}" }, { "comment": "Test that escaped characters are re-escaped properly when serializing patterns", "src": "\\|", "exp": "|" }, { "comment": "Test that parser and serializer treat optionally-escaped characters consistently", "src" : "{{{1}|}}", "exp": "1|" }, { "comment": "Trailing whitespace after match is valid", "src": ".local $x = {1 :string} .match $x * {{}} ", "exp": "" }, { "src" : "𴢸", "exp" : "𴢸" }, { "src" : "{{􍅲}}", "exp" : "􍅲" } ] }