Files
divkit/test_data/expression_test_data/functions_datetime.json
T
pkurchatov 707dca1658 Optimized function selection
19af4164db5de3abb680d9276fd268ec899eb7cf
2024-04-09 15:29:13 +03:00

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"
]
}
]
}