{
  "source": {
    "file": "test/resource/system/generation/complex/test.template.rs",
    "cases": "test/resource/system/generation/complex/cases.json"
  },
  "functions": [
    {
      "function": "average",
      "tags": [
        "person",
        "scores",
        "empty"
      ],
      "cases": [
        {
          "parameters": {
            "person": {
              "name": "Alice",
              "age": 25,
              "scores": [
                85,
                90,
                92,
                88
              ]
            }
          },
          "returns": {
            "()": 88.75
          },
          "unexpected": null
        },
        {
          "parameters": {
            "person": {
              "name": "Bob",
              "age": 30,
              "scores": []
            }
          },
          "returns": {
            "()": 0.0
          },
          "unexpected": null
        }
      ]
    },
    {
      "function": "count_some",
      "tags": [
        "option",
        "nested",
        "generics",
        "hashmap",
        "custom"
      ],
      "cases": [
        {
          "parameters": {
            "data": {
              "1": {
                "value": "hello"
              },
              "2": null,
              "3": {
                "value": "world"
              }
            }
          },
          "returns": {
            "()": 2
          },
          "unexpected": null
        }
      ]
    },
    {
      "function": "distance",
      "tags": [
        "basic",
        "origin"
      ],
      "cases": [
        {
          "parameters": {
            "point": {
              "x": 5,
              "y": 12
            }
          },
          "returns": {
            "()": 13
          },
          "unexpected": null
        },
        {
          "parameters": {
            "point": {
              "x": 0,
              "y": 0
            }
          },
          "returns": {
            "()": 0.0
          },
          "unexpected": null
        }
      ]
    },
    {
      "function": "geometry.rectangle_area",
      "tags": [
        "rectangle",
        "negative"
      ],
      "cases": [
        {
          "parameters": {
            "bottom_right": {
              "x": 5,
              "y": 0
            },
            "top_left": {
              "x": 0,
              "y": 10
            }
          },
          "returns": {
            "()": 50
          },
          "unexpected": null
        },
        {
          "parameters": {
            "bottom_right": {
              "x": 4,
              "y": -1
            },
            "top_left": {
              "x": -2,
              "y": 3
            }
          },
          "returns": {
            "()": 24
          },
          "unexpected": null
        }
      ]
    },
    {
      "function": "matrix_sum",
      "tags": [
        "matrix",
        "generics",
        "nested"
      ],
      "cases": [
        {
          "parameters": {
            "matrix": {
              "rows": [
                [
                  1,
                  2,
                  3
                ],
                [
                  4,
                  5,
                  6
                ],
                [
                  7,
                  8,
                  9
                ]
              ],
              "metadata": {
                "offset": 10,
                "scale": 2
              }
            }
          },
          "returns": {
            "()": 57
          },
          "unexpected": null
        }
      ]
    },
    {
      "function": "nested_optionals",
      "tags": [
        "optional",
        "nested",
        "filtering"
      ],
      "cases": [
        {
          "parameters": {
            "data": [
              "hello",
              null,
              "world",
              null,
              "rust"
            ]
          },
          "returns": {
            "()": [
              "hello",
              "world",
              "rust"
            ]
          },
          "unexpected": null
        }
      ]
    },
    {
      "function": "nested_process",
      "tags": [
        "nested",
        "generics",
        "complex",
        "hashmap",
        "vector"
      ],
      "cases": [
        {
          "parameters": {
            "data": {
              "region_a": [
                {
                  "store_1": [
                    1,
                    2,
                    3
                  ],
                  "store_2": [
                    4,
                    5
                  ]
                },
                {
                  "store_3": [
                    6,
                    7,
                    8,
                    9
                  ]
                }
              ],
              "region_b": [
                {
                  "store_4": [
                    10,
                    11
                  ],
                  "store_5": [
                    12,
                    13,
                    14
                  ]
                }
              ],
              "region_c": []
            }
          },
          "returns": {
            "()": 105
          },
          "unexpected": null
        }
      ]
    },
    {
      "function": "nested_sum",
      "tags": [
        "merge",
        "default",
        "override"
      ],
      "cases": [
        {
          "parameters": {
            "data": {
              "a": {
                "b": 3,
                "c": 4
              }
            }
          },
          "returns": {
            "()": 7
          },
          "unexpected": null
        }
      ]
    },
    {
      "function": "optional_process",
      "tags": [
        "option",
        "string",
        "some",
        "none"
      ],
      "cases": [
        {
          "parameters": {
            "name": "Alice"
          },
          "returns": {
            "()": "Hello, Alice!"
          },
          "unexpected": null
        },
        {
          "parameters": {
            "name": null
          },
          "returns": {
            "()": "Hello, stranger!"
          },
          "unexpected": null
        }
      ]
    },
    {
      "function": "process_data",
      "tags": [
        "hashmap",
        "sum"
      ],
      "cases": [
        {
          "parameters": {
            "data": {
              "a": 10,
              "b": 20,
              "c": 30
            }
          },
          "returns": {
            "()": 60
          },
          "unexpected": null
        }
      ]
    },
    {
      "function": "process_status",
      "tags": [
        "enum",
        "success",
        "warning",
        "error"
      ],
      "cases": [
        {
          "parameters": {
            "status": {
              "Success": 42
            }
          },
          "returns": {
            "()": "Success: 42"
          },
          "unexpected": null
        },
        {
          "parameters": {
            "status": {
              "Warning": [
                100,
                "Low memory"
              ]
            }
          },
          "returns": {
            "()": "Warning: 100 - Low memory"
          },
          "unexpected": null
        },
        {
          "parameters": {
            "status": {
              "Error": "Network failure"
            }
          },
          "returns": {
            "()": "Error: Network failure"
          },
          "unexpected": null
        }
      ]
    },
    {
      "function": "sum_refs",
      "tags": [],
      "cases": [
        {
          "parameters": {
            "y": 4,
            "x": 3
          },
          "returns": {
            "()": 7
          },
          "unexpected": null
        },
        {
          "parameters": {
            "y": 5,
            "x": -2
          },
          "returns": {
            "()": 3
          },
          "unexpected": null
        }
      ]
    },
    {
      "function": "sum_vector",
      "tags": [
        "vector",
        "sum",
        "empty"
      ],
      "cases": [
        {
          "parameters": {
            "numbers": [
              1,
              2,
              3,
              4,
              5
            ]
          },
          "returns": {
            "()": 15
          },
          "unexpected": null
        },
        {
          "parameters": {
            "numbers": []
          },
          "returns": {
            "()": 0
          },
          "unexpected": null
        }
      ]
    },
    {
      "function": "team_average",
      "tags": [
        "team",
        "nested",
        "collection",
        "empty"
      ],
      "cases": [
        {
          "parameters": {
            "team": {
              "name": "Engineering",
              "budget": 100000,
              "members": [
                {
                  "name": "Alice",
                  "age": 25,
                  "scores": [
                    85,
                    90,
                    92
                  ]
                },
                {
                  "name": "Bob",
                  "age": 30,
                  "scores": [
                    78,
                    82,
                    88,
                    95
                  ]
                }
              ]
            }
          },
          "returns": {
            "()": 87.14285714285714
          },
          "unexpected": null
        },
        {
          "parameters": {
            "team": {
              "name": "Marketing",
              "budget": 75000,
              "members": []
            }
          },
          "returns": {
            "()": 0.0
          },
          "unexpected": null
        },
        {
          "parameters": {
            "team": {
              "name": "Sales",
              "budget": 80000,
              "members": [
                {
                  "name": "Charlie",
                  "age": 28,
                  "scores": []
                },
                {
                  "name": "Diana",
                  "age": 32,
                  "scores": []
                }
              ]
            }
          },
          "returns": {
            "()": 0.0
          },
          "unexpected": null
        }
      ]
    },
    {
      "function": "two_level_process",
      "tags": [
        "nested",
        "generics",
        "nested",
        "hashmap",
        "vector"
      ],
      "cases": [
        {
          "parameters": {
            "data": [
              {
                "apples": 10,
                "oranges": 5,
                "bananas": 8
              },
              {
                "apples": 3,
                "grapes": 12,
                "berries": 7
              },
              {
                "oranges": 4,
                "mangoes": 6
              }
            ]
          },
          "returns": {
            "()": 55
          },
          "unexpected": null
        }
      ]
    }
  ]
}