mirror of
https://github.com/divkit/divkit.git
synced 2026-05-07 20:02:32 +00:00
862 lines
18 KiB
JSON
862 lines
18 KiB
JSON
{
|
|
"cases": [
|
|
{
|
|
"name": "div(4, 2) => 2",
|
|
"expression": "@{div(4, 2)}",
|
|
"expected": {
|
|
"type": "integer",
|
|
"value": 2
|
|
},
|
|
"variables": [],
|
|
"platforms": [
|
|
"android",
|
|
"ios",
|
|
"web"
|
|
]
|
|
},
|
|
{
|
|
"name": "div(4000000000000000000, 2000000000) => 2000000000",
|
|
"expression": "@{div(4000000000000000000, 2000000000)}",
|
|
"expected": {
|
|
"type": "integer",
|
|
"value": 2000000000
|
|
},
|
|
"variables": [],
|
|
"platforms": [
|
|
"ios"
|
|
]
|
|
},
|
|
{
|
|
"name": "div(0, 2) => 0",
|
|
"expression": "@{div(0, 2)}",
|
|
"expected": {
|
|
"type": "integer",
|
|
"value": 0
|
|
},
|
|
"variables": [],
|
|
"platforms": [
|
|
"android",
|
|
"ios",
|
|
"web"
|
|
]
|
|
},
|
|
{
|
|
"name": "div(2, 0) => error",
|
|
"expression": "@{div(2, 0)}",
|
|
"expected": {
|
|
"type": "error",
|
|
"value": "Failed to evaluate [div(2, 0)]. Division by zero is not supported."
|
|
},
|
|
"variables": [],
|
|
"platforms": [
|
|
"android",
|
|
"ios",
|
|
"web"
|
|
]
|
|
},
|
|
{
|
|
"name": "div(1, 2) => 0",
|
|
"expression": "@{div(1, 2)}",
|
|
"expected": {
|
|
"type": "integer",
|
|
"value": 0
|
|
},
|
|
"variables": [],
|
|
"platforms": [
|
|
"android",
|
|
"ios",
|
|
"web"
|
|
]
|
|
},
|
|
{
|
|
"name": "div(1000000000, 2000000000) => 0",
|
|
"expression": "@{div(1000000000, 2000000000)}",
|
|
"expected": {
|
|
"type": "integer",
|
|
"value": 0
|
|
},
|
|
"variables": [],
|
|
"platforms": [
|
|
"ios"
|
|
]
|
|
},
|
|
{
|
|
"name": "div(-1, 2) => 0",
|
|
"expression": "@{div(-1, 2)}",
|
|
"expected": {
|
|
"type": "integer",
|
|
"value": 0
|
|
},
|
|
"variables": [],
|
|
"platforms": [
|
|
"android",
|
|
"ios",
|
|
"web"
|
|
]
|
|
},
|
|
{
|
|
"name": "div(-2, 2) => -1",
|
|
"expression": "@{div(-2, 2)}",
|
|
"expected": {
|
|
"type": "integer",
|
|
"value": -1
|
|
},
|
|
"variables": [],
|
|
"platforms": [
|
|
"android",
|
|
"ios",
|
|
"web"
|
|
]
|
|
},
|
|
{
|
|
"name": "div(2, -2) => -1",
|
|
"expression": "@{div(2, -2)}",
|
|
"expected": {
|
|
"type": "integer",
|
|
"value": -1
|
|
},
|
|
"variables": [],
|
|
"platforms": [
|
|
"android",
|
|
"ios",
|
|
"web"
|
|
]
|
|
},
|
|
{
|
|
"name": "mod(4, 2) => 0",
|
|
"expression": "@{mod(4, 2)}",
|
|
"expected": {
|
|
"type": "integer",
|
|
"value": 0
|
|
},
|
|
"variables": [],
|
|
"platforms": [
|
|
"android",
|
|
"ios",
|
|
"web"
|
|
]
|
|
},
|
|
{
|
|
"name": "mod(3, 2) => 1",
|
|
"expression": "@{mod(3, 2)}",
|
|
"expected": {
|
|
"type": "integer",
|
|
"value": 1
|
|
},
|
|
"variables": [],
|
|
"platforms": [
|
|
"android",
|
|
"ios",
|
|
"web"
|
|
]
|
|
},
|
|
{
|
|
"name": "mod(30000000000, 20000000000) => 10000000000",
|
|
"expression": "@{mod(30000000000, 20000000000)}",
|
|
"expected": {
|
|
"type": "integer",
|
|
"value": 10000000000
|
|
},
|
|
"variables": [],
|
|
"platforms": [
|
|
"ios"
|
|
]
|
|
},
|
|
{
|
|
"name": "mod(2, 0) => error",
|
|
"expression": "@{mod(2, 0)}",
|
|
"expected": {
|
|
"type": "error",
|
|
"value": "Failed to evaluate [mod(2, 0)]. Division by zero is not supported."
|
|
},
|
|
"variables": [],
|
|
"platforms": [
|
|
"android",
|
|
"ios",
|
|
"web"
|
|
]
|
|
},
|
|
{
|
|
"name": "mod(0, 2) => 0",
|
|
"expression": "@{mod(0, 2)}",
|
|
"expected": {
|
|
"type": "integer",
|
|
"value": 0
|
|
},
|
|
"variables": [],
|
|
"platforms": [
|
|
"android",
|
|
"ios",
|
|
"web"
|
|
]
|
|
},
|
|
{
|
|
"name": "mod(-3, 2) => -1",
|
|
"expression": "@{mod(-3, 2)}",
|
|
"expected": {
|
|
"type": "integer",
|
|
"value": -1
|
|
},
|
|
"variables": [],
|
|
"platforms": [
|
|
"android",
|
|
"ios",
|
|
"web"
|
|
]
|
|
},
|
|
{
|
|
"name": "mod(-30000000000, 20000000000) => -10000000000",
|
|
"expression": "@{mod(-30000000000, 20000000000)}",
|
|
"expected": {
|
|
"type": "integer",
|
|
"value": -10000000000
|
|
},
|
|
"variables": [],
|
|
"platforms": [
|
|
"ios"
|
|
]
|
|
},
|
|
{
|
|
"name": "mod(3, -2) => 1",
|
|
"expression": "@{mod(3, -2)}",
|
|
"expected": {
|
|
"type": "integer",
|
|
"value": 1
|
|
},
|
|
"variables": [],
|
|
"platforms": [
|
|
"android",
|
|
"ios",
|
|
"web"
|
|
]
|
|
},
|
|
{
|
|
"name": "mod(30000000000, -20000000000) => 10000000000",
|
|
"expression": "@{mod(30000000000, -20000000000)}",
|
|
"expected": {
|
|
"type": "integer",
|
|
"value": 10000000000
|
|
},
|
|
"variables": [],
|
|
"platforms": [
|
|
"ios"
|
|
]
|
|
},
|
|
{
|
|
"name": "mod(-3, -2) => -1",
|
|
"expression": "@{mod(-3, -2)}",
|
|
"expected": {
|
|
"type": "integer",
|
|
"value": -1
|
|
},
|
|
"variables": [],
|
|
"platforms": [
|
|
"android",
|
|
"ios",
|
|
"web"
|
|
]
|
|
},
|
|
{
|
|
"name": "mod(-30000000000, -20000000000) => -10000000000",
|
|
"expression": "@{mod(-30000000000, -20000000000)}",
|
|
"expected": {
|
|
"type": "integer",
|
|
"value": -10000000000
|
|
},
|
|
"variables": [],
|
|
"platforms": [
|
|
"ios"
|
|
]
|
|
},
|
|
{
|
|
"name": "mul(3, 2) => 6",
|
|
"expression": "@{mul(3, 2)}",
|
|
"expected": {
|
|
"type": "integer",
|
|
"value": 6
|
|
},
|
|
"variables": [],
|
|
"platforms": [
|
|
"android",
|
|
"ios",
|
|
"web"
|
|
]
|
|
},
|
|
{
|
|
"name": "mul(3000000000, 2000000000) => 6000000000000000000",
|
|
"expression": "@{mul(3000000000, 2000000000)}",
|
|
"expected": {
|
|
"type": "integer",
|
|
"value": 6000000000000000000
|
|
},
|
|
"variables": [],
|
|
"platforms": [
|
|
"ios"
|
|
]
|
|
},
|
|
{
|
|
"name": "mul(3000000000, 5000000000) => error",
|
|
"expression": "@{mul(3000000000, 5000000000)}",
|
|
"expected": {
|
|
"type": "error",
|
|
"value": "Failed to evaluate [mul(3000000000, 5000000000)]. Integer overflow."
|
|
},
|
|
"variables": [],
|
|
"platforms": [
|
|
"ios"
|
|
]
|
|
},
|
|
{
|
|
"name": "mul(1, -1) => -1",
|
|
"expression": "@{mul(1, -1)}",
|
|
"expected": {
|
|
"type": "integer",
|
|
"value": -1
|
|
},
|
|
"variables": [],
|
|
"platforms": [
|
|
"android",
|
|
"ios",
|
|
"web"
|
|
]
|
|
},
|
|
{
|
|
"name": "mul(-1, -1) => 1",
|
|
"expression": "@{mul(-1, -1)}",
|
|
"expected": {
|
|
"type": "integer",
|
|
"value": 1
|
|
},
|
|
"variables": [],
|
|
"platforms": [
|
|
"android",
|
|
"ios",
|
|
"web"
|
|
]
|
|
},
|
|
{
|
|
"name": "mul(1, 0) => 0",
|
|
"expression": "@{mul(1, 0)}",
|
|
"expected": {
|
|
"type": "integer",
|
|
"value": 0
|
|
},
|
|
"variables": [],
|
|
"platforms": [
|
|
"android",
|
|
"ios",
|
|
"web"
|
|
]
|
|
},
|
|
{
|
|
"name": "sub(3, 1) => 2",
|
|
"expression": "@{sub(3, 1)}",
|
|
"expected": {
|
|
"type": "integer",
|
|
"value": 2
|
|
},
|
|
"variables": [],
|
|
"platforms": [
|
|
"android",
|
|
"ios",
|
|
"web"
|
|
]
|
|
},
|
|
{
|
|
"name": "sub(5000000000, 2000000000) => 3000000000",
|
|
"expression": "@{sub(5000000000, 2000000000)}",
|
|
"expected": {
|
|
"type": "integer",
|
|
"value": 3000000000
|
|
},
|
|
"variables": [],
|
|
"platforms": [
|
|
"ios"
|
|
]
|
|
},
|
|
{
|
|
"name": "sub(1, +1) => 0",
|
|
"expression": "@{sub(1, +1)}",
|
|
"expected": {
|
|
"type": "integer",
|
|
"value": 0
|
|
},
|
|
"variables": [],
|
|
"platforms": [
|
|
"android",
|
|
"ios",
|
|
"web"
|
|
]
|
|
},
|
|
{
|
|
"name": "sub(1, -1) => 2",
|
|
"expression": "@{sub(1, -1)}",
|
|
"expected": {
|
|
"type": "integer",
|
|
"value": 2
|
|
},
|
|
"variables": [],
|
|
"platforms": [
|
|
"android",
|
|
"ios",
|
|
"web"
|
|
]
|
|
},
|
|
{
|
|
"name": "sub(2000000000, -3000000000) => 5000000000",
|
|
"expression": "@{sub(2000000000, -3000000000)}",
|
|
"expected": {
|
|
"type": "integer",
|
|
"value": 5000000000
|
|
},
|
|
"variables": [],
|
|
"platforms": [
|
|
"ios"
|
|
]
|
|
},
|
|
{
|
|
"name": "sub(7000000000000000000, -3000000000000000000) => error",
|
|
"expression": "@{sub(7000000000000000000, -3000000000000000000)}",
|
|
"expected": {
|
|
"type": "error",
|
|
"value": "Failed to evaluate [sub(7000000000000000000, -3000000000000000000)]. Integer overflow."
|
|
},
|
|
"variables": [],
|
|
"platforms": [
|
|
"ios"
|
|
]
|
|
},
|
|
{
|
|
"name": "sub(0, -0) => 0",
|
|
"expression": "@{sub(0, -0)}",
|
|
"expected": {
|
|
"type": "integer",
|
|
"value": 0
|
|
},
|
|
"variables": [],
|
|
"platforms": [
|
|
"android",
|
|
"ios",
|
|
"web"
|
|
]
|
|
},
|
|
{
|
|
"name": "sum(1, 1) => 2",
|
|
"expression": "@{sum(1, 1)}",
|
|
"expected": {
|
|
"type": "integer",
|
|
"value": 2
|
|
},
|
|
"variables": [],
|
|
"platforms": [
|
|
"android",
|
|
"ios",
|
|
"web"
|
|
]
|
|
},
|
|
{
|
|
"name": "sum(3000000000, 2000000000) => 5000000000",
|
|
"expression": "@{sum(3000000000, 2000000000)}",
|
|
"expected": {
|
|
"type": "integer",
|
|
"value": 5000000000
|
|
},
|
|
"variables": [],
|
|
"platforms": [
|
|
"ios"
|
|
]
|
|
},
|
|
{
|
|
"name": "sum(1, +1) => 2",
|
|
"expression": "@{sum(1, +1)}",
|
|
"expected": {
|
|
"type": "integer",
|
|
"value": 2
|
|
},
|
|
"variables": [],
|
|
"platforms": [
|
|
"android",
|
|
"ios",
|
|
"web"
|
|
]
|
|
},
|
|
{
|
|
"name": "sum(1, -1) => 0",
|
|
"expression": "@{sum(1, -1)}",
|
|
"expected": {
|
|
"type": "integer",
|
|
"value": 0
|
|
},
|
|
"variables": [],
|
|
"platforms": [
|
|
"android",
|
|
"ios",
|
|
"web"
|
|
]
|
|
},
|
|
{
|
|
"name": "sum(7000000000, -3000000000) => 4000000000",
|
|
"expression": "@{sum(7000000000, -3000000000)}",
|
|
"expected": {
|
|
"type": "integer",
|
|
"value": 4000000000
|
|
},
|
|
"variables": [],
|
|
"platforms": [
|
|
"ios"
|
|
]
|
|
},
|
|
{
|
|
"name": "sum(7000000000000000000, 7000000000000000000) => error",
|
|
"expression": "@{sum(7000000000000000000, 7000000000000000000)}",
|
|
"expected": {
|
|
"type": "error",
|
|
"value": "Failed to evaluate [sum(7000000000000000000, 7000000000000000000)]. Integer overflow."
|
|
},
|
|
"variables": [],
|
|
"platforms": [
|
|
"ios"
|
|
]
|
|
},
|
|
{
|
|
"name": "maxInteger() => 2147483647",
|
|
"expression": "@{maxInteger()}",
|
|
"deprecated": true,
|
|
"description": "The size of integer was increased.",
|
|
"expected": {
|
|
"type": "integer",
|
|
"value": 2147483647
|
|
},
|
|
"variables": [],
|
|
"platforms": [
|
|
"android",
|
|
"web"
|
|
]
|
|
},
|
|
{
|
|
"name": "maxInteger() => 9223372036854775807",
|
|
"expression": "@{maxInteger()}",
|
|
"expected": {
|
|
"type": "integer",
|
|
"value": 9223372036854775807
|
|
},
|
|
"variables": [],
|
|
"platforms": [
|
|
"ios"
|
|
]
|
|
},
|
|
{
|
|
"name": "minInteger() => -2147483648",
|
|
"expression": "@{minInteger()}",
|
|
"deprecated": true,
|
|
"description": "The size of integer was increased.",
|
|
"expected": {
|
|
"type": "integer",
|
|
"value": -2147483648
|
|
},
|
|
"variables": [],
|
|
"platforms": [
|
|
"android",
|
|
"web"
|
|
]
|
|
},
|
|
{
|
|
"name": "minInteger() => -9223372036854775808",
|
|
"expression": "@{minInteger()}",
|
|
"expected": {
|
|
"type": "integer",
|
|
"value": -9223372036854775808
|
|
},
|
|
"variables": [],
|
|
"platforms": [
|
|
"ios"
|
|
]
|
|
},
|
|
{
|
|
"name": "abs(0) => 0",
|
|
"expression": "@{abs(0)}",
|
|
"expected": {
|
|
"type": "integer",
|
|
"value": 0
|
|
},
|
|
"variables": [],
|
|
"platforms": [
|
|
"android",
|
|
"ios",
|
|
"web"
|
|
]
|
|
},
|
|
{
|
|
"name": "abs(2147483647) => 2147483647",
|
|
"expression": "@{abs(2147483647)}",
|
|
"expected": {
|
|
"type": "integer",
|
|
"value": 2147483647
|
|
},
|
|
"variables": [],
|
|
"platforms": [
|
|
"android",
|
|
"ios",
|
|
"web"
|
|
]
|
|
},
|
|
{
|
|
"name": "abs(9223372036854775807) => 9223372036854775807",
|
|
"expression": "@{abs(9223372036854775807)}",
|
|
"expected": {
|
|
"type": "integer",
|
|
"value": 9223372036854775807
|
|
},
|
|
"variables": [],
|
|
"platforms": [
|
|
"ios"
|
|
]
|
|
},
|
|
{
|
|
"name": "abs(-2147483647) => 2147483647",
|
|
"expression": "@{abs(-2147483647)}",
|
|
"expected": {
|
|
"type": "integer",
|
|
"value": 2147483647
|
|
},
|
|
"variables": [],
|
|
"platforms": [
|
|
"android",
|
|
"ios",
|
|
"web"
|
|
]
|
|
},
|
|
{
|
|
"name": "abs(-9223372036854775807) => 9223372036854775807",
|
|
"expression": "@{abs(-9223372036854775807)}",
|
|
"expected": {
|
|
"type": "integer",
|
|
"value": 9223372036854775807
|
|
},
|
|
"variables": [],
|
|
"platforms": [
|
|
"ios"
|
|
]
|
|
},
|
|
{
|
|
"name": "abs(-2147483648) => error",
|
|
"expression": "@{abs(-2147483648)}",
|
|
"deprecated": true,
|
|
"description": "The size of integer was increased.",
|
|
"expected": {
|
|
"type": "error",
|
|
"value": "Failed to evaluate [abs(-2147483648)]. Integer overflow."
|
|
},
|
|
"variables": [],
|
|
"platforms": [
|
|
"android"
|
|
]
|
|
},
|
|
{
|
|
"name": "abs(-9223372036854775808) => error",
|
|
"expression": "@{abs(-9223372036854775808)}",
|
|
"expected": {
|
|
"type": "error",
|
|
"value": "Failed to evaluate [abs(-9223372036854775808)]. Integer overflow."
|
|
},
|
|
"variables": [],
|
|
"platforms": [
|
|
"ios"
|
|
]
|
|
},
|
|
{
|
|
"name": "signum(0) => 0",
|
|
"expression": "@{signum(0)}",
|
|
"expected": {
|
|
"type": "integer",
|
|
"value": 0
|
|
},
|
|
"variables": [],
|
|
"platforms": [
|
|
"android",
|
|
"ios",
|
|
"web"
|
|
]
|
|
},
|
|
{
|
|
"name": "signum(5) => 1",
|
|
"expression": "@{signum(5)}",
|
|
"expected": {
|
|
"type": "integer",
|
|
"value": 1
|
|
},
|
|
"variables": [],
|
|
"platforms": [
|
|
"android",
|
|
"ios",
|
|
"web"
|
|
]
|
|
},
|
|
{
|
|
"name": "signum(-5) => -1",
|
|
"expression": "@{signum(-5)}",
|
|
"expected": {
|
|
"type": "integer",
|
|
"value": -1
|
|
},
|
|
"variables": [],
|
|
"platforms": [
|
|
"android",
|
|
"ios",
|
|
"web"
|
|
]
|
|
},
|
|
{
|
|
"name": "copySign(7, -1) => -7",
|
|
"expression": "@{copySign(7, -1)}",
|
|
"expected": {
|
|
"type": "integer",
|
|
"value": -7
|
|
},
|
|
"variables": [],
|
|
"platforms": [
|
|
"android",
|
|
"ios",
|
|
"web"
|
|
]
|
|
},
|
|
{
|
|
"name": "copySign(7, 1) => 7",
|
|
"expression": "@{copySign(7, 1)}",
|
|
"expected": {
|
|
"type": "integer",
|
|
"value": 7
|
|
},
|
|
"variables": [],
|
|
"platforms": [
|
|
"android",
|
|
"ios",
|
|
"web"
|
|
]
|
|
},
|
|
{
|
|
"name": "copySign(7, 0) => 7",
|
|
"expression": "@{copySign(7, 0)}",
|
|
"expected": {
|
|
"type": "integer",
|
|
"value": 7
|
|
},
|
|
"variables": [],
|
|
"platforms": [
|
|
"android",
|
|
"ios",
|
|
"web"
|
|
]
|
|
},
|
|
{
|
|
"name": "copySign(-7, 0) => -7",
|
|
"expression": "@{copySign(-7, 0)}",
|
|
"expected": {
|
|
"type": "integer",
|
|
"value": -7
|
|
},
|
|
"variables": [],
|
|
"platforms": [
|
|
"android",
|
|
"ios",
|
|
"web"
|
|
]
|
|
},
|
|
{
|
|
"name": "copySign(0, 0) => 0",
|
|
"expression": "@{copySign(0, 0)}",
|
|
"expected": {
|
|
"type": "integer",
|
|
"value": 0
|
|
},
|
|
"variables": [],
|
|
"platforms": [
|
|
"android",
|
|
"ios",
|
|
"web"
|
|
]
|
|
},
|
|
{
|
|
"name": "copySign(0, 1) => 0",
|
|
"expression": "@{copySign(0, 1)}",
|
|
"expected": {
|
|
"type": "integer",
|
|
"value": 0
|
|
},
|
|
"variables": [],
|
|
"platforms": [
|
|
"android",
|
|
"ios",
|
|
"web"
|
|
]
|
|
},
|
|
{
|
|
"name": "copySign(0, -1) => 0",
|
|
"expression": "@{copySign(0, -1)}",
|
|
"expected": {
|
|
"type": "integer",
|
|
"value": 0
|
|
},
|
|
"variables": [],
|
|
"platforms": [
|
|
"android",
|
|
"ios",
|
|
"web"
|
|
]
|
|
},
|
|
{
|
|
"name": "copySign(-2147483648, 1) => error",
|
|
"expression": "@{copySign(-2147483648, 1)}",
|
|
"deprecated": true,
|
|
"description": "The size of integer was increased.",
|
|
"expected": {
|
|
"type": "error",
|
|
"value": "Failed to evaluate [copySign(-2147483648, 1)]. Integer overflow."
|
|
},
|
|
"variables": [],
|
|
"platforms": [
|
|
"android",
|
|
"web"
|
|
]
|
|
},
|
|
{
|
|
"name": "copySign(-9223372036854775808, 1) => error",
|
|
"expression": "@{copySign(-9223372036854775808, 1)}",
|
|
"expected": {
|
|
"type": "error",
|
|
"value": "Failed to evaluate [copySign(-9223372036854775808, 1)]. Integer overflow."
|
|
},
|
|
"variables": [],
|
|
"platforms": [
|
|
"ios"
|
|
]
|
|
},
|
|
{
|
|
"name": "copySign(-2147483648, -1) => -2147483648",
|
|
"expression": "@{copySign(-2147483648, -1)}",
|
|
"expected": {
|
|
"type": "integer",
|
|
"value": -2147483648
|
|
},
|
|
"variables": [],
|
|
"platforms": [
|
|
"android",
|
|
"ios",
|
|
"web"
|
|
]
|
|
},
|
|
{
|
|
"name": "copySign(-9223372036854775808, -1) => -9223372036854775808",
|
|
"expression": "@{copySign(-9223372036854775808, -1)}",
|
|
"expected": {
|
|
"type": "integer",
|
|
"value": -9223372036854775808
|
|
},
|
|
"variables": [],
|
|
"platforms": [
|
|
"ios"
|
|
]
|
|
}
|
|
]
|
|
}
|