mirror of
https://github.com/divkit/divkit.git
synced 2026-05-07 20:02:32 +00:00
707dca1658
19af4164db5de3abb680d9276fd268ec899eb7cf
593 lines
15 KiB
JSON
593 lines
15 KiB
JSON
{
|
|
"cases": [
|
|
{
|
|
"name": "parseUnixTime(0) => 1970-01-01",
|
|
"expression": "@{parseUnixTime(0)}",
|
|
"expected": {
|
|
"type": "datetime",
|
|
"value": "1970-01-01 00:00:00"
|
|
},
|
|
"platforms": [
|
|
"android",
|
|
"ios",
|
|
"web"
|
|
]
|
|
},
|
|
{
|
|
"name": "parseUnixTime(1 second)",
|
|
"expression": "@{parseUnixTime(1)}",
|
|
"expected": {
|
|
"type": "datetime",
|
|
"value": "1970-01-01 00:00:01"
|
|
},
|
|
"platforms": [
|
|
"android",
|
|
"ios",
|
|
"web"
|
|
]
|
|
},
|
|
{
|
|
"name": "parseUnixTime(03h02m01s)",
|
|
"expression": "@{parseUnixTime(10921)}",
|
|
"expected": {
|
|
"type": "datetime",
|
|
"value": "1970-01-01 03:02:01"
|
|
},
|
|
"platforms": [
|
|
"android",
|
|
"ios",
|
|
"web"
|
|
]
|
|
},
|
|
{
|
|
"name": "nowLocal() > parseUnixTime(0) => true",
|
|
"expression": "@{nowLocal() > parseUnixTime(0)}",
|
|
"expected": {
|
|
"type": "boolean",
|
|
"value": true
|
|
},
|
|
"platforms": [
|
|
"android",
|
|
"ios",
|
|
"web"
|
|
]
|
|
},
|
|
{
|
|
"name": "addMillis(parseUnixTime(0), 5000) => 1970-01-01 00:00:05",
|
|
"expression": "@{addMillis(parseUnixTime(0), 5000)}",
|
|
"expected": {
|
|
"type": "datetime",
|
|
"value": "1970-01-01 00:00:05"
|
|
},
|
|
"platforms": [
|
|
"android",
|
|
"ios",
|
|
"web"
|
|
]
|
|
},
|
|
{
|
|
"name": "addMillis(parseUnixTime(0), 1000) < addMillis(parseUnixTime(0), 1001) => true",
|
|
"expression": "@{addMillis(parseUnixTime(0), 1000) < addMillis(parseUnixTime(0), 1001) }",
|
|
"expected": {
|
|
"type": "boolean",
|
|
"value": true
|
|
},
|
|
"platforms": [
|
|
"android",
|
|
"ios",
|
|
"web"
|
|
]
|
|
},
|
|
{
|
|
"name": "setYear(parseUnixTime(0), 2022) => 2022-01-01 00:00:00",
|
|
"expression": "@{setYear(parseUnixTime(0), 2022)}",
|
|
"expected": {
|
|
"type": "datetime",
|
|
"value": "2022-01-01 00:00:00"
|
|
},
|
|
"platforms": [
|
|
"android",
|
|
"ios",
|
|
"web"
|
|
]
|
|
},
|
|
{
|
|
"name": "setMonth(parseUnixTime(0), 3) => 1970-10-01 00:00:00",
|
|
"expression": "@{setMonth(parseUnixTime(0), 3)}",
|
|
"expected": {
|
|
"type": "datetime",
|
|
"value": "1970-03-01 00:00:00"
|
|
},
|
|
"platforms": [
|
|
"android",
|
|
"ios",
|
|
"web"
|
|
]
|
|
},
|
|
{
|
|
"name": "setMonth(parseUnixTime(0), 17) => error",
|
|
"expression": "@{setMonth(parseUnixTime(0), 17)}",
|
|
"expected": {
|
|
"type": "error",
|
|
"value": "Failed to evaluate [setMonth(1970-01-01 00:00:00, 17)]. Expecting month in [1..12], instead got 17."
|
|
},
|
|
"platforms": [
|
|
"android",
|
|
"web",
|
|
"ios"
|
|
]
|
|
},
|
|
{
|
|
"name": "setMonth(parseUnixTime(0), -5) => error",
|
|
"expression": "@{setMonth(parseUnixTime(0), -5)}",
|
|
"expected": {
|
|
"type": "error",
|
|
"value": "Failed to evaluate [setMonth(1970-01-01 00:00:00, -5)]. Expecting month in [1..12], instead got -5."
|
|
},
|
|
"platforms": [
|
|
"android",
|
|
"web",
|
|
"ios"
|
|
]
|
|
},
|
|
{
|
|
"name": "setDay(parseUnixTime(0), 10) => 1970-01-10 00:00:00",
|
|
"expression": "@{setDay(parseUnixTime(0), 10)}",
|
|
"expected": {
|
|
"type": "datetime",
|
|
"value": "1970-01-10 00:00:00"
|
|
},
|
|
"platforms": [
|
|
"android",
|
|
"ios",
|
|
"web"
|
|
]
|
|
},
|
|
{
|
|
"name": "setDay(setMonth(parseUnixTime(0), 2), 29) => error",
|
|
"expression": "@{setDay(setMonth(parseUnixTime(0), 2), 29)}",
|
|
"expected": {
|
|
"type": "error",
|
|
"value": "Failed to evaluate [setDay(1970-02-01 00:00:00, 29)]. Unable to set day 29 for date 1970-02-01 00:00:00."
|
|
},
|
|
"platforms": [
|
|
"android",
|
|
"web",
|
|
"ios"
|
|
]
|
|
},
|
|
{
|
|
"name": "setDay(parseUnixTime(0), 0) => error",
|
|
"expression": "@{setDay(parseUnixTime(0), 0)}",
|
|
"expected": {
|
|
"type": "error",
|
|
"value": "Failed to evaluate [setDay(1970-01-01 00:00:00, 0)]. Unable to set day 0 for date 1970-01-01 00:00:00."
|
|
},
|
|
"platforms": [
|
|
"android",
|
|
"web",
|
|
"ios"
|
|
]
|
|
},
|
|
{
|
|
"name": "setDay(parseUnixTime(0), -5) => error",
|
|
"expression": "@{setDay(parseUnixTime(0), -5)}",
|
|
"expected": {
|
|
"type": "error",
|
|
"value": "Failed to evaluate [setDay(1970-01-01 00:00:00, -5)]. Unable to set day -5 for date 1970-01-01 00:00:00."
|
|
},
|
|
"platforms": [
|
|
"android",
|
|
"web",
|
|
"ios"
|
|
]
|
|
},
|
|
{
|
|
"name": "setDay(setMonth(parseUnixTime(0), 2), -1) => 1970-01-31 00:00:00",
|
|
"expression": "@{setDay(setMonth(parseUnixTime(0), 2), -1)}",
|
|
"expected": {
|
|
"type": "datetime",
|
|
"value": "1970-01-31 00:00:00"
|
|
},
|
|
"platforms": [
|
|
"android",
|
|
"ios",
|
|
"web"
|
|
]
|
|
},
|
|
{
|
|
"name": "setHours(parseUnixTime(0), 10) => 1970-01-01 10:00:00",
|
|
"expression": "@{setHours(parseUnixTime(0), 10)}",
|
|
"expected": {
|
|
"type": "datetime",
|
|
"value": "1970-01-01 10:00:00"
|
|
},
|
|
"platforms": [
|
|
"android",
|
|
"ios",
|
|
"web"
|
|
]
|
|
},
|
|
{
|
|
"name": "setHours(parseUnixTime(0), 77) => error",
|
|
"expression": "@{setHours(parseUnixTime(0), 77)}",
|
|
"expected": {
|
|
"type": "error",
|
|
"value": "Failed to evaluate [setHours(1970-01-01 00:00:00, 77)]. Expecting hours in [0..23], instead got 77."
|
|
},
|
|
"platforms": [
|
|
"android",
|
|
"web",
|
|
"ios"
|
|
]
|
|
},
|
|
{
|
|
"name": "setHours(parseUnixTime(0), -5) => error",
|
|
"expression": "@{setHours(parseUnixTime(0), -5)}",
|
|
"expected": {
|
|
"type": "error",
|
|
"value": "Failed to evaluate [setHours(1970-01-01 00:00:00, -5)]. Expecting hours in [0..23], instead got -5."
|
|
},
|
|
"platforms": [
|
|
"android",
|
|
"web",
|
|
"ios"
|
|
]
|
|
},
|
|
{
|
|
"name": "setMinutes(parseUnixTime(0), 10) => 1970-01-01 00:10:00",
|
|
"expression": "@{setMinutes(parseUnixTime(0), 10)}",
|
|
"expected": {
|
|
"type": "datetime",
|
|
"value": "1970-01-01 00:10:00"
|
|
},
|
|
"platforms": [
|
|
"android",
|
|
"ios",
|
|
"web"
|
|
]
|
|
},
|
|
{
|
|
"name": "setMinutes(parseUnixTime(0), 77) => error",
|
|
"expression": "@{setMinutes(parseUnixTime(0), 77)}",
|
|
"expected": {
|
|
"type": "error",
|
|
"value": "Failed to evaluate [setMinutes(1970-01-01 00:00:00, 77)]. Expecting minutes in [0..59], instead got 77."
|
|
},
|
|
"platforms": [
|
|
"android",
|
|
"web",
|
|
"ios"
|
|
]
|
|
},
|
|
{
|
|
"name": "setMinutes(parseUnixTime(0), -5) => error",
|
|
"expression": "@{setMinutes(parseUnixTime(0), -5)}",
|
|
"expected": {
|
|
"type": "error",
|
|
"value": "Failed to evaluate [setMinutes(1970-01-01 00:00:00, -5)]. Expecting minutes in [0..59], instead got -5."
|
|
},
|
|
"platforms": [
|
|
"android",
|
|
"web",
|
|
"ios"
|
|
]
|
|
},
|
|
{
|
|
"name": "setSeconds(parseUnixTime(0), 10) => 1970-01-01 00:00:10",
|
|
"expression": "@{setSeconds(parseUnixTime(0), 10)}",
|
|
"expected": {
|
|
"type": "datetime",
|
|
"value": "1970-01-01 00:00:10"
|
|
},
|
|
"platforms": [
|
|
"android",
|
|
"ios",
|
|
"web"
|
|
]
|
|
},
|
|
{
|
|
"name": "setSeconds(parseUnixTime(0), 77) => error",
|
|
"expression": "@{setSeconds(parseUnixTime(0), 77)}",
|
|
"expected": {
|
|
"type": "error",
|
|
"value": "Failed to evaluate [setSeconds(1970-01-01 00:00:00, 77)]. Expecting seconds in [0..59], instead got 77."
|
|
},
|
|
"platforms": [
|
|
"android",
|
|
"web",
|
|
"ios"
|
|
]
|
|
},
|
|
{
|
|
"name": "setSeconds(parseUnixTime(0), -10) => error",
|
|
"expression": "@{setSeconds(parseUnixTime(0), -10)}",
|
|
"expected": {
|
|
"type": "error",
|
|
"value": "Failed to evaluate [setSeconds(1970-01-01 00:00:00, -10)]. Expecting seconds in [0..59], instead got -10."
|
|
},
|
|
"platforms": [
|
|
"android",
|
|
"web",
|
|
"ios"
|
|
]
|
|
},
|
|
{
|
|
"name": "setMillis(parseUnixTime(0), 2) > setMillis(parseUnixTime(0), 1) => true",
|
|
"expression": "@{setMillis(parseUnixTime(0), 2) > setMillis(parseUnixTime(0), 1)}",
|
|
"expected": {
|
|
"type": "boolean",
|
|
"value": true
|
|
},
|
|
"platforms": [
|
|
"android",
|
|
"ios",
|
|
"web"
|
|
]
|
|
},
|
|
{
|
|
"name": "setMillis(parseUnixTime(0), 80988) => error",
|
|
"expression": "@{setMillis(parseUnixTime(0), 80988)}",
|
|
"expected": {
|
|
"type": "error",
|
|
"value": "Failed to evaluate [setMillis(1970-01-01 00:00:00, 80988)]. Expecting millis in [0..999], instead got 80988."
|
|
},
|
|
"platforms": [
|
|
"android",
|
|
"web",
|
|
"ios"
|
|
]
|
|
},
|
|
{
|
|
"name": "setMillis(parseUnixTime(0), -5) => error",
|
|
"expression": "@{setMillis(parseUnixTime(0), -5)}",
|
|
"expected": {
|
|
"type": "error",
|
|
"value": "Failed to evaluate [setMillis(1970-01-01 00:00:00, -5)]. Expecting millis in [0..999], instead got -5."
|
|
},
|
|
"platforms": [
|
|
"android",
|
|
"web",
|
|
"ios"
|
|
]
|
|
},
|
|
{
|
|
"name": "getYear(setYear(parseUnixTime(0), 2022)) => 2022",
|
|
"expression": "@{getYear(setYear(parseUnixTime(0), 2022))}",
|
|
"expected": {
|
|
"type": "integer",
|
|
"value": 2022
|
|
},
|
|
"platforms": [
|
|
"android",
|
|
"ios",
|
|
"web"
|
|
]
|
|
},
|
|
{
|
|
"name": "getMonth(setMonth(parseUnixTime(0), 11)) => 11",
|
|
"expression": "@{getMonth(setMonth(parseUnixTime(0), 11))}",
|
|
"expected": {
|
|
"type": "integer",
|
|
"value": 11
|
|
},
|
|
"platforms": [
|
|
"android",
|
|
"ios",
|
|
"web"
|
|
]
|
|
},
|
|
{
|
|
"name": "getDay(setDay(parseUnixTime(0), 13)) => 13",
|
|
"expression": "@{getDay(setDay(parseUnixTime(0), 13))}",
|
|
"expected": {
|
|
"type": "integer",
|
|
"value": 13
|
|
},
|
|
"platforms": [
|
|
"android",
|
|
"ios",
|
|
"web"
|
|
]
|
|
},
|
|
{
|
|
"name": "getDayOfWeek(parseUnixTime(0)) => 4",
|
|
"expression": "@{getDayOfWeek(parseUnixTime(0))}",
|
|
"expected": {
|
|
"type": "integer",
|
|
"value": 4
|
|
},
|
|
"platforms": [
|
|
"android",
|
|
"ios",
|
|
"web"
|
|
]
|
|
},
|
|
{
|
|
"name": "getDayOfWeek(parseUnixTime(259200)) => 7",
|
|
"expression": "@{getDayOfWeek(parseUnixTime(259200))}",
|
|
"expected": {
|
|
"type": "integer",
|
|
"value": 7
|
|
},
|
|
"platforms": [
|
|
"android",
|
|
"ios",
|
|
"web"
|
|
]
|
|
},
|
|
{
|
|
"name": "getHours(setHours(parseUnixTime(0), 17)) => 17",
|
|
"expression": "@{getHours(setHours(parseUnixTime(0), 17))}",
|
|
"expected": {
|
|
"type": "integer",
|
|
"value": 17
|
|
},
|
|
"platforms": [
|
|
"android",
|
|
"ios",
|
|
"web"
|
|
]
|
|
},
|
|
{
|
|
"name": "getMinutes(setMinutes(parseUnixTime(0), 23)) => 23",
|
|
"expression": "@{getMinutes(setMinutes(parseUnixTime(0), 23))}",
|
|
"expected": {
|
|
"type": "integer",
|
|
"value": 23
|
|
},
|
|
"platforms": [
|
|
"android",
|
|
"ios",
|
|
"web"
|
|
]
|
|
},
|
|
{
|
|
"name": "getSeconds(setSeconds(parseUnixTime(0), 27)) => 27",
|
|
"expression": "@{getSeconds(setSeconds(parseUnixTime(0), 27))}",
|
|
"expected": {
|
|
"type": "integer",
|
|
"value": 27
|
|
},
|
|
"platforms": [
|
|
"android",
|
|
"ios",
|
|
"web"
|
|
]
|
|
},
|
|
{
|
|
"name": "getMillis(setMillis(parseUnixTime(0), 31)) => 31",
|
|
"expression": "@{getMillis(setMillis(parseUnixTime(0), 31))}",
|
|
"expected": {
|
|
"type": "integer",
|
|
"value": 31
|
|
},
|
|
"platforms": [
|
|
"android",
|
|
"ios",
|
|
"web"
|
|
]
|
|
},
|
|
{
|
|
"name": "getMillis(setHours(setMillis(parseUnixTime(0), 31), 17)) => 31",
|
|
"expression": "@{getMillis(setHours(setMillis(parseUnixTime(0), 31), 17))}",
|
|
"expected": {
|
|
"type": "integer",
|
|
"value": 31
|
|
},
|
|
"platforms": [
|
|
"android",
|
|
"ios",
|
|
"web"
|
|
]
|
|
},
|
|
{
|
|
"name": "formatDateAsUTC(setDay(parseUnixTime(0), 13)) => 01/01/1970 00:00:000",
|
|
"expression": "@{formatDateAsUTC(setDay(parseUnixTime(0), 13), 'dd/MM/yyyy HH:mm:SSS')}",
|
|
"expected": {
|
|
"type": "string",
|
|
"value": "13/01/1970 00:00:000"
|
|
},
|
|
"platforms": [
|
|
"android",
|
|
"ios"
|
|
]
|
|
},
|
|
{
|
|
"name": "formatDateAsUTCWithLocale(parseUnixTime(0)) => Thu, Jan 1, 70",
|
|
"expression": "@{formatDateAsUTCWithLocale(parseUnixTime(0), 'EEE, MMM d, yy', 'en-US')}",
|
|
"expected": {
|
|
"type": "string",
|
|
"value": "Thu, Jan 1, 70"
|
|
},
|
|
"platforms": [
|
|
"android",
|
|
"ios"
|
|
]
|
|
},
|
|
{
|
|
"name": "formatDateAsUTCWithLocale(parseUnixTime(0), en-US) => 12 o'clock AM",
|
|
"expression": "@{formatDateAsUTCWithLocale(parseUnixTime(0), 'hh \\'o\\'\\'clock\\' a', 'en-US')}",
|
|
"expected": {
|
|
"type": "string",
|
|
"value": "12 o'clock AM"
|
|
},
|
|
"platforms": [
|
|
"android",
|
|
"ios"
|
|
]
|
|
},
|
|
{
|
|
"name": "formatDateAsUTCWithLocale(parseUnixTime(0), en-US) => 01970 January 01 AD 12:00 AM",
|
|
"expression": "@{formatDateAsUTCWithLocale(parseUnixTime(0), 'yyyyy MMMM dd GGG hh:mm aaa', 'en-US')}",
|
|
"expected": {
|
|
"type": "string",
|
|
"value": "01970 January 01 AD 12:00 AM"
|
|
},
|
|
"platforms": [
|
|
"android",
|
|
"ios"
|
|
]
|
|
},
|
|
{
|
|
"name": "formatDateAsUTCWithLocale(parseUnixTime(0), en-US) => 0:00 AM",
|
|
"expression": "@{formatDateAsUTCWithLocale(parseUnixTime(0), 'K:mm a', 'en-US')}",
|
|
"expected": {
|
|
"type": "string",
|
|
"value": "0:00 AM"
|
|
},
|
|
"platforms": [
|
|
"android",
|
|
"ios"
|
|
]
|
|
},
|
|
{
|
|
"name": "formatDateAsUTCWithLocale(setDay(parseUnixTime(0), 13), en-US) => 1970-01-01T00:00:00.000",
|
|
"expression": "@{formatDateAsUTCWithLocale(setDay(parseUnixTime(0), 13), 'yyyy-MM-dd\\'T\\'HH:mm:ss.SSS', 'en-US')}",
|
|
"expected": {
|
|
"type": "string",
|
|
"value": "1970-01-13T00:00:00.000"
|
|
},
|
|
"platforms": [
|
|
"android",
|
|
"ios"
|
|
]
|
|
},
|
|
{
|
|
"name": "formatDateAsUTCWithLocale(parseUnixTime(0), en-US) => 1970-W01-5",
|
|
"expression": "@{formatDateAsUTCWithLocale(parseUnixTime(0), 'YYYY-\\'W\\'ww-u', 'en-US')}",
|
|
"expected": {
|
|
"type": "string",
|
|
"value": "1970-W01-5"
|
|
},
|
|
"platforms": [
|
|
"ios"
|
|
]
|
|
},
|
|
{
|
|
"name": "formatDateAsUTCWithLocale(parseUnixTime(0), ru-RU) => 01970 января 01 н. э. чт",
|
|
"expression": "@{toLowerCase(formatDateAsUTCWithLocale(parseUnixTime(0), 'yyyyy MMMM dd GGG EEE', 'ru-RU'))}",
|
|
"expected": {
|
|
"type": "string",
|
|
"value": "01970 января 01 н. э. чт"
|
|
},
|
|
"platforms": [
|
|
"android",
|
|
"ios"
|
|
]
|
|
},
|
|
{
|
|
"name": "formatDateAsUTC(parseUnixTime(0), 'dd/MM/yyyy HH:mm Z') => error",
|
|
"expression": "@{formatDateAsUTC(parseUnixTime(0), 'dd/MM/yyyy HH:mm Z')}",
|
|
"expected": {
|
|
"type": "error",
|
|
"value": "Failed to evaluate [formatDateAsUTC(1970-01-01 00:00:00, 'dd/MM/yyyy HH:mm Z')]. z/Z not supported in [dd/MM/yyyy HH:mm Z]."
|
|
},
|
|
"platforms": [
|
|
"android",
|
|
"ios"
|
|
]
|
|
}
|
|
]
|
|
}
|