Remove RANDOM topologies, now all of them have an optional "density"
parameter that says the probability of a dependency to exist.
Change BINARY_TREE to TREE, now a "degree" parameter has to be
passed.
Add VARIABLE_TREE, each module has a variable number of dependencies
based on a "wideness" parameter (0 is the same as LINEAR, 1.0 is the
same as STAR).
This is a summary of current topologies:
FULL:
Module i depends on module j for all j > i.
CONNECTED:
Same as FULL, but makes sure that there are not orphaned modules
(useful when density is lower than 1.0)
LINEAR:
Module i depends on module i + 1.
STAR:
Module 0 depends on the rest of modules.
TREE:
Requires a "degree" positive integer parameter that says how many
dependencies each module has.
Module i depends on modules degree i + 1, degree i + 2, ... ,
degree * i + degree
VARIABLE_TREE:
Has an optional "wideness" float parameter that should be in [0, 1]
module 0 starts as the active parent and for each module j:
A dependency between current parent and module j is created
With probability (1 - wideness) current parent is moved to next
module
RECTANGLE:
Has a positive integer "width" parameter.
Modules i width + 0, i width + 1, ..., i + width + (width -1)
depend on modules (i + 1) width + 0, (i + 1) width + 1, ... (i +
1) * width + (width -1)
CONNECTED_RECTANGLE:
Same as rectangle, but makes sure that there is a dependency for
module i when i > width (there are not orphaned modules, except for
the first layer)
This is a summary of current topologies: