# t30008 - Dependants and dependencies package diagram filter test
## Config
```yaml
compilation_database_dir: ..
output_directory: puml
diagrams:
  t30008_package:
    type: package
    glob:
      - ../../tests/t30008/t30008.cc
    include:
      dependants:
        - clanguml::t30008::dependants::A
      dependencies:
        - clanguml::t30008::dependencies::F
    using_namespace:
      - clanguml::t30008
    plantuml:
      before:
        - "' t30008 test package diagram"
```
## Source code
File t30008.cc
```cpp
namespace clanguml {
namespace t30008 {

namespace dependants {
namespace X {
}
namespace A {
struct AA { };
}
namespace B {
struct BB {
    A::AA *aa;
};
}
namespace C {
struct CC {
    B::BB *bb;
};
}

} // namespace dependants

namespace dependencies {
namespace Y {
}

namespace D {
struct DD { };
}
namespace E {
struct EE {
    D::DD *dd;
};
}
namespace F {
struct FF {
    E::EE *ee;
};
}
} // namespace dependencies

} // namespace t30008
} // namespace clanguml
```
## Generated UML diagrams
![t30008_package](./t30008_package.svg "Dependants and dependencies package diagram filter test")
## Generated JSON models
```json
{
  "diagram_type": "package",
  "elements": [
    {
      "display_name": "clanguml",
      "elements": [
        {
          "display_name": "clanguml::t30008",
          "id": "588296309731944574",
          "is_deprecated": false,
          "name": "t30008",
          "source_location": {
            "file": "../../tests/t30008/t30008.cc",
            "line": 2
          },
          "type": "namespace"
        }
      ],
      "id": "2174271399507040339",
      "is_deprecated": false,
      "name": "clanguml",
      "source_location": {
        "file": "../../tests/t30008/t30008.cc",
        "line": 1
      },
      "type": "namespace"
    },
    {
      "display_name": "clanguml::t30008::dependants",
      "elements": [
        {
          "display_name": "clanguml::t30008::dependants::A",
          "id": "2096441629244782012",
          "is_deprecated": false,
          "name": "A",
          "source_location": {
            "file": "../../tests/t30008/t30008.cc",
            "line": 7
          },
          "type": "namespace"
        },
        {
          "display_name": "clanguml::t30008::dependants::B",
          "id": "500208250168931957",
          "is_deprecated": false,
          "name": "B",
          "source_location": {
            "file": "../../tests/t30008/t30008.cc",
            "line": 10
          },
          "type": "namespace"
        },
        {
          "display_name": "clanguml::t30008::dependants::C",
          "id": "1095841247154575825",
          "is_deprecated": false,
          "name": "C",
          "source_location": {
            "file": "../../tests/t30008/t30008.cc",
            "line": 15
          },
          "type": "namespace"
        }
      ],
      "id": "1601960042765615222",
      "is_deprecated": false,
      "name": "dependants",
      "source_location": {
        "file": "../../tests/t30008/t30008.cc",
        "line": 4
      },
      "type": "namespace"
    },
    {
      "display_name": "clanguml::t30008::dependencies",
      "elements": [
        {
          "display_name": "clanguml::t30008::dependencies::D",
          "id": "912387297717034254",
          "is_deprecated": false,
          "name": "D",
          "source_location": {
            "file": "../../tests/t30008/t30008.cc",
            "line": 27
          },
          "type": "namespace"
        },
        {
          "display_name": "clanguml::t30008::dependencies::E",
          "id": "1114997990364518938",
          "is_deprecated": false,
          "name": "E",
          "source_location": {
            "file": "../../tests/t30008/t30008.cc",
            "line": 30
          },
          "type": "namespace"
        },
        {
          "display_name": "clanguml::t30008::dependencies::F",
          "id": "1062827161678172094",
          "is_deprecated": false,
          "name": "F",
          "source_location": {
            "file": "../../tests/t30008/t30008.cc",
            "line": 35
          },
          "type": "namespace"
        }
      ],
      "id": "2103969167872217960",
      "is_deprecated": false,
      "name": "dependencies",
      "source_location": {
        "file": "../../tests/t30008/t30008.cc",
        "line": 23
      },
      "type": "namespace"
    }
  ],
  "metadata": {
    "clang_uml_version": "0.3.5-27-g81c7ce7",
    "llvm_version": "Ubuntu clang version 15.0.6",
    "schema_version": 1
  },
  "name": "t30008_package",
  "relationships": [
    {
      "destination": "2096441629244782012",
      "source": "500208250168931957",
      "type": "dependency"
    },
    {
      "destination": "500208250168931957",
      "source": "1095841247154575825",
      "type": "dependency"
    },
    {
      "destination": "912387297717034254",
      "source": "1114997990364518938",
      "type": "dependency"
    },
    {
      "destination": "1114997990364518938",
      "source": "1062827161678172094",
      "type": "dependency"
    }
  ],
  "using_namespace": "clanguml::t30008"
}
```
