Files
metabuilder/packages/json_script_example/tests/math.test.logic.json
2025-12-31 13:55:08 +00:00

179 lines
4.7 KiB
JSON

{
"$schema": "./test.schema.json",
"schema_version": "2.1.0",
"package": "json_script_example",
"description": "Test logic for math operations",
"functions": [
{
"id": "test_add",
"name": "test_add",
"description": "Test addition operation",
"params": [
{
"name": "testCase",
"type": "object",
"description": "Test case with input {a, b} and expected result"
}
],
"returnType": "object",
"body": [
{
"type": "comment",
"text": "Calculate actual result"
},
{
"type": "const_declaration",
"name": "actual",
"value": {
"type": "binary_expression",
"left": {
"type": "member_access",
"object": "$ref:params.testCase",
"property": "a"
},
"operator": "+",
"right": {
"type": "member_access",
"object": "$ref:params.testCase",
"property": "b"
}
}
},
{
"type": "comment",
"text": "Compare to expected"
},
{
"type": "const_declaration",
"name": "passed",
"value": {
"type": "binary_expression",
"left": "$ref:local.actual",
"operator": "==",
"right": {
"type": "member_access",
"object": "$ref:params.testCase",
"property": "expected"
}
}
},
{
"type": "comment",
"text": "Return test result"
},
{
"type": "return",
"value": {
"type": "object_literal",
"properties": {
"passed": "$ref:local.passed",
"actual": "$ref:local.actual",
"expected": {
"type": "member_access",
"object": "$ref:params.testCase",
"property": "expected"
}
}
}
}
]
},
{
"id": "test_divide",
"name": "test_divide",
"description": "Test division operation with zero handling",
"params": [
{
"name": "testCase",
"type": "object"
}
],
"returnType": "object",
"body": [
{
"type": "comment",
"text": "Check for division by zero"
},
{
"type": "const_declaration",
"name": "divisor",
"value": {
"type": "member_access",
"object": "$ref:params.testCase",
"property": "b"
}
},
{
"type": "if_statement",
"condition": {
"type": "binary_expression",
"left": "$ref:local.divisor",
"operator": "==",
"right": 0
},
"then": [
{
"type": "return",
"value": {
"type": "object_literal",
"properties": {
"passed": true,
"error": "Division by zero",
"expectedError": true
}
}
}
]
},
{
"type": "comment",
"text": "Perform division"
},
{
"type": "const_declaration",
"name": "actual",
"value": {
"type": "binary_expression",
"left": {
"type": "member_access",
"object": "$ref:params.testCase",
"property": "a"
},
"operator": "/",
"right": "$ref:local.divisor"
}
},
{
"type": "const_declaration",
"name": "passed",
"value": {
"type": "binary_expression",
"left": "$ref:local.actual",
"operator": "==",
"right": {
"type": "member_access",
"object": "$ref:params.testCase",
"property": "expected"
}
}
},
{
"type": "return",
"value": {
"type": "object_literal",
"properties": {
"passed": "$ref:local.passed",
"actual": "$ref:local.actual",
"expected": {
"type": "member_access",
"object": "$ref:params.testCase",
"property": "expected"
}
}
}
}
]
}
]
}