blob: 70ddc75d9de4fafcd1c9bafa3c9f98c873321242 [file] [log] [blame]
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();
}