public void LazinatorStackWorks() { LazinatorStack <WInt32> s = new LazinatorStack <WInt32>(); s.Push(3); s.Any().Should().BeTrue(); var r = s.Pop(); r.WrappedValue.Should().Be(3); s.Any().Should().BeFalse(); s.Push(3); s.Push(4); r = s.Peek(); r.WrappedValue.Should().Be(4); r = s.Pop(); r.WrappedValue.Should().Be(4); s.Push(4); s.Push(5); r = s.Pop(); r.WrappedValue.Should().Be(5); r = s.Pop(); r.WrappedValue.Should().Be(4); r = s.Pop(); r.WrappedValue.Should().Be(3); s.Any().Should().BeFalse(); }
public void LazinatorStack_PopAfterDeserialize() { LazinatorStack <WInt32> s = new LazinatorStack <WInt32>(); s.Push(1); s.Push(2); s.Push(3); s.Count.Should().Be(3); s = s.CloneLazinatorTyped(); s.Pop(); s.Pop(); s = s.CloneLazinatorTyped(); s.Count.Should().Be(1); s.UnderlyingList[0].WrappedValue.Should().Be(1); s.Push(2); s.Push(3); s.Pop(); s = s.CloneLazinatorTyped(); s.Count.Should().Be(2); s.Pop(); s.Pop(); s = s.CloneLazinatorTyped(); s.Count.Should().Be(0); }