# t00053 - Test case for `together` layout hint in class diagram
## Config
```yaml
compilation_database_dir: ..
output_directory: puml
diagrams:
  t00053_class:
    type: class
    glob:
      - ../../tests/t00053/t00053.cc
    include:
      namespaces:
        - clanguml::t00053
    using_namespace:
      - clanguml::t00053
    layout:
      a:
        - together: [c,e,f]
      A:
        - together: [C,E,F]
      h:
        - together: [j]

```
## Source code
File t00053.cc
```cpp
namespace clanguml {
namespace t00053 {
struct a { };
struct b { };
struct c { };
struct d { };
struct e { };
struct f { };
struct g { };

struct A { };
struct B { };
struct C { };
struct D { };
struct E { };
struct F { };
struct G { };

enum class h { hhh };
enum class i { iii };
enum class j { jjj };

}
}
```
## Generated UML diagrams
![t00053_class](./t00053_class.svg "Test case for `together` layout hint in class diagram")
## Generated JSON models
```json
{
  "diagram_type": "class",
  "elements": [
    {
      "bases": [],
      "display_name": "clanguml::t00053::a",
      "id": "347629837292519144",
      "is_abstract": false,
      "is_nested": false,
      "is_struct": true,
      "is_template": false,
      "is_union": false,
      "members": [],
      "methods": [],
      "name": "a",
      "namespace": "clanguml::t00053",
      "source_location": {
        "file": "../../tests/t00053/t00053.cc",
        "line": 3
      },
      "template_parameters": [],
      "type": "class"
    },
    {
      "bases": [],
      "display_name": "clanguml::t00053::b",
      "id": "1376344645244260547",
      "is_abstract": false,
      "is_nested": false,
      "is_struct": true,
      "is_template": false,
      "is_union": false,
      "members": [],
      "methods": [],
      "name": "b",
      "namespace": "clanguml::t00053",
      "source_location": {
        "file": "../../tests/t00053/t00053.cc",
        "line": 4
      },
      "template_parameters": [],
      "type": "class"
    },
    {
      "bases": [],
      "display_name": "clanguml::t00053::c",
      "id": "504463801094568803",
      "is_abstract": false,
      "is_nested": false,
      "is_struct": true,
      "is_template": false,
      "is_union": false,
      "members": [],
      "methods": [],
      "name": "c",
      "namespace": "clanguml::t00053",
      "source_location": {
        "file": "../../tests/t00053/t00053.cc",
        "line": 5
      },
      "template_parameters": [],
      "type": "class"
    },
    {
      "bases": [],
      "display_name": "clanguml::t00053::d",
      "id": "1264455164862224089",
      "is_abstract": false,
      "is_nested": false,
      "is_struct": true,
      "is_template": false,
      "is_union": false,
      "members": [],
      "methods": [],
      "name": "d",
      "namespace": "clanguml::t00053",
      "source_location": {
        "file": "../../tests/t00053/t00053.cc",
        "line": 6
      },
      "template_parameters": [],
      "type": "class"
    },
    {
      "bases": [],
      "display_name": "clanguml::t00053::e",
      "id": "907921963776939609",
      "is_abstract": false,
      "is_nested": false,
      "is_struct": true,
      "is_template": false,
      "is_union": false,
      "members": [],
      "methods": [],
      "name": "e",
      "namespace": "clanguml::t00053",
      "source_location": {
        "file": "../../tests/t00053/t00053.cc",
        "line": 7
      },
      "template_parameters": [],
      "type": "class"
    },
    {
      "bases": [],
      "display_name": "clanguml::t00053::f",
      "id": "1421289128664274084",
      "is_abstract": false,
      "is_nested": false,
      "is_struct": true,
      "is_template": false,
      "is_union": false,
      "members": [],
      "methods": [],
      "name": "f",
      "namespace": "clanguml::t00053",
      "source_location": {
        "file": "../../tests/t00053/t00053.cc",
        "line": 8
      },
      "template_parameters": [],
      "type": "class"
    },
    {
      "bases": [],
      "display_name": "clanguml::t00053::g",
      "id": "200227126708762001",
      "is_abstract": false,
      "is_nested": false,
      "is_struct": true,
      "is_template": false,
      "is_union": false,
      "members": [],
      "methods": [],
      "name": "g",
      "namespace": "clanguml::t00053",
      "source_location": {
        "file": "../../tests/t00053/t00053.cc",
        "line": 9
      },
      "template_parameters": [],
      "type": "class"
    },
    {
      "bases": [],
      "display_name": "clanguml::t00053::A",
      "id": "322642841130459425",
      "is_abstract": false,
      "is_nested": false,
      "is_struct": true,
      "is_template": false,
      "is_union": false,
      "members": [],
      "methods": [],
      "name": "A",
      "namespace": "clanguml::t00053",
      "source_location": {
        "file": "../../tests/t00053/t00053.cc",
        "line": 11
      },
      "template_parameters": [],
      "type": "class"
    },
    {
      "bases": [],
      "display_name": "clanguml::t00053::B",
      "id": "876623970071162908",
      "is_abstract": false,
      "is_nested": false,
      "is_struct": true,
      "is_template": false,
      "is_union": false,
      "members": [],
      "methods": [],
      "name": "B",
      "namespace": "clanguml::t00053",
      "source_location": {
        "file": "../../tests/t00053/t00053.cc",
        "line": 12
      },
      "template_parameters": [],
      "type": "class"
    },
    {
      "bases": [],
      "display_name": "clanguml::t00053::C",
      "id": "1248473990784124468",
      "is_abstract": false,
      "is_nested": false,
      "is_struct": true,
      "is_template": false,
      "is_union": false,
      "members": [],
      "methods": [],
      "name": "C",
      "namespace": "clanguml::t00053",
      "source_location": {
        "file": "../../tests/t00053/t00053.cc",
        "line": 13
      },
      "template_parameters": [],
      "type": "class"
    },
    {
      "bases": [],
      "display_name": "clanguml::t00053::D",
      "id": "470228045297785394",
      "is_abstract": false,
      "is_nested": false,
      "is_struct": true,
      "is_template": false,
      "is_union": false,
      "members": [],
      "methods": [],
      "name": "D",
      "namespace": "clanguml::t00053",
      "source_location": {
        "file": "../../tests/t00053/t00053.cc",
        "line": 14
      },
      "template_parameters": [],
      "type": "class"
    },
    {
      "bases": [],
      "display_name": "clanguml::t00053::E",
      "id": "1038384764221361257",
      "is_abstract": false,
      "is_nested": false,
      "is_struct": true,
      "is_template": false,
      "is_union": false,
      "members": [],
      "methods": [],
      "name": "E",
      "namespace": "clanguml::t00053",
      "source_location": {
        "file": "../../tests/t00053/t00053.cc",
        "line": 15
      },
      "template_parameters": [],
      "type": "class"
    },
    {
      "bases": [],
      "display_name": "clanguml::t00053::F",
      "id": "530253748811039667",
      "is_abstract": false,
      "is_nested": false,
      "is_struct": true,
      "is_template": false,
      "is_union": false,
      "members": [],
      "methods": [],
      "name": "F",
      "namespace": "clanguml::t00053",
      "source_location": {
        "file": "../../tests/t00053/t00053.cc",
        "line": 16
      },
      "template_parameters": [],
      "type": "class"
    },
    {
      "bases": [],
      "display_name": "clanguml::t00053::G",
      "id": "1031614323468823578",
      "is_abstract": false,
      "is_nested": false,
      "is_struct": true,
      "is_template": false,
      "is_union": false,
      "members": [],
      "methods": [],
      "name": "G",
      "namespace": "clanguml::t00053",
      "source_location": {
        "file": "../../tests/t00053/t00053.cc",
        "line": 17
      },
      "template_parameters": [],
      "type": "class"
    },
    {
      "constants": [
        "hhh"
      ],
      "display_name": "clanguml::t00053::h",
      "id": "190978367074032185",
      "is_nested": false,
      "name": "h",
      "namespace": "clanguml::t00053",
      "source_location": {
        "file": "../../tests/t00053/t00053.cc",
        "line": 19
      },
      "type": "enum"
    },
    {
      "constants": [
        "iii"
      ],
      "display_name": "clanguml::t00053::i",
      "id": "1473214620883985930",
      "is_nested": false,
      "name": "i",
      "namespace": "clanguml::t00053",
      "source_location": {
        "file": "../../tests/t00053/t00053.cc",
        "line": 20
      },
      "type": "enum"
    },
    {
      "constants": [
        "jjj"
      ],
      "display_name": "clanguml::t00053::j",
      "id": "965083605473661435",
      "is_nested": false,
      "name": "j",
      "namespace": "clanguml::t00053",
      "source_location": {
        "file": "../../tests/t00053/t00053.cc",
        "line": 21
      },
      "type": "enum"
    }
  ],
  "metadata": {
    "clang_uml_version": "0.3.5-27-g81c7ce7",
    "llvm_version": "Ubuntu clang version 15.0.6",
    "schema_version": 1
  },
  "name": "t00053_class",
  "relationships": [],
  "using_namespace": "clanguml::t00053"
}
```
