[module orderedSetsServices('http://www.eclipse.org/emf/2002/Ecore')/]

[template public testOrderedSet(p : EPackage)]
[comment @main/]
[file ('testOrderedSet', false)]
[comment]TODO(LOT1) test mixed ordered sets (needs OclAny or something)[/comment]
[let strings : OrderedSet(String) = OrderedSet{'a','b','c'}]
[let integers : OrderedSet(Integer) = OrderedSet{1,2,3}]
[let reals : OrderedSet(Real) = OrderedSet{1.2,2.1,3.2}]
[let booleans : OrderedSet(Boolean) = OrderedSet{true, false, true}]
[let eClasses : OrderedSet(EClass) = p.eClassifiers->asOrderedSet()]
[let collections : OrderedSet(OrderedSet(String)) = OrderedSet{strings,OrderedSet{'e','f','g'},strings}]
  
@Test strings.toString() => [strings.toString()/]
@Test reals.toString() => [reals.toString()/]
@Test integers.toString() => [integers.toString()/]
@Test booleans.toString() => [booleans.toString()/]
@Test collections.toString() => [collections.toString()/]
  
@Test strings.oclIsTypeOf(String) => [strings.oclIsTypeOf(String)/]
@Test reals.oclIsTypeOf(Real) => [reals.oclIsTypeOf(Real)/]
@Test integers.oclIsTypeOf(Integer) => [integers.oclIsTypeOf(Integer)/]
@Test booleans.oclIsTypeOf(Boolean) => [booleans.oclIsTypeOf(Boolean)/]
@Test eClasses.oclIsTypeOf(EClass) => [eClasses.oclIsTypeOf(EClass)/]
  
@Test strings.oclIsKindOf(String) => [strings.oclIsKindOf(String)/]
@Test reals.oclIsKindOf(Real) => [reals.oclIsKindOf(Real)/]
@Test integers.oclIsKindOf(Integer) => [integers.oclIsKindOf(Integer)/]
@Test booleans.oclIsKindOf(Boolean) => [booleans.oclIsKindOf(Boolean)/]
@Test eClasses.oclIsKindOf(EObject) => [eClasses.oclIsKindOf(EObject)/]
  
@Test strings -> last() => [strings -> last()/]
@Test reals -> last() => [reals -> last()/]
@Test integers -> last() => [integers -> last()/]
@Test booleans -> last() => [booleans -> last()/]
@Test eClasses -> last().name => [eClasses -> last().name/]
@Test collections -> last() => [collections -> last()/]
  
@Test strings -> collect(t | t.toString()) => [strings -> collect(t | t.toString())/]
@Test integers -> collect(t | t.toString()) => [integers -> collect(t | t.toString())/]
@Test booleans -> collect(t | t.toString()) => [booleans -> collect(t | t.toString())/]
@Test reals -> collect(t | t.toString()) => [reals -> collect(t | t.toString())/]
@Test eClasses -> collect(t | t.name) => [eClasses -> collect(t | t.name)/]
@Test collections -> collect(t | t.toString()) => [collections -> collect(t | t.toString())/]
  
@Test strings -> size() => [strings -> size()/]
@Test integers -> size() => [integers -> size()/]
@Test booleans -> size() => [booleans -> size()/]
@Test reals -> size() => [reals -> size()/]
@Test eClasses -> size() => [eClasses -> size()/]
@Test collections -> size() => [collections -> size()/]
  
@Test strings -> notEmpty() => [strings -> notEmpty()/]
@Test integers -> notEmpty() => [integers -> notEmpty()/]
@Test booleans -> notEmpty() => [booleans -> notEmpty()/]
@Test reals -> notEmpty() => [reals -> notEmpty()/]
@Test eClasses -> notEmpty() => [eClasses -> notEmpty()/]
@Test collections -> notEmpty() => [collections -> notEmpty()/]
  
@Test strings -> isEmpty() => [strings -> isEmpty()/]
@Test integers -> isEmpty() => [integers -> isEmpty()/]
@Test booleans -> isEmpty() => [booleans -> isEmpty()/]
@Test reals -> isEmpty() => [reals -> isEmpty()/]
@Test eClasses -> isEmpty() => [eClasses -> isEmpty()/]
@Test collections -> isEmpty() => [collections -> isEmpty()/]
  
