mirror of
https://github.com/Echtzeitsysteme/gips-tests.git
synced 2024-05-20 12:00:56 +00:00
Adds TODOs to all parts of the complex GIPSL specification that break the compilation process
This commit is contained in:
parent
55633be68c
commit
666166eb3b
|
@ -1,15 +1,15 @@
|
|||
Manifest-Version: 1.0
|
||||
Automatic-Module-Name: gipsl.all.build.complex
|
||||
Bundle-ManifestVersion: 2
|
||||
Bundle-Name: gipsl.all.build.complex
|
||||
Bundle-Vendor: My Company
|
||||
Bundle-Version: 1.0.0.qualifier
|
||||
Bundle-SymbolicName: gipsl.all.build.complex; singleton:=true
|
||||
Bundle-ActivationPolicy: lazy
|
||||
Bundle-RequiredExecutionEnvironment: JavaSE-16
|
||||
Require-Bundle: org.emoflon.ibex.common,
|
||||
org.emoflon.ibex.gt,
|
||||
org.emoflon.gips.core,
|
||||
org.emoflon.ibex.gt.democles,
|
||||
org.emoflon.ibex.gt.hipe,
|
||||
gipsl.all.build.model;bundle-version="0.0.1"
|
||||
Manifest-Version: 1.0
|
||||
Automatic-Module-Name: gipsl.all.build.complex
|
||||
Bundle-ManifestVersion: 2
|
||||
Bundle-Name: gipsl.all.build.complex
|
||||
Bundle-Vendor: My Company
|
||||
Bundle-Version: 1.0.0.qualifier
|
||||
Bundle-SymbolicName: gipsl.all.build.complex; singleton:=true
|
||||
Bundle-ActivationPolicy: lazy
|
||||
Bundle-RequiredExecutionEnvironment: JavaSE-17
|
||||
Require-Bundle: org.emoflon.ibex.common,
|
||||
org.emoflon.ibex.gt,
|
||||
org.emoflon.gips.core,
|
||||
org.emoflon.ibex.gt.democles,
|
||||
org.emoflon.ibex.gt.hipe,
|
||||
gipsl.all.build.model;bundle-version="0.0.1"
|
||||
|
|
|
@ -141,9 +141,10 @@ constraint -> class::SubstrateResourceNode {
|
|||
mappings.n2n->sum(m | m.nodes().snode.resourceAmountTotal) >= self.resourceAmountAvailable
|
||||
}
|
||||
|
||||
constraint -> class::Root {
|
||||
mappings.n2n->filter(match | match.nodes().snode == self)->notEmpty()
|
||||
}
|
||||
// TODO: Broken
|
||||
//constraint -> class::Root {
|
||||
// mappings.n2n->filter(match | match.nodes().snode == self)->notEmpty()
|
||||
//}
|
||||
|
||||
constraint -> pattern::mapVnode {
|
||||
self.nodes().snode.resourceAmountAvailable >= 0
|
||||
|
@ -155,36 +156,45 @@ constraint -> class::SubstrateResourceNode {
|
|||
mappings.n2n->filter(m | m.nodes().snode == self)->count() >= 1 & self.resourceAmountAvailable > 0
|
||||
}
|
||||
|
||||
// TODO: Broken
|
||||
// Other variable names must also be allowed
|
||||
constraint -> class::SubstrateResourceNode {
|
||||
mappings.n2n->filter(v | v.nodes().snode == self)->notEmpty()
|
||||
}
|
||||
//constraint -> class::SubstrateResourceNode {
|
||||
// mappings.n2n->filter(v | v.nodes().snode == self)->notEmpty()
|
||||
//}
|
||||
|
||||
|
||||
constraint -> class::SubstrateResourceNode {
|
||||
mappings.n2n->filter(m | m.nodes().snode == self)->notEmpty()
|
||||
}
|
||||
// TODO: Broken
|
||||
//constraint -> class::SubstrateResourceNode {
|
||||
// mappings.n2n->filter(m | m.nodes().snode == self)->notEmpty()
|
||||
//}
|
||||
constraint -> class::SubstrateResourceNode {
|
||||
mappings.n2n->filter(m | m.nodes().snode == self)->count() == 0
|
||||
}
|
||||
|
||||
constraint -> class::SubstrateResourceNode {
|
||||
mappings.n2n->filter(m | m.nodes().snode != self)->notEmpty()
|
||||
}
|
||||
constraint -> class::SubstrateResourceNode {
|
||||
mappings.n2n->filter(m | m.nodes().snode != self)->filter(m | m.nodes().snode.resourceAmountAvailable > 0)->notEmpty()
|
||||
}
|
||||
// TODO: Broken
|
||||
//constraint -> class::SubstrateResourceNode {
|
||||
// mappings.n2n->filter(m | m.nodes().snode != self)->notEmpty()
|
||||
//}
|
||||
|
||||
constraint -> class::SubstrateResourceNode {
|
||||
mappings.n2n->filter(m | m.nodes().root != self)->filter(m | m.nodes().root == self)->notEmpty()
|
||||
}
|
||||
constraint -> class::SubstrateResourceNode {
|
||||
mappings.n2n->filter(m | m.nodes().root != self)->filter(m | m.nodes().root == self)->filter(m | m.nodes().snode.resourceAmountAvailable > 0)->notEmpty()
|
||||
}
|
||||
// TODO: Broken
|
||||
//constraint -> class::SubstrateResourceNode {
|
||||
// mappings.n2n->filter(m | m.nodes().snode != self)->filter(m | m.nodes().snode.resourceAmountAvailable > 0)->notEmpty()
|
||||
//}
|
||||
|
||||
// TODO: Broken
|
||||
//constraint -> class::SubstrateResourceNode {
|
||||
// mappings.n2n->filter(m | m.nodes().root != self)->filter(m | m.nodes().root == self)->notEmpty()
|
||||
//}
|
||||
|
||||
// TODO: Broken
|
||||
//constraint -> class::SubstrateResourceNode {
|
||||
// mappings.n2n->filter(m | m.nodes().root != self)->filter(m | m.nodes().root == self)->filter(m | m.nodes().snode.resourceAmountAvailable > 0)->notEmpty()
|
||||
//}
|
||||
|
||||
// TODO: Broken
|
||||
//constraint -> class::SubstrateResourceNode {
|
||||
// mappings.n2n->filter(m | m.nodes().root != self)->notEmpty() & true & true & true
|
||||
//}
|
||||
|
||||
constraint -> class::SubstrateResourceNode {
|
||||
mappings.n2n->filter(m | m.nodes().root != self)->notEmpty() & true & true & true
|
||||
}
|
||||
// TODO: These constraints should be possible, but !() is not yet implemented
|
||||
// Current status: java.lang.IllegalArgumentException: Optimization problem is impossible to solve: One ore more constraints return false by definition.
|
||||
//constraint -> class::SubstrateResourceNode {
|
||||
|
@ -194,14 +204,17 @@ constraint -> class::SubstrateResourceNode {
|
|||
// !(false) & self.resourceAmountTotal == 0
|
||||
//}
|
||||
|
||||
// TODO: Fix me (context is used!)
|
||||
// Current status: java.lang.IllegalArgumentException: Context must be used at least once per non-global constraint.
|
||||
// TODO: Broken
|
||||
//constraint -> class::VirtualResourceNode {
|
||||
// mappings.n2n->filter(m | true)->filter(n | n.nodes().snode == self)->notEmpty()
|
||||
//}
|
||||
|
||||
// TODO: Broken
|
||||
//constraint -> class::VirtualResourceNode {
|
||||
// mappings.n2n->filter(m | false)->filter(n | n.nodes().snode == self)->notEmpty()
|
||||
//}
|
||||
|
||||
// TODO: Broken
|
||||
//constraint -> class::VirtualResourceNode {
|
||||
// mappings.n2n->filter(m | 0 > 1)->filter(m | m.nodes().root == self)->notEmpty()
|
||||
//}
|
||||
|
@ -210,17 +223,22 @@ constraint -> class::VirtualResourceNode {
|
|||
self.resourceDemand > mappings.n2n->count()
|
||||
}
|
||||
|
||||
// TODO: Not yet implemented
|
||||
// Current status: java.lang.UnsupportedOperationException: Nested stream expressions and checking model preconditions within constraints are not yet supported. Instead, rules or patterns should be used for checking model preconditions.
|
||||
// TODO: Broken
|
||||
//constraint -> mapping::n2n {
|
||||
// self.nodes().snode.guests->notEmpty()
|
||||
//}
|
||||
|
||||
// TODO: Broken
|
||||
//constraint -> mapping::n2n {
|
||||
// self.nodes().root.containers->notEmpty()
|
||||
//}
|
||||
|
||||
// TODO: Broken
|
||||
//constraint -> mapping::n2n {
|
||||
// self.nodes().root.containers->filter(m | self.isMapped())->count() == 1
|
||||
// self.nodes().root.containers->filter(m | self.isMapped()->count() == 1
|
||||
//}
|
||||
|
||||
// TODO: Broken
|
||||
//constraint -> mapping::n2n {
|
||||
// self.nodes().root.containers->notEmpty()
|
||||
//}
|
||||
|
@ -228,90 +246,116 @@ constraint -> class::VirtualResourceNode {
|
|||
constraint -> class::VirtualResourceNode {
|
||||
mappings.n2n->count() > mappings.n2n->filter(m | m.nodes().vnode == self)->count()
|
||||
}
|
||||
// TODO: Fix compilation error
|
||||
// Current status: There are missing type constraint classes in src-gen)
|
||||
//constraint -> class::VirtualResourceNode {
|
||||
// mappings.n2n->count() - 1 > mappings.n2n->filter(m | m.nodes().vnode == self)->count() * 4
|
||||
// 2 - 1 > mappings.n2n->filter(m | m.nodes().vnode == self)->count() * 4
|
||||
// mappings.n2n->count() == self.resourceDemand
|
||||
// mappings.n2n->count() + 1 > mappings.n2n->filter(m | m.nodes().vnode == self)->count() * 4
|
||||
//}
|
||||
|
||||
constraint -> class::VirtualResourceNode {
|
||||
mappings.n2n->filter(m | m.nodes().vnode.resourceDemand ^ 1 + 1 == self.resourceDemand)->notEmpty()
|
||||
mappings.n2n->count() + 1 > mappings.n2n->filter(m | m.nodes().vnode == self)->count() * 4
|
||||
}
|
||||
|
||||
constraint -> mapping::n2n {
|
||||
self.nodes().snode.resourceAmountAvailable ^ 2 == 0
|
||||
}
|
||||
constraint -> mapping::n2n {
|
||||
2 ^ self.nodes().snode.resourceAmountAvailable == 1
|
||||
}
|
||||
constraint -> mapping::n2n {
|
||||
self.nodes().snode.resourceAmountAvailable * 2 == 1
|
||||
constraint -> class::VirtualResourceNode {
|
||||
mappings.n2n->count() - 1 > mappings.n2n->filter(m | m.nodes().vnode == self)->count() * 4
|
||||
}
|
||||
|
||||
constraint -> mapping::n2n {
|
||||
sin(self.nodes().vnode.resourceDemand) == 0
|
||||
}
|
||||
constraint -> mapping::n2n {
|
||||
cos(self.nodes().vnode.resourceDemand) == 0
|
||||
}
|
||||
constraint -> mapping::n2n {
|
||||
abs(self.nodes().vnode.resourceDemand) == 0
|
||||
}
|
||||
constraint -> mapping::n2n {
|
||||
sqrt(self.nodes().vnode.resourceDemand) == 0
|
||||
}
|
||||
constraint -> mapping::n2n {
|
||||
-(self.nodes().vnode.resourceDemand) == 0
|
||||
constraint -> class::VirtualResourceNode {
|
||||
2 - 1 > mappings.n2n->filter(m | m.nodes().vnode == self)->count() * 4
|
||||
}
|
||||
|
||||
constraint -> mapping::n2n {
|
||||
self.nodes().snode.resourceAmountAvailable == self.nodes().snode.resourceAmountTotal
|
||||
}
|
||||
constraint -> mapping::n2n {
|
||||
self.nodes().snode.resourceAmountAvailable - self.nodes().snode.resourceAmountTotal == 0
|
||||
constraint -> class::VirtualResourceNode {
|
||||
mappings.n2n->count() == self.resourceDemand
|
||||
}
|
||||
|
||||
constraint -> class::SubstrateContainer {
|
||||
mappings.n2n->filter(m | m.nodes().substrateContainer == self)->notEmpty()
|
||||
}
|
||||
// TODO: Broken
|
||||
//constraint -> class::VirtualResourceNode {
|
||||
// mappings.n2n->filter(m | m.nodes().vnode.resourceDemand ^ 1 + 1 == self.resourceDemand)->notEmpty()
|
||||
//}
|
||||
|
||||
constraint -> mapping::n2n {
|
||||
self.nodes().snode.resourceAmountAvailable ^ 1 == 0
|
||||
}
|
||||
// TODO: Broken
|
||||
//constraint -> mapping::n2n {
|
||||
// self.nodes().snode.resourceAmountAvailable pow 2 == 0
|
||||
//}
|
||||
|
||||
// TODO: Broken
|
||||
//constraint -> mapping::n2n {
|
||||
// 2 pow self.nodes().snode.resourceAmountAvailable == 1
|
||||
//}
|
||||
|
||||
// TODO: Broken
|
||||
//constraint -> mapping::n2n {
|
||||
// self.nodes().snode.resourceAmountAvailable * 2 == 1
|
||||
//}
|
||||
|
||||
// TODO: Broken
|
||||
//constraint -> mapping::n2n {
|
||||
// sin(self.nodes().vnode.resourceDemand) == 0
|
||||
//}
|
||||
|
||||
// TODO: Broken
|
||||
//constraint -> mapping::n2n {
|
||||
// cos(self.nodes().vnode.resourceDemand) == 0
|
||||
//}
|
||||
|
||||
// TODO: Broken
|
||||
//constraint -> mapping::n2n {
|
||||
// abs(self.nodes().vnode.resourceDemand) == 0
|
||||
//}
|
||||
|
||||
// TODO: Broken
|
||||
//constraint -> mapping::n2n {
|
||||
// sqrt(self.nodes().vnode.resourceDemand) == 0
|
||||
//}
|
||||
|
||||
// TODO: Broken
|
||||
//constraint -> mapping::n2n {
|
||||
// -(self.nodes().vnode.resourceDemand) == 0
|
||||
//}
|
||||
|
||||
// TODO: Broken
|
||||
//constraint -> mapping::n2n {
|
||||
// self.nodes().snode.resourceAmountAvailable == self.nodes().snode.resourceAmountTotal
|
||||
//}
|
||||
|
||||
// TODO: Broken
|
||||
//constraint -> mapping::n2n {
|
||||
// self.nodes().snode.resourceAmountAvailable - self.nodes().snode.resourceAmountTotal == 0
|
||||
//}
|
||||
|
||||
// TODO: Broken
|
||||
//constraint -> class::SubstrateContainer {
|
||||
// mappings.n2n->filter(m | m.nodes().substrateContainer == self)->notEmpty()
|
||||
//}
|
||||
|
||||
// TODO: Broken
|
||||
//constraint -> mapping::n2n {
|
||||
// self.nodes().snode.resourceAmountAvailable pow 1 == 0
|
||||
//}
|
||||
|
||||
constraint -> pattern::mapVnode {
|
||||
abs(self.nodes().snode.guests->filter(m | m.host != self.nodes().snode)->count()) == 0
|
||||
}
|
||||
|
||||
// TODO
|
||||
// TODO: Broken
|
||||
//constraint -> mapping::n2n {
|
||||
// self.isMapped()
|
||||
//}
|
||||
|
||||
// TODO: Fix compilation error
|
||||
// TODO: Broken
|
||||
//constraint -> pattern::mapVnode {
|
||||
// self.nodes().snode != null
|
||||
//}
|
||||
|
||||
// TODO: Broken
|
||||
//constraint -> class::VirtualResourceNode {
|
||||
// self.host != null
|
||||
//}
|
||||
// TODO: Use "buildConstantExpression" instead of "constantLhs/constantRhs"
|
||||
// If an expr can be "evaluated constantly", always use "buildConstantExpression"
|
||||
|
||||
// TODO: Fix error: "Couldn't resolve reference to GipsObjective 'o'."
|
||||
// Not yet implemented -> Should be something like "o()" later on.
|
||||
// TODO: Broken
|
||||
//constraint -> class::SubstrateResourceNode {
|
||||
// self.guests->filter(o | o != null)->notEmpty()
|
||||
//}
|
||||
|
||||
// TODO: Test access to "patterns." and "types."!
|
||||
|
||||
// TODO: This throws an error at build time
|
||||
constraint -> class::VirtualResourceNode {
|
||||
mappings.n2n->count() >= 1 | mappings.n2n->count() * self.resourceDemand <= 2
|
||||
mappings.n2n->count() >= 1 * self.resourceDemand | mappings.n2n->count() * self.resourceDemand <= 2
|
||||
}
|
||||
|
||||
|
||||
|
|
Loading…
Reference in a new issue