public void CanImplementISeqWithImmutableCollection() { var seq = new ImmutableListSeq <int>(ImmutableList.Create(1, 2, 3)); Assert.That(seq, Is.EqualTo(new[] { 1, 2, 3 })); seq.Conj(4); Assert.That(seq, Is.EqualTo(new[] { 1, 2, 3, 4 })); var item = seq.Take(); Assert.That(seq, Is.EqualTo(new[] { 2, 3, 4 })); Assert.That(item, Is.EqualTo(1)); }
public void AsAsyncWorksOnImmutableCollectionBasedISeq() { var innerSeq = new ImmutableListSeq <int>(ImmutableList.Create(1, 2, 3)); var asyncSeq = innerSeq.AsAsync(); asyncSeq.Conj(4); Assert.That(asyncSeq, Is.EqualTo(new[] { 1, 2, 3, 4 })); var item = asyncSeq.Take(); Assert.That(item, Is.EqualTo(1)); Assert.That(asyncSeq, Is.EqualTo(new[] { 2, 3, 4 })); var conjTask = asyncSeq.ConjAsync(5, CancellationToken.None); Assert.That(conjTask.Status, Is.EqualTo(TaskStatus.RanToCompletion)); Assert.That(asyncSeq, Is.EqualTo(new[] { 2, 3, 4, 5 })); var takeTask = asyncSeq.TakeAsync(CancellationToken.None); Assert.That(takeTask.Status, Is.EqualTo(TaskStatus.RanToCompletion)); Assert.That(takeTask.Result, Is.EqualTo(2)); Assert.That(asyncSeq, Is.EqualTo(new[] { 3, 4, 5 })); }