@Test strings -> reverse() => [strings -> reverse()/]
@Test integers -> reverse() => [integers -> reverse()/]
@Test booleans -> reverse() => [booleans -> reverse()/]
@Test reals -> reverse() => [reals -> reverse()/]
@Test eClasses -> reverse() -> collect(name) => [eClasses -> reverse() -> collect(name)/]
@Test collections -> reverse() => [collections -> reverse()/]
  
@Test strings -> first() => [strings -> first()/]
@Test integers -> first() => [integers -> first()/]
@Test booleans -> first() => [booleans -> first()/]
@Test reals -> first() => [reals -> first()/]
@Test eClasses -> first().name => [eClasses -> first().name/]
@Test collections -> first() => [collections -> first()/]
  
@Test strings -> asSequence() => [strings -> asSequence()/]
@Test integers -> asSequence() => [integers -> asSequence()/]
@Test booleans -> asSequence() => [booleans -> asSequence()/]
@Test reals -> asSequence() => [reals -> asSequence()/]
@Test eClasses -> asSequence() -> collect(name) => [eClasses -> asSequence() -> collect(name)/]
@Test collections -> asSequence() => [collections -> asSequence()/]
  
@Test strings -> asOrderedSet()  => [strings -> asOrderedSet() /]
@Test integers -> asOrderedSet()  => [integers -> asOrderedSet() /]
@Test booleans -> asOrderedSet()  => [booleans -> asOrderedSet() /]
@Test reals -> asOrderedSet()  => [reals -> asOrderedSet() /]
@Test eClasses -> asOrderedSet() -> collect(name) => [eClasses -> asOrderedSet() -> collect(name)/]
@Test collections -> asOrderedSet()  => [collections -> asOrderedSet() /]
  
@Test strings -> sep(',') => [strings -> sep(',')/]
@Test integers -> sep(',') => [integers -> sep(',')/]
@Test booleans -> sep(',') => [booleans -> sep(',')/]
@Test reals -> sep(',') => [reals -> sep(',')/]
@Test collections -> sep(',') => [collections -> sep(',')/]
  
@Test strings -> sep('{', ',', '}') => [strings -> sep('{', ',', '}')/]
@Test integers -> sep('{', ',', '}') => [integers -> sep('{', ',', '}')/]
@Test booleans -> sep('{', ',', '}') => [booleans -> sep('{', ',', '}')/]
@Test reals -> sep('{', ',', '}') => [reals -> sep('{', ',', '}')/]
@Test collections -> sep('{', ',', '}') => [collections -> sep('{', ',', '}')/]
  
@Test strings -> includesAll(OrderedSet{'a','b'}) => [strings -> includesAll(OrderedSet{'a','b'})/]
@Test strings -> includesAll(OrderedSet{'a','b','d'}) => [strings -> includesAll(OrderedSet{'a','b','d'})/]
@Test integers -> includesAll(OrderedSet{1,2}) => [integers -> includesAll(OrderedSet{1,2})/]
@Test integers -> includesAll(OrderedSet{1,2,4}) => [integers -> includesAll(OrderedSet{1,2,4})/]
@Test booleans -> includesAll(OrderedSet{true,false}) => [booleans -> includesAll(OrderedSet{true,false})/]
@Test OrderedSet{false} -> includesAll(OrderedSet{true,false}) => [OrderedSet{false} -> includesAll(OrderedSet{true,false})/]
@Test reals -> includesAll(OrderedSet{1.2,2.1}) => [reals -> includesAll(OrderedSet{1.2,2.1})/]
@Test reals -> includesAll(OrderedSet{1.2,2.3}) => [reals -> includesAll(OrderedSet{1.2,2.3})/]
@Test collections -> includesAll(OrderedSet{OrderedSet{'a','b','c'}}) => [collections -> includesAll(OrderedSet{OrderedSet{'a','b','c'}})/]
@Test collections -> includesAll(OrderedSet{OrderedSet{'a','b','d'}}) => [collections -> includesAll(OrderedSet{OrderedSet{'a','b','d'}})/]
@Test collections -> includesAll(OrderedSet{'a','b','d'}) => [collections -> includesAll(OrderedSet{'a','b','d'})/]
@Test eClasses -> includesAll(p.eClassifiers) => [eClasses -> includesAll(p.eClassifiers)/]
@Test OrderedSet{p.eClassifiers->first()}-> includesAll(p.eClassifiers) => [OrderedSet{p.eClassifiers->first()}-> includesAll(p.eClassifiers)/]
  
