EveryModuleCombinations enum

A covering of the apps with every module: the apps that have, between them, every tuple of strength providers of different roles that one of the apps has, of the roles that take one and have several providers among the apps, and every module that one of the apps has; all of the apps without a strength.

It takes only apps that the contract harness built, so it respects the rules by which a module fits in an app: a tuple of providers that no app has, such as a provider with one that its modules do not fit with, needs no app, and a module that fits only one combination, such as one with a variant for one provider that depends on a module with a variant for another, gets the app of that combination. With fewer such roles than strength, the tuples have them all; with one, each of its providers is in an app.

The covering is the same for the same apps. It takes, again and again, the app that has the most tuples and modules that no app it took has, breaking a tie either by the order of the apps or by the app whose providers and modules are in the most of those not yet taken, then leaves out each app whose tuples and modules the others have too, and keeps the smaller of the two coverings, the first on a tie.

The value of a mode option of a role (see RoleOption.mode) is one more thing that an app has, as the provider of a role is: the first value in the apps of the covering, and another one in an app of modeAppsOf. So a covering takes, next to its apps, a few of those apps in the same way (selectModes): those that have, between them, every tuple of strength providers of different roles and values of different mode options that one of those apps has and no app of the covering has, which are the tuples with a value other than the first. A pairwise covering then has every value of a mode option with every provider of a role that has several, and with every value of another mode option. Without a strength, it takes all of those apps.

Inheritance
Implemented types
Available extensions

Values

pairwise → const EveryModuleCombinations

Every pair of providers of two different roles in one of the apps: a few apps, which grow with the square of the number of providers of a role and hardly with the number of roles, such as at most 15 of the 243 apps of 5 roles of 3 providers.

const EveryModuleCombinations('pairwise', 2)
threeWise → const EveryModuleCombinations

Every triple of providers of three different roles in one of the apps, such as at most 60 of the 243 apps of 5 roles of 3 providers.

const EveryModuleCombinations('3-wise', 3)
all → const EveryModuleCombinations

Every app: the product of the numbers of providers of the roles.

const EveryModuleCombinations('all', null)

Properties

hashCode → int
The hash code for this object.
no setterinherited
index → int
A numeric identifier for the enumerated value.
no setterinherited
name → String

Available on Enum, provided by the EnumName extension

The name of the enum value.
no setter
option → String
The value of the option --combinations of the matrix tools that selects these apps.
final
runtimeType → Type
A representation of the runtime type of the object.
no setterinherited
strength → int?
The number of providers of different roles, and of values of different mode options, of each tuple that one of the apps must have, or null for every app.
final

Methods

noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
problemsOf(List<MatrixApp> selected) → List<String>
The problems of selected, the apps that select took: for a name, that no app has it.
override
select(List<MatrixApp> apps, List<SmfModule> modules) → List<MatrixApp>
The apps of apps, apps with every module of modules such as those of everyModuleAppsOf, that the selection takes, in their order.
override
selectModes(List<MatrixApp> modes, List<MatrixApp> selected, List<SmfModule> modules) → List<MatrixApp>
The apps of modes, the apps with every module of modules for the other values of the mode options of their roles (modeAppsOf), that the selection takes next to selected, the apps that select took, in their order.
override
toString() → String
A string representation of this object.
inherited

Operators

operator ==(Object other) → bool
The equality operator.
inherited

Static Methods

parse(String option) → EveryModuleCombinations?
The combinations that the value option of --combinations selects, or null for a value that selects none.

Constants

values → const List<EveryModuleCombinations>
A constant List of the values in this enum, in order of their declaration.