package jetbrains.mps.baseLanguage.collections.unittest.simple_operations; /*Generated by MPS */ import junit.framework.TestCase; import jetbrains.mps.internal.collections.runtime.Sequence; import java.util.Collections; import junit.framework.Assert; import jetbrains.mps.internal.collections.runtime.NotNullWhereFilter; import jetbrains.mps.internal.collections.runtime.ISequenceClosure; import java.util.Iterator; import jetbrains.mps.baseLanguage.closures.runtime.YieldingIterator; public class SelectNotNullOperation_Test extends TestCase { public void test_EmptySequence() throws Exception { Iterable<Integer> intS = Sequence.fromIterable(Collections.<Integer>emptyList()); Assert.assertTrue(Sequence.fromIterable(intS).where(new NotNullWhereFilter<Integer>()).isEmpty()); } public void test_IntegerSequence() throws Exception { Iterable<Integer> intS = Sequence.fromClosure(new ISequenceClosure<Integer>() { public Iterable<Integer> iterable() { return new Iterable<Integer>() { public Iterator<Integer> iterator() { return new YieldingIterator<Integer>() { 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__ = 3; this.yield((Integer) 20); return true; case 3: this.__CP__ = 1; this.yield(null); return true; case 0: this.__CP__ = 2; break; default: break __loop__; } } while (true); return false; } }; } }; } }); Assert.assertTrue(Sequence.fromIterable(intS).contains(20)); Assert.assertTrue(Sequence.fromIterable(intS).contains(null)); Iterable<Integer> intSNotNull = Sequence.fromIterable(intS).where(new NotNullWhereFilter<Integer>()); Assert.assertTrue(Sequence.fromIterable(intSNotNull).contains(20)); Assert.assertFalse(Sequence.fromIterable(intSNotNull).contains(null)); for (Integer i : Sequence.fromIterable(intS).where(new NotNullWhereFilter<Integer>())) { Assert.assertTrue(i != null); } } }