1 module nxt.array_stack;
2 
3 /** Stack.
4     See_Also: http://forum.dlang.org/thread/wswbtzakdvpgaebuhbom@forum.dlang.org
5 */
6 
7 import nxt.dynamic_array : Stack = DynamicArray;
8 
9 @safe pure nothrow @nogc unittest
10 {
11     alias T = uint;
12 
13     Stack!T s;
14     assert(s.empty);
15 
16     // insertBack:
17 
18     s.insertBack(13U);
19     assert(!s.empty);
20     assert(s.back == 13);
21 
22     s.insertBack(14U);
23     assert(!s.empty);
24     assert(s.back == 14);
25 
26     s.insertBack(15U);
27     assert(!s.empty);
28     assert(s.back == 15);
29 
30     // popBack:
31 
32     s.popBack();
33     assert(!s.empty);
34     assert(s.back == 14);
35 
36     s.popBack();
37     assert(!s.empty);
38     assert(s.back == 13);
39 
40     s.popBack();
41     assert(s.empty);
42 
43     // insertBack:
44 
45     s.insertBack(13U, 14U, 15U);
46     assert(!s.empty);
47     assert(s.back == 15);
48 
49     // backPop:
50 
51     assert(s.backPop() == 15);
52     assert(s.backPop() == 14);
53     assert(s.backPop() == 13);
54 
55     assert(s.empty);
56 }