@Test strings -> includes('z') => [strings -> includes('z')/]
@Test strings -> includes('a') => [strings -> includes('a')/]
@Test integers -> includes(6) => [integers -> includes(6)/]
@Test integers -> includes(2) => [integers -> includes(2)/]
@Test OrderedSet{true,true} -> includes(false) => [OrderedSet{true,true} -> includes(false)/]
@Test booleans -> includes(false) => [booleans -> includes(false)/]
@Test reals -> includes(5.2) => [reals -> includes(5.2)/]
@Test reals -> includes(1.2) => [reals -> includes(1.2)/]
@Test eClasses -> includes(p.eClassifiers->first()) => [eClasses -> includes(p.eClassifiers->first())/]
@Test OrderedSet{p.eClassifiers->first()} -> includes(p.eClassifiers->last()) => [OrderedSet{p.eClassifiers->first()} -> includes(p.eClassifiers->last())/]
@Test collections -> includes(OrderedSet{'a','b','c'}) => [collections -> includes(OrderedSet{'a','b','c'})/]
@Test collections -> includes(OrderedSet{'z','b','c'}) => [collections -> includes(OrderedSet{'z','b','c'})/]
  
@Test strings -> excludesAll(OrderedSet{'a','b'}) => [strings -> excludesAll(OrderedSet{'a','b'})/]
@Test strings -> excludesAll(OrderedSet{'a','b','d'}) => [strings -> excludesAll(OrderedSet{'a','b','d'})/]
@Test integers -> excludesAll(OrderedSet{1,2}) => [integers -> excludesAll(OrderedSet{1,2})/]
@Test integers -> excludesAll(OrderedSet{1,2,4}) => [integers -> excludesAll(OrderedSet{1,2,4})/]
@Test booleans -> excludesAll(OrderedSet{true,false}) => [booleans -> excludesAll(OrderedSet{true,false})/]
@Test OrderedSet{false} -> excludesAll(OrderedSet{true,false}) => [OrderedSet{false} -> excludesAll(OrderedSet{true,false})/]
@Test reals -> excludesAll(OrderedSet{1.2,2.1}) => [reals -> excludesAll(OrderedSet{1.2,2.1})/]
@Test reals -> excludesAll(OrderedSet{1.2,2.3}) => [reals -> excludesAll(OrderedSet{1.2,2.3})/]
@Test collections -> excludesAll(OrderedSet{OrderedSet{'a','b','c'}}) => [collections -> excludesAll(OrderedSet{OrderedSet{'a','b','c'}})/]
@Test collections -> excludesAll(OrderedSet{OrderedSet{'a','b','d'}}) => [collections -> excludesAll(OrderedSet{OrderedSet{'a','b','d'}})/]
@Test collections -> excludesAll(OrderedSet{'a','b','d'}) => [collections -> excludesAll(OrderedSet{'a','b','d'})/]
@Test eClasses -> excludesAll(p.eClassifiers) => [eClasses -> excludesAll(p.eClassifiers)/]
@Test OrderedSet{p.eClassifiers->first()}-> excludesAll(p.eClassifiers) => [OrderedSet{p.eClassifiers->first()}-> excludesAll(p.eClassifiers)/]
  
@Test strings -> excludes('z') => [strings -> excludes('z')/]
@Test strings -> excludes('a') => [strings -> excludes('a')/]
@Test integers -> excludes(6) => [integers -> excludes(6)/]
@Test integers -> excludes(2) => [integers -> excludes(2)/]
@Test OrderedSet{true} -> excludes(false) => [OrderedSet{true} -> excludes(false)/]
@Test booleans -> excludes(false) => [booleans -> excludes(false)/]
@Test reals -> excludes(5.2) => [reals -> excludes(5.2)/]
@Test reals -> excludes(1.2) => [reals -> excludes(1.2)/]
@Test eClasses -> excludes(p.eClassifiers->first()) => [eClasses -> excludes(p.eClassifiers->first())/]
@Test OrderedSet{p.eClassifiers->first()} -> excludes(p.eClassifiers->last()) => [OrderedSet{p.eClassifiers->first()} -> excludes(p.eClassifiers->last())/]
@Test collections -> excludes(OrderedSet{'a','b','c'}) => [collections -> excludes(OrderedSet{'a','b','c'})/]
@Test collections -> excludes(OrderedSet{'z','b','c'}) => [collections -> excludes(OrderedSet{'z','b','c'})/]
  
