Files
divkit/test_data/expression_test_data/functions_arithmetic_integer.json
T
2023-03-22 19:06:20 +03:00

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