/elk-models

Eclipse Layout Kernel - Test models

OtherNOASSERTION

ELK Models Repository

This repository holds test models for the Eclipse Layout Kernel project. These test files are used while developing our layout algorithms, to reproduce and fix bugs, and to run automated tests to ensure the bugs remain fixed.

Repository Layout

On the top level, the repository contains the following folders:

Folder Description
tests Test graphs written or generated by us.
realworld Graphs obtained by converting examples from the real world into formats we can use.
tickets Graphs that reproduce problems described in GitHub tickets.
examples Example graph specifications that illustrate common ELK layouter configurations.

Both tests and tickets are further subdivided into folders specific to layout algorithms (layered, force, etc) or applicable to all algorithms (common). In the test tree, these folders may contain further folders specific to the respective tickets, if more than one file is produced for a given ticket.

File Types

The file types we use are the following:

Type Description
.elkt Textual ELK graph language. See the specification.
.elkg EMF's XMI-based representation of ELK graphs.
.json  JSON files. See the specification.
.md Readme files can be placed in folders to describe their purpose.

License Headers

All files except for the JSON files must contain a proper licence at the file header. The license.py script in the repository's root folder can help (requires Python >= 3.5). Common use cases:

# Ensure all files have licence headers
python3.6 license.py --verbose --company "Your company's name"

# Add licence headers to files staged for commit
python3.6 license.py --verbose --staged --company "Your company's name"

# Also update existing licence headers to include the current year
python3.6 license.py --verbose --staged --update --company "Your company's name"

To see what the script would do, add the --dry-run option (or -n for short).

See the command-line help for more options (--help).