@Test strings -> union(OrderedSet{'a','b'}) => [strings -> union(OrderedSet{'a','b'})/]
@Test strings -> union(OrderedSet{'a','b','d'}) => [strings -> union(OrderedSet{'a','b','d'})/]
@Test integers -> union(OrderedSet{1,2}) => [integers -> union(OrderedSet{1,2})/]
@Test integers -> union(OrderedSet{1,2,4}) => [integers -> union(OrderedSet{1,2,4})/]
@Test booleans -> union(OrderedSet{true,false}) -> sortedBy(toString()) => [booleans -> union(OrderedSet{true,false}) -> sortedBy(toString())/]
@Test OrderedSet{false} -> union(OrderedSet{true,false}) -> sortedBy(toString()) => [OrderedSet{false} -> union(OrderedSet{true,false}) -> sortedBy(toString())/]
@Test reals -> union(OrderedSet{1.2,2.1}) -> sortedBy(toString()) => [reals -> union(OrderedSet{1.2,2.1}) -> sortedBy(toString())/]
@Test reals -> union(OrderedSet{1.2,2.3}) -> sortedBy(toString()) => [reals -> union(OrderedSet{1.2,2.3}) -> sortedBy(toString())/]
@Test collections -> union(OrderedSet{OrderedSet{'a','b','c'}}) -> sortedBy(toString()) => [collections -> union(OrderedSet{OrderedSet{'a','b','c'}}) -> sortedBy(toString())/]
@Test collections -> union(OrderedSet{OrderedSet{'a','b','d'}}) -> sortedBy(toString()) => [collections -> union(OrderedSet{OrderedSet{'a','b','d'}}) -> sortedBy(toString())/]
@Test eClasses -> union(p.eClassifiers->asOrderedSet()) -> size() => [eClasses -> union(p.eClassifiers->asOrderedSet()) -> size()/]
[comment]A4-DIFFERS collections.union(collection): returns nothing[collections -> union(OrderedSet{'a','b','d'}) -> sortedBy(toString())/][/comment]
  
@Test strings -> count('z') => [strings -> count('z')/]
@Test strings -> count('a') => [strings -> count('a')/]
@Test integers -> count(6) => [integers -> count(6)/]
@Test integers -> count(2) => [integers -> count(2)/]
@Test OrderedSet{true,true} -> count(false) => [OrderedSet{true,true} -> count(false)/]
@Test booleans -> count(false) => [booleans -> count(false)/]
@Test reals -> count(5.2) => [reals -> count(5.2)/]
@Test reals -> count(1.2) => [reals -> count(1.2)/]
@Test eClasses -> count(p.eClassifiers->first()) => [eClasses -> count(p.eClassifiers->first())/]
@Test OrderedSet{p.eClassifiers->first()} -> count(p.eClassifiers->last()) => [OrderedSet{p.eClassifiers->first()} -> count(p.eClassifiers->last())/]
@Test collections -> count(OrderedSet{'a','b','c'}) => [collections -> count(OrderedSet{'a','b','c'})/]
@Test collections -> count(OrderedSet{'z','b','c'}) => [collections -> count(OrderedSet{'z','b','c'})/]
[comment]A4-UNSUPPORTED(LOT1) WIP https://git.eclipse.org/r/#/c/162938/ append[/comment]
[comment]
[strings -> append('z')/]
[strings -> append('a')/]
[Sequence{'a','b','c'} -> append('b')/]
[integers -> append(6)/]
[integers -> append(2)/]
[OrderedSet{true,true} -> append(false)/]
[booleans -> append(false)/]
[reals -> append(5.2)/]
[reals -> append(1.2)/]
[eClasses -> append(p.eClassifiers->first()) -> collect(name)/]
[OrderedSet{p.eClassifiers->first()} -> append(p.eClassifiers->last()) -> collect(name)/]
[collections -> append(OrderedSet{'a','b','c'})/]
[collections -> append(OrderedSet{'z','b','c'})/]
[/comment]
  
