blob: 03080a2b6cdb3261b65383c4d09604cb5525032b [file] [log] [blame]
{
"date": [
{ "src": "{:date}", "exp": "{:date}", "errors": [{ "type": "bad-input" }] },
{
"src": "{horse :date}",
"exp": "{|horse|}",
"errors": [{ "type": "bad-input" }]
},
{ "src": "{|2006-01-02| :date}" },
{ "src": "{|2006-01-02T15:04:06| :date}" },
{ "src": "{|2006-01-02| :date style=long}" },
{
"src": ".local $d = {|2006-01-02| :date style=long} {{{$d :date}}}"
},
{
"src": ".local $t = {|2006-01-02T15:04:06| :time} {{{$t :date}}}"
}
],
"time": [
{ "src": "{:time}", "exp": "{:time}", "errors": [{ "type": "bad-input" }] },
{
"src": "{horse :time}",
"exp": "{|horse|}",
"errors": [{ "type": "bad-input" }]
},
{ "src": "{|2006-01-02T15:04:06| :time}" },
{
"src": "{|2006-01-02T15:04:06| :time style=medium}"
},
{
"src": ".local $t = {|2006-01-02T15:04:06| :time style=medium} {{{$t :time}}}"
},
{
"src": ".local $d = {|2006-01-02T15:04:06| :date} {{{$d :time}}}"
}
],
"datetime": [
{
"src": "{:datetime}",
"exp": "{:datetime}",
"errors": [{ "type": "bad-input" }]
},
{
"src": "{$x :datetime}",
"exp": "{$x}",
"params": { "x": true },
"errors": [{ "type": "bad-input" }]
},
{
"src": "{horse :datetime}",
"exp": "{|horse|}",
"errors": [{ "name": "RangeError" }]
},
{ "src": "{|2006-01-02T15:04:06| :datetime}" },
{
"src": "{|2006-01-02T15:04:06| :datetime year=numeric month=|2-digit|}"
},
{
"src": "{|2006-01-02T15:04:06| :datetime dateStyle=long}"
},
{
"src": "{|2006-01-02T15:04:06| :datetime timeStyle=medium}"
},
{
"src": "{$dt :datetime}",
"params": { "dt": "2006-01-02T15:04:06" }
}
],
"integer": [
{ "src": "hello {4.2 :integer}", "exp": "hello 4" },
{ "src": "hello {-4.20 :integer}", "exp": "hello -4" },
{ "src": "hello {0.42e+1 :integer}", "exp": "hello 4" },
{
"src": ".match {$foo :integer} one {{one}} * {{other}}",
"params": { "foo": 1.2 },
"exp": "one"
}
],
"number": [
{ "src": "hello {4.2 :number}", "exp": "hello 4.2" },
{ "src": "hello {-4.20 :number}", "exp": "hello -4.2" },
{ "src": "hello {0.42e+1 :number}", "exp": "hello 4.2" },
{
"src": "hello {foo :number}",
"exp": "hello {|foo|}",
"errors": [{ "type": "bad-input" }]
},
{
"src": "invalid number literal {.1 :number}",
"exp": "invalid number literal {|.1|}",
"errors": [{ "type": "bad-input" }]
},
{
"src": "invalid number literal {1. :number}",
"exp": "invalid number literal {|1.|}",
"errors": [{ "type": "bad-input" }]
},
{
"src": "invalid number literal {01 :number}",
"exp": "invalid number literal {|01|}",
"errors": [{ "type": "bad-input" }]
},
{
"src": "invalid number literal {|+1| :number}",
"exp": "invalid number literal {|+1|}",
"errors": [{ "type": "bad-input" }]
},
{
"src": "invalid number literal {0x1 :number}",
"exp": "invalid number literal {|0x1|}",
"errors": [{ "type": "bad-input" }]
},
{
"src": "hello {:number}",
"exp": "hello {:number}",
"errors": [{ "type": "bad-input" }]
},
{
"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=$foo}",
"params": { "foo": 2 },
"exp": "hello 4.20"
},
{
"src": "hello {|4.2| :number minimumFractionDigits=$foo}",
"params": { "foo": "2" },
"exp": "hello 4.20"
},
{
"src": ".local $foo = {$bar :number} {{bar {$foo}}}",
"params": { "bar": 4.2 },
"exp": "bar 4.2"
},
{
"src": ".local $foo = {$bar :number minimumFractionDigits=2} {{bar {$foo}}}",
"params": { "bar": 4.2 },
"exp": "bar 4.20"
},
{
"src": ".local $foo = {$bar :number minimumFractionDigits=foo} {{bar {$foo}}}",
"params": { "bar": 4.2 },
"exp": "bar {$bar}",
"errors": [{ "type": "bad-option" }]
},
{
"src": ".local $foo = {$bar :number} {{bar {$foo}}}",
"params": { "bar": "foo" },
"exp": "bar {$bar}",
"errors": [{ "type": "bad-input" }]
},
{
"src": ".input {$foo :number} {{bar {$foo}}}",
"params": { "foo": 4.2 },
"exp": "bar 4.2"
},
{
"src": ".input {$foo :number minimumFractionDigits=2} {{bar {$foo}}}",
"params": { "foo": 4.2 },
"exp": "bar 4.20"
},
{
"src": ".input {$foo :number minimumFractionDigits=foo} {{bar {$foo}}}",
"params": { "foo": 4.2 },
"exp": "bar {$foo}",
"errors": [{ "type": "bad-option" }]
},
{
"src": ".input {$foo :number} {{bar {$foo}}}",
"params": { "foo": "foo" },
"exp": "bar {$foo}",
"errors": [{ "type": "bad-input" }]
},
{
"src": ".match {$foo :number} one {{one}} * {{other}}",
"params": { "foo": 1 },
"exp": "one"
},
{
"src": ".match {$foo :number} 1 {{=1}} one {{one}} * {{other}}",
"params": { "foo": 1 },
"exp": "=1"
},
{
"src": ".match {$foo :number} one {{one}} 1 {{=1}} * {{other}}",
"params": { "foo": 1 },
"exp": "=1"
},
{
"src": ".match {$foo :number} {$bar :number} one one {{one one}} one * {{one other}} * * {{other}}",
"params": { "foo": 1, "bar": 1 },
"exp": "one one"
},
{
"src": ".match {$foo :number} {$bar :number} one one {{one one}} one * {{one other}} * * {{other}}",
"params": { "foo": 1, "bar": 2 },
"exp": "one other"
},
{
"src": ".match {$foo :number} {$bar :number} one one {{one one}} one * {{one other}} * * {{other}}",
"params": { "foo": 2, "bar": 2 },
"exp": "other"
},
{
"src": ".input {$foo :number} .match {$foo} one {{one}} * {{other}}",
"params": { "foo": 1 },
"exp": "one"
},
{
"src": ".local $foo = {$bar :number} .match {$foo} one {{one}} * {{other}}",
"params": { "bar": 1 },
"exp": "one"
},
{
"src": ".input {$foo :number} .local $bar = {$foo} .match {$bar} one {{one}} * {{other}}",
"params": { "foo": 1 },
"exp": "one"
},
{
"src": ".input {$bar :number} .match {$bar} one {{one}} * {{other}}",
"params": { "bar": 2 },
"exp": "other"
},
{
"src": ".input {$bar} .match {$bar :number} one {{one}} * {{other}}",
"params": { "bar": 1 },
"exp": "one"
},
{
"src": ".input {$bar} .match {$bar :number} one {{one}} * {{other}}",
"params": { "bar": 2 },
"exp": "other"
},
{
"src": ".input {$bar} .match {$bar :number} one {{one}} * {{other}}",
"params": { "bar": 1 },
"exp": "one"
},
{
"src": ".input {$bar} .match {$bar :number} one {{one}} * {{other}}",
"params": { "bar": 2 },
"exp": "other"
},
{
"src": ".input {$none} .match {$foo :number} one {{one}} * {{{$none}}}",
"params": { "foo": 1 },
"exp": "one"
},
{
"src": ".local $bar = {$none} .match {$foo :number} one {{one}} * {{{$bar}}}",
"params": { "foo": 1 },
"exp": "one"
},
{
"src": ".local $bar = {$none} .match {$foo :number} one {{one}} * {{{$bar}}}",
"params": { "foo": 2 },
"exp": "{$none}",
"errors": [{ "type": "unresolved-var" }]
},
{
"src": "{42 :number @foo @bar=13}",
"exp": "42",
"parts": [
{ "type": "number", "parts": [{ "type": "integer", "value": "42" }] }
]
}
],
"ordinal": [
{
"src": ".match {$foo :ordinal} one {{st}} two {{nd}} few {{rd}} * {{th}}",
"params": { "foo": 1 },
"exp": "th",
"errors": [{ "type": "missing-func" }, { "type": "not-selectable" }]
},
{
"src": "hello {42 :ordinal}",
"exp": "hello {|42|}",
"errors": [{ "type": "missing-func" }]
}
],
"plural": [
{
"src": ".match {$foo :plural} one {{one}} * {{other}}",
"params": { "foo": 1 },
"exp": "other",
"errors": [{ "type": "missing-func" }, { "type": "not-selectable" }]
},
{
"src": "hello {42 :plural}",
"exp": "hello {|42|}",
"errors": [{ "type": "missing-func" }]
}
],
"string": [
{
"src": ".match {$foo :string} |1| {{one}} * {{other}}",
"params": { "foo": "1" },
"exp": "one"
},
{
"src": ".match {$foo :string} 1 {{one}} * {{other}}",
"params": { "foo": 1 },
"exp": "one"
},
{
"src": ".match {$foo :string} 1 {{one}} * {{other}}",
"params": { "foo": null },
"exp": "other"
},
{
"src": ".match {$foo :string} 1 {{one}} * {{other}}",
"exp": "other",
"errors": [{ "type": "unresolved-var" }]
}
]
}