public void SimpleTryDequeues() { var queue = ImmutableQueue <int> .Empty .Enqueue(1) .Enqueue(2) .Enqueue(3); int out1; var r1 = Transactional.TryDequeue(ref queue, out out1); r1.Should().BeTrue(nameof(r1)); out1.Should().Be(1); int out2; var r2 = Transactional.TryDequeue(ref queue, out out2); r2.Should().BeTrue(nameof(r2)); out2.Should().Be(2); int out3; var r3 = Transactional.TryDequeue(ref queue, out out3); r3.Should().BeTrue(nameof(r3)); out3.Should().Be(3); int out4; var r4 = Transactional.TryDequeue(ref queue, out out4); r4.Should().BeFalse(nameof(r4)); out4.Should().Be(default(int)); }