@Test strings -> prepend('z') => [strings -> prepend('z')/]
@Test strings -> prepend('a') => [strings -> prepend('a')/]
@Test integers -> prepend(6) => [integers -> prepend(6)/]
@Test integers -> prepend(2) => [integers -> prepend(2)/]
@Test OrderedSet{true,true} -> prepend(false) => [OrderedSet{true,true} -> prepend(false)/]
@Test booleans -> prepend(false) => [booleans -> prepend(false)/]
@Test reals -> prepend(5.2) => [reals -> prepend(5.2)/]
@Test reals -> prepend(1.2) => [reals -> prepend(1.2)/]
@Test eClasses -> prepend(p.eClassifiers->first()) -> collect(name) => [eClasses -> prepend(p.eClassifiers->first()) -> collect(name)/]
@Test OrderedSet{p.eClassifiers->first()} -> prepend(p.eClassifiers->last()) -> collect(name) => [OrderedSet{p.eClassifiers->first()} -> prepend(p.eClassifiers->last()) -> collect(name)/]
@Test collections -> prepend(OrderedSet{'a','b','c'}) => [collections -> prepend(OrderedSet{'a','b','c'})/]
@Test collections -> prepend(OrderedSet{'z','b','c'}) => [collections -> prepend(OrderedSet{'z','b','c'})/]
  
@Test strings -> insertAt(1,'z') => [strings -> insertAt(1,'z')/]
@Test strings -> insertAt(1,'a') => [strings -> insertAt(1,'a')/]
@Test integers -> insertAt(1,6) => [integers -> insertAt(1,6)/]
@Test integers -> insertAt(1,2) => [integers -> insertAt(1,2)/]
@Test OrderedSet{true,true} -> insertAt(1,false) => [OrderedSet{true,true} -> insertAt(1,false)/]
@Test booleans -> insertAt(1,false) => [booleans -> insertAt(1,false)/]
@Test reals -> insertAt(1,5.2) => [reals -> insertAt(1,5.2)/]
@Test reals -> insertAt(1,1.2) => [reals -> insertAt(1,1.2)/]
@Test eClasses -> insertAt(1,p.eClassifiers->first()) -> collect(name) => [eClasses -> insertAt(1,p.eClassifiers->first()) -> collect(name)/]
@Test OrderedSet{p.eClassifiers->first()} -> insertAt(1,p.eClassifiers->last()) -> collect(name) => [OrderedSet{p.eClassifiers->first()} -> insertAt(1,p.eClassifiers->last()) -> collect(name)/]
@Test collections -> insertAt(1,OrderedSet{'a','b','c'}) => [collections -> insertAt(1,OrderedSet{'a','b','c'})/]
@Test collections -> insertAt(1,OrderedSet{'z','b','c'}) => [collections -> insertAt(1,OrderedSet{'z','b','c'})/]
  
@Test strings -> indexOf('a') => [strings -> indexOf('a')/]
@Test integers -> indexOf(2) => [integers -> indexOf(2)/]
@Test booleans -> indexOf(false) => [booleans -> indexOf(false)/]
@Test reals -> indexOf(1.2) => [reals -> indexOf(1.2)/]
@Test eClasses -> indexOf(p.eClassifiers->first()) => [eClasses -> indexOf(p.eClassifiers->first())/]
@Test collections -> indexOf(OrderedSet{'a','b','c'}) => [collections -> indexOf(OrderedSet{'a','b','c'})/]
[comment]IRRELEVANT-A4-DIFFERS indexOf(invalidArg): returns 0 instead of 'invalid'[/comment]
[comment]
[strings -> indexOf('z')/]
[integers -> indexOf(6)/]
[OrderedSet{true,true} -> indexOf(false)/]
[reals -> indexOf(5.2)/]
[OrderedSet{p.eClassifiers->first()} -> indexOf(p.eClassifiers->last())/]
[collections -> indexOf(Sequence{'z','b','c'})/]
[/comment]
  
@Test strings -> including('z') => [strings -> including('z')/]
@Test strings -> including('a') => [strings -> including('a')/]
@Test integers -> including(6) => [integers -> including(6)/]
@Test integers -> including(2) => [integers -> including(2)/]
@Test OrderedSet{true,true} -> including(false) => [OrderedSet{true,true} -> including(false)/]
@Test booleans -> including(false) => [booleans -> including(false)/]
@Test reals -> including(5.2) => [reals -> including(5.2)/]
@Test reals -> including(1.2) => [reals -> including(1.2)/]
@Test eClasses -> including(p.eClassifiers->first()) -> size() => [eClasses -> including(p.eClassifiers->first()) -> size()/]
@Test OrderedSet{p.eClassifiers->first()} -> including(p.eClassifiers->last()) -> collect(name) -> sortedBy(toString()) => [OrderedSet{p.eClassifiers->first()} -> including(p.eClassifiers->last()) -> collect(name) -> sortedBy(toString())/]
@Test collections -> including(OrderedSet{'a','b','c'}) => [collections -> including(OrderedSet{'a','b','c'})/]
@Test collections -> including(OrderedSet{'z','b','c'}) => [collections -> including(OrderedSet{'z','b','c'})/]
  
