示例#1
0
    public void PushPopDrop()
    {
        var r = new DropStack <char>();

        r.IsEmpty.AssertIsTrue();
        r.Count.AssertEquals(0);

        r = r.Push('a');
        r.IsEmpty.AssertIsFalse();
        r.Count.AssertEquals(1);
        r.Peek.AssertEquals('a');

        r = r.Push('b').Push('c');
        r.IsEmpty.AssertIsFalse();
        r.Count.AssertEquals(3);
        r.Peek.AssertEquals('c');

        r = r.Pop();
        r.IsEmpty.AssertIsFalse();
        r.Count.AssertEquals(2);
        r.Peek.AssertEquals('b');

        r = r.Drop();
        r.IsEmpty.AssertIsFalse();
        r.Count.AssertEquals(1);
        r.Peek.AssertEquals('b');

        r = r.Drop();
        r.IsEmpty.AssertIsTrue();
        r.Count.AssertEquals(0);
    }
示例#2
0
    public void PushPopDrop()
    {
        var r = new DropStack<char>();
        r.IsEmpty.AssertIsTrue();
        r.Count.AssertEquals(0);

        r = r.Push('a');
        r.IsEmpty.AssertIsFalse();
        r.Count.AssertEquals(1);
        r.Peek.AssertEquals('a');

        r = r.Push('b').Push('c');
        r.IsEmpty.AssertIsFalse();
        r.Count.AssertEquals(3);
        r.Peek.AssertEquals('c');

        r = r.Pop();
        r.IsEmpty.AssertIsFalse();
        r.Count.AssertEquals(2);
        r.Peek.AssertEquals('b');

        r = r.Drop();
        r.IsEmpty.AssertIsFalse();
        r.Count.AssertEquals(1);
        r.Peek.AssertEquals('b');

        r = r.Drop();
        r.IsEmpty.AssertIsTrue();
        r.Count.AssertEquals(0);
    }
示例#3
0
 public void KeepOnly()
 {
     var r = new DropStack<char>().Push('a').Push('b').Push('c').Push('d').KeepOnly(2);
     r.Count.AssertEquals(2);
     r.Peek.AssertEquals('d');
     r.Pop().Peek.AssertEquals('c');
 }
示例#4
0
    public void KeepOnly()
    {
        var r = new DropStack <char>().Push('a').Push('b').Push('c').Push('d').KeepOnly(2);

        r.Count.AssertEquals(2);
        r.Peek.AssertEquals('d');
        r.Pop().Peek.AssertEquals('c');
    }