package jetbrains.mps.internalCollections.test.nullHacks;
/*Generated by MPS */
import jetbrains.mps.internalCollections.test.closures.Util_Test;
import jetbrains.mps.internal.collections.runtime.Sequence;
import junit.framework.Assert;
import java.util.List;
import jetbrains.mps.internal.collections.runtime.ListSequence;
import java.util.ArrayList;
import jetbrains.mps.internal.collections.runtime.ITranslator2;
import jetbrains.mps.internal.collections.runtime.ISequence;
import jetbrains.mps.internal.collections.runtime.ArrayUtils;
public class NullSequence_Test extends Util_Test {
public void test_nullSequence() throws Exception {
if (Sequence.USE_NULL_SEQUENCE) {
Iterable<Integer> nullSeq = null;
Assert.assertNull(nullSeq);
Assert.assertNull(Sequence.fromIterable(nullSeq).first());
Assert.assertNull(Sequence.fromIterable(nullSeq).last());
Assert.assertEquals(0, Sequence.fromIterable(nullSeq).count());
Assert.assertEquals(0, Sequence.fromIterable(nullSeq).count());
List<Integer> list5 = ListSequence.fromListAndArray(new ArrayList<Integer>(), 1, 2, 3, 4, 5);
ListSequence.fromList(list5).addSequence(Sequence.fromIterable(nullSeq));
this.assertIterableEquals(this.expect5(), list5);
ListSequence.fromList(list5).removeSequence(Sequence.fromIterable(nullSeq));
this.assertIterableEquals(this.expect5(), list5);
}
}
public void test_nullCompareOperations() throws Exception {
if (Sequence.USE_NULL_SEQUENCE) {
Iterable<Integer> input = this.input5();
this.assertIterableEquals(this.expect5(), Sequence.fromIterable(input).concat(null));
this.assertIterableEquals(this.expect5(), Sequence.fromIterable(input).union(null));
this.assertIterableEquals(this.expectEmpty(), Sequence.fromIterable(input).intersect(null));
this.assertIterableEquals(this.expect5(), Sequence.fromIterable(input).disjunction(null));
this.assertIterableEquals(this.expect5(), Sequence.fromIterable(input).subtract(null));
}
}
public void test_nullTranslate() throws Exception {
if (Sequence.USE_NULL_SEQUENCE) {
Iterable<Integer> input = this.input5();
Iterable<String> nullSeq = Sequence.fromIterable(input).translate(new ITranslator2<Integer, String>() {
public Iterable<String> translate(Integer it) {
return ((ISequence<String>) null);
}
});
Assert.assertEquals(0, Sequence.fromIterable(nullSeq).count());
Assert.assertEquals(0, Sequence.fromIterable(nullSeq).count());
}
}
public void test_nullList() throws Exception {
if (Sequence.USE_NULL_SEQUENCE) {
List<Integer> nullList = null;
Assert.assertNull(nullList);
Assert.assertNull(ListSequence.fromList(nullList).first());
Assert.assertNull(ListSequence.fromList(nullList).last());
Assert.assertNull(ListSequence.fromList(nullList).first());
Assert.assertNull(ListSequence.fromList(nullList).getElement(-1));
Assert.assertEquals(0, ListSequence.fromList(nullList).count());
Assert.assertEquals(0, ListSequence.fromList(nullList).count());
}
}
public void test_forEach() throws Exception {
if (Sequence.USE_NULL_SEQUENCE) {
for (Object foo : Sequence.emptySequence()) {
}
}
}
public void test_nullArray() throws Exception {
int[] arr = null;
for (int i : ArrayUtils.fromIntegerArray(arr)) {
Assert.assertTrue(false);
}
Integer[] iarr = null;
for (Integer i : Sequence.fromIterable(Sequence.fromArray(iarr))) {
Assert.assertTrue(false);
}
Object[] oarr = null;
for (Object i : Sequence.fromArray(oarr)) {
Assert.assertTrue(false);
}
}
}