@Test strings -> excluding('z') => [strings -> excluding('z')/]
@Test strings -> excluding('a') => [strings -> excluding('a')/]
@Test integers -> excluding(6) => [integers -> excluding(6)/]
@Test integers -> excluding(2) => [integers -> excluding(2)/]
@Test OrderedSet{true,true} -> excluding(false) => [OrderedSet{true,true} -> excluding(false)/]
@Test booleans -> excluding(false) => [booleans -> excluding(false)/]
@Test reals -> excluding(5.2) => [reals -> excluding(5.2)/]
@Test eClasses -> excluding(p.eClassifiers->first()) -> collect(name) -> sortedBy(toString()) => [eClasses -> excluding(p.eClassifiers->first()) -> collect(name) -> sortedBy(toString())/]
@Test OrderedSet{p.eClassifiers->first()} -> excluding(p.eClassifiers->last()) -> collect(name) => [OrderedSet{p.eClassifiers->first()} -> excluding(p.eClassifiers->last()) -> collect(name)/]
@Test collections -> excluding(OrderedSet{'a','b','c'}) => [collections -> excluding(OrderedSet{'a','b','c'})/]
@Test collections -> excluding(OrderedSet{'z','b','c'}) => [collections -> excluding(OrderedSet{'z','b','c'})/]
  
@Test strings -> at(1) => [strings -> at(1)/]
@Test integers -> at(1) => [integers -> at(1)/]
@Test booleans -> at(1) => [booleans -> at(1)/]
@Test reals -> at(1) => [reals -> at(1)/]
@Test eClasses -> at(1).name => [eClasses -> at(1).name/]
@Test collections -> at(1) => [collections -> at(1)/]
  
@Test OrderedSet{'aaa','bb','ccccc'} -> sortedBy(t | t.size()) => [OrderedSet{'aaa','bb','ccccc'} -> sortedBy(t | t.size())/]
@Test integers -> sortedBy(t | t) => [integers -> sortedBy(t | t)/]
@Test reals -> sortedBy(t | t) => [reals -> sortedBy(t | t)/]
@Test booleans -> sortedBy(t | t.toString()) => [booleans -> sortedBy(t | t.toString())/]
@Test eClasses -> sortedBy(t | t.name) -> collect(name) => [eClasses -> sortedBy(t | t.name) -> collect(name)/]
@Test OrderedSet{OrderedSet{'a','b','c'}, OrderedSet{'a','b'}} -> sortedBy(t | t->size()) => [OrderedSet{OrderedSet{'a','b','c'}, OrderedSet{'a','b'}} -> sortedBy(t | t->size())/]
  
@Test integers -> sum() => [integers -> sum()/]
@Test reals -> sum() => [reals -> sum()/]
  
@Test strings -> exists(t | t = 'b') => [strings -> exists(t | t = 'b')/]
@Test strings -> exists(t | t = 'z') => [strings -> exists(t | t = 'z')/]
@Test integers -> exists(t | t = 1) => [integers -> exists(t | t = 1)/]
@Test integers -> exists(t | t = 4) => [integers -> exists(t | t = 4)/]
@Test reals -> exists(t | t = 1.2) => [reals -> exists(t | t = 1.2)/]
@Test reals -> exists(t | t = 4.2) => [reals -> exists(t | t = 4.2)/]
@Test booleans -> exists(t | t = true) => [booleans -> exists(t | t = true)/]
@Test eClasses -> exists(t | t.name = 'ClasseB') => [eClasses -> exists(t | t.name = 'ClasseB')/]
@Test collections -> exists(t | t.size() = 3) => [collections -> exists(t | t.size() = 3)/]
@Test collections -> exists(t | t.size() = 1) => [collections -> exists(t | t.size() = 1)/]
  
