{
  "source": {
    "file": "Molten/test/resource/system/graph/relation/relation.template.rs",
    "cases": "Molten/test/resource/system/graph/relation/cases.json"
  },
  "functions": [
    {
      "function": "descendants",
      "tags": [
        "found",
        "missing",
        "empty"
      ],
      "cases": [
        {
          "parameters": {
            "source": {
              "adjacency": [
                [
                  "A",
                  [
                    "B",
                    "C"
                  ]
                ],
                [
                  "B",
                  [
                    "D"
                  ]
                ]
              ]
            },
            "from": "A"
          },
          "returns": {
            "()": [
              "B",
              "C"
            ]
          },
          "unexpected": null
        },
        {
          "parameters": {
            "source": {
              "adjacency": [
                [
                  "A",
                  [
                    "B"
                  ]
                ]
              ]
            },
            "from": "Z"
          },
          "returns": {
            "()": null
          },
          "unexpected": null
        },
        {
          "parameters": {
            "source": {
              "adjacency": []
            },
            "from": "A"
          },
          "returns": {
            "()": null
          },
          "unexpected": null
        }
      ]
    },
    {
      "function": "predecessors",
      "tags": [
        "found",
        "missing",
        "single"
      ],
      "cases": [
        {
          "parameters": {
            "from": "C",
            "source": {
              "adjacency": [
                [
                  "A",
                  [
                    "C"
                  ]
                ],
                [
                  "B",
                  [
                    "C"
                  ]
                ]
              ]
            }
          },
          "returns": {
            "()": [
              "A",
              "B"
            ]
          },
          "unexpected": null
        },
        {
          "parameters": {
            "from": "Z",
            "source": {
              "adjacency": [
                [
                  "A",
                  [
                    "B"
                  ]
                ]
              ]
            }
          },
          "returns": {
            "()": null
          },
          "unexpected": null
        },
        {
          "parameters": {
            "from": "C",
            "source": {
              "adjacency": [
                [
                  "A",
                  [
                    "B",
                    "C"
                  ]
                ]
              ]
            }
          },
          "returns": {
            "()": [
              "A"
            ]
          },
          "unexpected": null
        }
      ]
    },
    {
      "function": "relate",
      "tags": [
        "empty",
        "existing",
        "new_node"
      ],
      "cases": [
        {
          "parameters": {
            "relation": "B",
            "source": {
              "adjacency": []
            },
            "label": "A"
          },
          "returns": {
            "()": {
              "adjacency": [
                [
                  "A",
                  [
                    "B"
                  ]
                ]
              ]
            }
          },
          "unexpected": null
        },
        {
          "parameters": {
            "label": "A",
            "relation": "C",
            "source": {
              "adjacency": [
                [
                  "A",
                  [
                    "B"
                  ]
                ]
              ]
            }
          },
          "returns": {
            "()": {
              "adjacency": [
                [
                  "A",
                  [
                    "B",
                    "C"
                  ]
                ]
              ]
            }
          },
          "unexpected": null
        },
        {
          "parameters": {
            "source": {
              "adjacency": [
                [
                  "A",
                  [
                    "B"
                  ]
                ]
              ]
            },
            "label": "C",
            "relation": "D"
          },
          "returns": {
            "()": {
              "adjacency": [
                [
                  "A",
                  [
                    "B"
                  ]
                ],
                [
                  "C",
                  [
                    "D"
                  ]
                ]
              ]
            }
          },
          "unexpected": null
        }
      ]
    }
  ]
}