| modeltype Ecore uses ecore('http://www.eclipse.org/emf/2002/Ecore'); |
| |
| transformation bug415209; |
| |
| main() { |
| var list : List(EClass) := List { |
| object EClass{name := "class0"}, |
| object EClass{name := "class1"}, |
| object EClass{name := "class2"} |
| }; |
| |
| var c1 : Sequence(EClass) := list->select(true); |
| assert fatal (c1->size() = 3); |
| var c2 : Sequence(EClass) := list->reject(true); |
| assert fatal (c2->size() = 0); |
| var c3 : Sequence(OclAny) := list->collect(clone()); |
| assert fatal (c3->size() = 3); |
| var c4 : Sequence(EClass) := list->collect(clone().oclAsType(EClass)); |
| assert fatal (c4->size() = 3); |
| var c5 : Sequence(OclAny) := list->collectNested(clone()); |
| assert fatal (c5->size() = 3); |
| var c6 : Boolean := list->forAll(true); |
| assert fatal (c6); |
| var c7 : Boolean := list->exists(true); |
| assert fatal (c7); |
| var c8 : OrderedSet(EClass) := list->closure(oclAsType(EClass)); |
| assert fatal (c8->size() = 3); |
| var c9 : OrderedSet(OclAny) := list->closure(oclAsType(EClass)); |
| assert fatal (c9->size() = 3); |
| var c10 : EClass := list->any(true); |
| assert fatal (not c10.oclIsUndefined()); |
| var c11 : Boolean := list->isUnique(name); |
| assert fatal (c11); |
| var c12 : Boolean := list->one(name = "class0"); |
| assert fatal (c12); |
| var c13 : Sequence(EClass) := list->sortedBy(name); |
| assert fatal (c13->size() = 3); |
| var c14 : Integer := list->iterate(i : EClass; sum: Integer = 0 | sum + 1); |
| assert fatal (c14 = 3); |
| |
| var c20 : Boolean := (list = list); |
| assert fatal (c20); |
| var c21 : Boolean := (list <> list); |
| assert fatal (not c21); |
| var c22 : Integer := list->size(); |
| assert fatal (c22 = 3); |
| var c23 : Boolean := list->includes(list->any(true)); |
| assert fatal (c23); |
| var c24 : Boolean := list->excludes(list->any(true)); |
| assert fatal (not c24); |
| var c25 : Integer := list->count(list->any(true)); |
| assert fatal (c25 = 1); |
| var c26 : Boolean := list->includesAll(Sequence{list->any(true)}); |
| assert fatal (c26); |
| var c27 : Boolean := list->excludesAll(Sequence{list->any(true)}); |
| assert fatal (not c27); |
| var c28 : Boolean := list->isEmpty(); |
| assert fatal (not c28); |
| var c29 : Boolean := list->notEmpty(); |
| assert fatal (c29); |
| var c30 : Real := list->max(); |
| assert fatal (c30.oclIsInvalid()); |
| var c31 : Real := list->min(); |
| assert fatal (c31.oclIsInvalid()); |
| var c32 : Real := list->sum(); |
| assert fatal (c32.oclIsInvalid()); |
| var c33 : Set(Tuple(first: EClass, second: EClass)) := list->product(Sequence{list->any(true)}); |
| assert fatal (c33->size() = 3); |
| var c34 : Set(EClass) := list->asSet(); |
| assert fatal (c34->size() = 3); |
| var c35 : OrderedSet(EClass) := list->asOrderedSet(); |
| assert fatal (c35->size() = 3); |
| var c36 : Sequence(EClass) := list->asSequence(); |
| assert fatal (c36->size() = 3); |
| var c37 : Bag(EClass) := list->asBag(); |
| assert fatal (c37->size() = 3); |
| var c38 : Sequence(EClass) := list->flatten(); |
| assert fatal (c38->size() = 3); |
| |
| list->add(object EClass{}); |
| list := list->prepend(object EClass{}); |
| list->insertAt( object EClass{}, 1); |
| var c50 : String := list->joinfields("",",",""); |
| |
| var c60 : Sequence(OclAny) := list.clone(); -- shorthand for collect |
| assert fatal (c60->size() = 6); |
| var c61 : Sequence(OclAny) := list->xcollect(clone()); |
| assert fatal (c61->size() = 6); |
| var c62 : Sequence(OclAny) := list->clone(); -- shorhand for xcollect |
| assert fatal (c62->size() = 6); |
| var c63 : Sequence(EClass) := list->xselect(true); |
| assert fatal (c63->size() = 6); |
| var c64 : Sequence(EClass) := list[true]; -- shorthand for xselect |
| assert fatal (c64->size() = 6); |
| var c65 : EClass := list->selectOne(true); |
| assert fatal (not c65.oclIsUndefined()); |
| var c66 : EClass := list![true]; -- shorthand for selectOne |
| assert fatal (not c66.oclIsUndefined()); |
| var c67 : Sequence(OclAny) := list->collectselect(i;res=i.clone()|res.oclIsKindOf(EClass)); |
| assert fatal (c67->size() = 6); |
| var c68 : Sequence(EClass) := list->clone()[EClass]; -- shorhand for collectselect |
| assert fatal (c68->size() = 6); |
| var c69 : OclAny := list->collectselectOne(i;res=i.clone()|res.oclIsKindOf(EClass)); |
| assert fatal (c69 <> null); |
| var c70 : EClass := list->clone()![EClass]; -- shorhand for collectselectOne |
| assert fatal (c70 <> null); |
| |
| list->forEach(i) {}; |
| list->forOne(i) {}; |
| |
| var c90 : List(EClass) := list->asSequence()->asList(); |
| var c91 : List(EClass) := list->asBag()->asList(); |
| var c92 : List(EClass) := list->asSet()->asList(); |
| var c93 : List(EClass) := list->asOrderedSet()->asList(); |
| |
| var c100 : Sequence(EClass) := List{List{object EClass{}}}->flatten(); |
| var c101 : Sequence(EClass) := List{object EClass{}}->flatten(); |
| var c102 : Collection(Collection(EClass)); |
| var c103 : Collection(EClass) := c102->flatten(); |
| var c104 : Collection(EClass); |
| var c105 : Collection(EClass) := c104->flatten(); |
| } |