@Test strings -> select(t | t = 'b') => [strings -> select(t | t = 'b')/]
@Test strings -> select(t | t = 'z') => [strings -> select(t | t = 'z')/]
@Test integers -> select(t | t = 1) => [integers -> select(t | t = 1)/]
@Test integers -> select(t | t = 4) => [integers -> select(t | t = 4)/]
@Test reals -> select(t | t = 1.2) => [reals -> select(t | t = 1.2)/]
@Test reals -> select(t | t = 4.2) => [reals -> select(t | t = 4.2)/]
@Test booleans -> select(t | t = true) => [booleans -> select(t | t = true)/]
@Test eClasses -> select(t | t.name = 'ClasseB') -> collect(name) => [eClasses -> select(t | t.name = 'ClasseB') -> collect(name)/]
@Test collections -> select(t | t.size() = 3) => [collections -> select(t | t.size() = 3)/]
@Test collections -> select(t | t.size() = 1) => [collections -> select(t | t.size() = 1)/]
  
@Test strings -> reject(t | t = 'b') => [strings -> reject(t | t = 'b')/]
@Test strings -> reject(t | t = 'z') => [strings -> reject(t | t = 'z')/]
@Test integers -> reject(t | t = 1) => [integers -> reject(t | t = 1)/]
@Test integers -> reject(t | t = 4) => [integers -> reject(t | t = 4)/]
@Test reals -> reject(t | t = 1.2) => [reals -> reject(t | t = 1.2)/]
@Test reals -> reject(t | t = 4.2) => [reals -> reject(t | t = 4.2)/]
@Test booleans -> reject(t | t = true) => [booleans -> reject(t | t = true)/]
@Test eClasses -> reject(t | t.name = 'ClasseB') -> collect(name) => [eClasses -> reject(t | t.name = 'ClasseB') -> collect(name)/]
@Test collections -> reject(t | t.size() = 3) => [collections -> reject(t | t.size() = 3)/]
@Test collections -> reject(t | t.size() = 1) => [collections -> reject(t | t.size() = 1)/]
  
@Test strings -> forAll(t | t = 'b') => [strings -> forAll(t | t = 'b')/]
@Test strings -> forAll(t | t = 'z') => [strings -> forAll(t | t = 'z')/]
@Test integers -> forAll(t | t = 1) => [integers -> forAll(t | t = 1)/]
@Test integers -> forAll(t | t = 4) => [integers -> forAll(t | t = 4)/]
@Test reals -> forAll(t | t = 1.2) => [reals -> forAll(t | t = 1.2)/]
@Test reals -> forAll(t | t = 4.2) => [reals -> forAll(t | t = 4.2)/]
@Test booleans -> forAll(t | t = true) => [booleans -> forAll(t | t = true)/]
@Test eClasses -> forAll(t | t.name = 'ClasseB') => [eClasses -> forAll(t | t.name = 'ClasseB')/]
@Test collections -> forAll(t | t.size() = 3) => [collections -> forAll(t | t.size() = 3)/]
@Test collections -> forAll(t | t.size() = 1) => [collections -> forAll(t | t.size() = 1)/]
  
@Test strings -> any(t | t = 'b') => [strings -> any(t | t = 'b')/]
@Test strings -> any(t | t = 'z') => [strings -> any(t | t = 'z')/]
@Test integers -> any(t | t = 1) => [integers -> any(t | t = 1)/]
@Test integers -> any(t | t = 4) => [integers -> any(t | t = 4)/]
@Test reals -> any(t | t = 1.2) => [reals -> any(t | t = 1.2)/]
@Test reals -> any(t | t = 4.2) => [reals -> any(t | t = 4.2)/]
@Test booleans -> any(t | t = true) => [booleans -> any(t | t = true)/]
@Test eClasses -> any(t | t.name = 'ClasseB') -> collect(name) => [eClasses -> any(t | t.name = 'ClasseB') -> collect(name)/]
@Test collections -> any(t | t.size() = 3) => [collections -> any(t | t.size() = 3)/]
@Test collections -> any(t | t.size() = 1) => [collections -> any(t | t.size() = 1)/]
  
@Test strings -> one(t | t = 'b') => [strings -> one(t | t = 'b')/]
@Test strings -> one(t | t = 'z') => [strings -> one(t | t = 'z')/]
@Test integers -> one(t | t = 1) => [integers -> one(t | t = 1)/]
@Test integers -> one(t | t = 4) => [integers -> one(t | t = 4)/]
@Test reals -> one(t | t = 1.2) => [reals -> one(t | t = 1.2)/]
@Test reals -> one(t | t = 4.2) => [reals -> one(t | t = 4.2)/]
@Test booleans -> one(t | t = true) => [booleans -> one(t | t = true)/]
@Test eClasses -> one(t | t.name = 'ClasseB') => [eClasses -> one(t | t.name = 'ClasseB')/]
@Test collections -> one(t | t.size() = 3) => [collections -> one(t | t.size() = 3)/]
@Test collections -> one(t | t.size() = 1) => [collections -> one(t | t.size() = 1)/]
  
