public void ConcatenatedIteratedTest() { Integer[] array1 = { MakeIntegerStackItem(1), MakeIntegerStackItem(7), MakeIntegerStackItem(23) }; Integer[] array2 = { MakeIntegerStackItem(8), MakeIntegerStackItem(47) }; ArrayWrapper it1 = new ArrayWrapper(array1); ArrayWrapper it2 = new ArrayWrapper(array2); ConcatenatedIterator uut = new ConcatenatedIterator(it1, it2); AssertionExtensions.Should((bool)uut.Next()).Be(true); uut.Key().Should().Be(MakeIntegerStackItem(0)); uut.Value().Should().Be(array1[0]); AssertionExtensions.Should((bool)uut.Next()).Be(true); uut.Key().Should().Be(MakeIntegerStackItem(1)); uut.Value().Should().Be(array1[1]); AssertionExtensions.Should((bool)uut.Next()).Be(true); uut.Key().Should().Be(MakeIntegerStackItem(2)); uut.Value().Should().Be(array1[2]); AssertionExtensions.Should((bool)uut.Next()).Be(true); uut.Key().Should().Be(MakeIntegerStackItem(0)); uut.Value().Should().Be(array2[0]); AssertionExtensions.Should((bool)uut.Next()).Be(true); uut.Key().Should().Be(MakeIntegerStackItem(1)); uut.Value().Should().Be(array2[1]); AssertionExtensions.Should((bool)uut.Next()).Be(false); }
public void TestDispose() { Integer[] array1 = { MakeIntegerStackItem(1), MakeIntegerStackItem(7), MakeIntegerStackItem(23) }; Integer[] array2 = { MakeIntegerStackItem(8), MakeIntegerStackItem(47) }; ArrayWrapper it1 = new ArrayWrapper(array1); ArrayWrapper it2 = new ArrayWrapper(array2); ConcatenatedIterator uut = new ConcatenatedIterator(it1, it2); Action action = () => uut.Dispose(); action.Should().NotThrow <Exception>(); }
public void ConcatenatedIteratedOverflowTest() { Integer[] array1 = { MakeIntegerStackItem(1) }; ArrayWrapper it1 = new ArrayWrapper(array1); ConcatenatedIterator uut = new ConcatenatedIterator(it1, it1); uut.Next().Should().Be(true); uut.Key().Should().Be(MakeIntegerStackItem(0)); uut.Value().Should().Be(array1[0]); uut.Next().Should().Be(true); uut.Key().Should().Be(MakeIntegerStackItem(0)); uut.Value().Should().Be(array1[0]); uut.Next().Should().Be(false); }
private static bool Iterator_Concat(ApplicationEngine engine) { if (!(engine.CurrentContext.EvaluationStack.Pop() is InteropInterface _interface1)) { return(false); } if (!(engine.CurrentContext.EvaluationStack.Pop() is InteropInterface _interface2)) { return(false); } IIterator first = _interface1.GetInterface <IIterator>(); IIterator second = _interface2.GetInterface <IIterator>(); IIterator result = new ConcatenatedIterator(first, second); engine.CurrentContext.EvaluationStack.Push(StackItem.FromInterface(result)); return(true); }