datalogic-rs 4.0.21

A fast, type-safe Rust implementation of JSONLogic for evaluating logical rules as JSON. Perfect for business rules engines and dynamic filtering in Rust applications.
Documentation
[
    "# Collection of Divide Operator Tests",
    {
        "description": "Divide",
        "rule": { "/": [4, 2] },
        "result": 2,
        "data": null
    },
    {
        "description": "Divide to Decimal",
        "rule": { "/": [2, 4] },
        "result": 0.5,
        "data": null,
        "decimal": true
    },
    {
        "description": "Divide with Multiple Operands",
        "rule": { "/": [8, 2, 2] },
        "result": 2,
        "data": null
    },
    {
        "description": "Divide with Multiple Operands (2)",
        "rule": { "/": [2, 2, 1] },
        "result": 1,
        "data": null
    },
    {
        "description": "Divide with Negative Numbers",
        "rule": { "/": [-1, 2] },
        "result": -0.5,
        "data": null,
        "decimal": true
    },
    {
        "description": "Divide with Strings",
        "rule": { "/": ["8", "2", "2"] },
        "result": 2,
        "data": null
    },
    {
        "description": "Divide with Booleans",
        "rule": { "/": [false, true] },
        "result": 0,
        "data": null
    },
    {
        "description": "Divide with Multiple Value Types",
        "rule": { "/": ["8", true, 2] },
        "result": 4,
        "data": null
    },
    {
        "description": "Divide with Multiple Value Types (2)",
        "rule": { "/": ["1", 1] },
        "result": 1,
        "data": null
    },
    {
        "description": "Divide with Single Operand (Number)",
        "rule": { "/": [1] },
        "result": 1,
        "data": null
    },
    {
        "description": "Divide with zero operands is an error",
        "rule": { "/": [] },
        "error": { "type": "Invalid Arguments" },
        "data": null
    },
    {
        "description": "Divide with Single Operand, Direct (Number)",
        "rule": { "/": 1 },
        "result": 1,
        "data": null
    },
    {
        "description": "Divide with Single Operand, Direct (0)",
        "rule": { "/": 0 },
        "error": { "type": "NaN" },
        "data": null
    },
    {
        "description": "Divide Operator with Single Operand (Number)",
        "rule": { "/": [1] },
        "result": 1,
        "data": null
    },
    {
        "description": "Divide Operator with Single Operand (Negative Number)",
        "rule": { "/": [-1] },
        "result": -1,
        "data": null
    },
    {
        "description": "Divide Operator with Single Operand, Direct (Number)",
        "rule": { "/": 1 },
        "result": 1,
        "data": null
    },
    {
        "description": "Divide Operator with Single Operand, Direct (2)",
        "rule": { "/": 2 },
        "result": 0.5,
        "decimal": true,
        "data": null
    },
    {
        "description": "Divide Operator with Single Operand, Direct (0)",
        "rule": { "/": 0 },
        "error": { "type": "NaN" },
        "data": null
    },
    {
        "description": "Divide Operator with Single Operand (String)",
        "rule": { "/": ["1"] },
        "result": 1,
        "data": null
    },
    {
        "description": "Divide Operator with Single Operand, Direct (Negative Number String)",
        "rule": { "/": "-1" },
        "result": -1,
        "data": null
    },

    {
        "description": "Divide Operator with Single Operand, Direct (String 0)",
        "rule": { "/": "0" },
        "error": { "type": "NaN" },
        "data": null
    },
    {
        "description": "Divide Operator with Single Operand, Direct (true)",
        "rule": { "/": true },
        "result": 1,
        "data": null
    },
    {
        "description": "Divide Operator with Single Operand, Direct (false)",
        "rule": { "/": false },
        "error": { "type": "NaN" },
        "data": null
    },
    {
        "description": "Divide Operator with Single Operand, Direct (Empty String)",
        "rule": { "/": "" },
        "error": { "type": "NaN" },
        "data": null
    },
    {
        "description": "Divide Operator with a Single Operand, Direct (null)",
        "rule": { "/": null },
        "error": { "type": "NaN" },
        "data": null
    },
    {
        "description": "Divide with val",
        "rule": { "/": [{ "val": "x" }, { "val": "y" }] },
        "data": { "x": 8, "y": 2 },
        "result": 4
    },
    {
        "description": "Divide by Zero",
        "rule": { "/": [0, 0] },
        "error": { "type": "NaN" },
        "data": null
    },
    {
        "description": "Divide with String produces NaN",
        "rule": { "/": [1, "a"] },
        "error": { "type": "NaN" },
        "data": null
    },
    {
        "description": "Divide with Array produces NaN",
        "rule": { "/": [1, [1]] },
        "error": { "type": "NaN" },
        "data": null
    },
    {
        "description": "Any division by zero should return NaN",
        "rule": { "/": [1, 0] },
        "error": { "type": "NaN" },
        "data": null
    },
    {
        "description": "Any division by zero should return NaN (2)",
        "rule": { "/": [8, 2, 0] },
        "error": { "type": "NaN" },
        "data": null
    }
]