@Test strings -> isUnique(toString()) => [strings -> isUnique(toString())/]
@Test integers -> isUnique(toString()) => [integers -> isUnique(toString())/]
@Test reals -> isUnique(toString()) => [reals -> isUnique(toString())/]
@Test booleans -> isUnique(toString()) => [booleans -> isUnique(toString())/]
@Test eClasses -> isUnique(toString()) => [eClasses -> isUnique(toString())/]
@Test collections -> isUnique(toString()) => [collections -> isUnique(toString())/]
  
@Test strings -> oclIsUndefined() => [strings -> oclIsUndefined()/]
@Test integers -> oclIsUndefined() => [integers -> oclIsUndefined()/]
@Test booleans -> oclIsUndefined() => [booleans -> oclIsUndefined()/]
@Test reals -> oclIsUndefined() => [reals -> oclIsUndefined()/]
@Test eClasses -> oclIsUndefined() => [eClasses -> oclIsUndefined()/]
@Test collections -> oclIsUndefined() => [collections -> oclIsUndefined()/]
@Test strings.oclIsUndefined() => [strings.oclIsUndefined()/]
@Test integers.oclIsUndefined() => [integers.oclIsUndefined()/]
@Test booleans.oclIsUndefined() => [booleans.oclIsUndefined()/]
@Test reals.oclIsUndefined() => [reals.oclIsUndefined()/]
@Test eClasses.oclIsUndefined() => [eClasses.oclIsUndefined()/]
@Test collections.oclIsUndefined() => [collections.oclIsUndefined()/]
  
@Test OrderedSet{p,'test',true,1,2.2} -> filter(EPackage) -> first() = p => [OrderedSet{p,'test',true,1,2.2} -> filter(EPackage) -> first() = p/]
@Test OrderedSet{p,'test',true,1,2.2} -> filter(EClass) -> size() => [OrderedSet{p,'test',true,1,2.2} -> filter(EClass) -> size()/]
[comment]A4-UNSUPPORTED(LOT1) WIP https://git.eclipse.org/r/#/c/162879/ filter(primitiveType)[/comment]
[comment]
[OrderedSet{p,'test',true,1,2.2} -> filter(String)/]
[OrderedSet{p,'test',true,1,2.2} -> filter(Integer)/]
[OrderedSet{p,'test',true,1,2.2} -> filter(Boolean)/]
[OrderedSet{p,'test',true,1,2.2} -> filter(Real)/]
[/comment]
[comment]TODO symmetricDifference(s), [/comment]
[comment]TODO subOrderedSet(lower, upper), [/comment]
[comment]TODO intersection(bag)[/comment]
[comment]TODO ? closure[/comment]
[comment]TODO ? asBag: order changes[/comment]
[comment]TODO ? asSet: order changes[/comment]
[comment]A4-UNSUPPORTED product[/comment]
[comment]A4-UNSUPPORTED removeAll[/comment]
[comment]A4-UNSUPPORTED flatten[/comment]
[comment]A4-UNSUPPORTED selectByType[/comment]
[comment]A4-UNSUPPORTED selectByKind[/comment]
[comment]A4-UNSUPPORTED addAll[/comment]
[comment]A4-UNSUPPORTED startsWith[/comment]
[comment]A4-UNSUPPORTED indexOfSlice[/comment]
[comment]A4-UNSUPPORTED endsWith[/comment]
[comment]A4-UNSUPPORTED dropRight[/comment]
[comment]A4-UNSUPPORTED drop[/comment]
[comment]A4-UNSUPPORTED lastIndexOf[/comment]
[comment]A4-UNSUPPORTED lastIndexOfSlice[/comment]
[comment]A4-UNSUPPORTED oclAsSet[/comment]
[comment]A4-UNSUPPORTED min[/comment]
[comment]A4-UNSUPPORTED max[/comment]
[comment]A4-UNSUPPORTED collectNested[/comment]
[comment]IRRELEVANT-A4-UNSUPPORTED oclIsInvalid[/comment]
[comment]IRRELEVANT-A4-DIFFERS: validation error instead of 'invalid' [strings.oclAsType(Integer)/][/comment]
[/let][/let][/let][/let][/let][/let]
[/file]
[/template]
