package jetbrains.mps.internalCollections.test.closures; /*Generated by MPS */ import jetbrains.mps.internal.collections.runtime.ISequence; import jetbrains.mps.internal.collections.runtime.Sequence; import jetbrains.mps.internal.collections.runtime.ISelector; import jetbrains.mps.internal.collections.runtime.ITranslator2; import java.util.Iterator; import jetbrains.mps.baseLanguage.closures.runtime.YieldingIterator; import jetbrains.mps.internal.collections.runtime.IWhereFilter; import java.util.Arrays; public class ChainedOperations_Test extends Util_Test { public void test_chainedCall() throws Exception { ISequence<String> test = Sequence.fromIterable(this.input5()).select(new ISelector<Integer, Integer>() { public Integer select(Integer it) { return it * 3; } }).translate(new ITranslator2<Integer, String>() { public Iterable<String> translate(final Integer it) { return new Iterable<String>() { public Iterator<String> iterator() { return new YieldingIterator<String>() { private int __CP__ = 0; protected boolean moveToNext() { __loop__: do { __switch__: switch (this.__CP__) { case -1: assert false : "Internal error"; return false; case 2: this.__CP__ = 1; this.yield(((String) String.valueOf(it))); return true; case 0: this.__CP__ = 2; break; default: break __loop__; } } while (true); return false; } }; } }; } }).where(new IWhereFilter<String>() { public boolean accept(String it) { return it.length() == 2; } }); this.assertIterableEquals(Arrays.asList("12", "15"), test.toIterable()); } public void test_chainedOperations() throws Exception { Iterable<String> test = Sequence.fromIterable(this.input5()).select(new ISelector<Integer, Integer>() { public Integer select(Integer it) { return it * 3; } }).translate(new ITranslator2<Integer, String>() { public Iterable<String> translate(final Integer it) { return new Iterable<String>() { public Iterator<String> iterator() { return new YieldingIterator<String>() { private int __CP__ = 0; protected boolean moveToNext() { __loop__: do { __switch__: switch (this.__CP__) { case -1: assert false : "Internal error"; return false; case 2: this.__CP__ = 1; this.yield(((String) String.valueOf(it))); return true; case 0: this.__CP__ = 2; break; default: break __loop__; } } while (true); return false; } }; } }; } }).where(new IWhereFilter<String>() { public boolean accept(String it) { return it.length() == 2; } }); this.assertIterableEquals(Arrays.asList("12", "15"), test); } }