File tree Expand file tree Collapse file tree 1 file changed +80
-0
lines changed
test/containers/simpleQueue Expand file tree Collapse file tree 1 file changed +80
-0
lines changed Original file line number Diff line number Diff line change
1
+ module main ;
2
+
3
+ import watt.io;
4
+ import watt.containers.queue;
5
+
6
+ struct IntegerQueue = mixin Queue!i32;
7
+
8
+ fn verifyQueue (q: IntegerQueue, arr: i32[]) bool
9
+ {
10
+ return q.length == arr.length && arr == q.borrowUnsafe();
11
+ }
12
+
13
+ fn main () i32
14
+ {
15
+ q: IntegerQueue;
16
+ if (! verifyQueue(q, null )) {
17
+ return 1 ;
18
+ }
19
+
20
+ q.enqueue(73 );
21
+ if (! verifyQueue(q, [73 ]) || q.peek() != 73 ) {
22
+ return 2 ;
23
+ }
24
+ val := q.dequeue();
25
+ if (val != 73 ) {
26
+ return 3 ;
27
+ }
28
+ if (! verifyQueue(q, null )) {
29
+ return 4 ;
30
+ }
31
+
32
+
33
+ q.enqueue(41 );
34
+ q.enqueue(31 );
35
+ q.enqueue(21 );
36
+ if (! verifyQueue(q, [21 , 31 , 41 ]) || q.peek() != 41 ) {
37
+ return 5 ;
38
+ }
39
+ if (q.dequeue() != 41 ) {
40
+ return 6 ;
41
+ }
42
+ if (q.dequeue() != 31 ) {
43
+ return 7 ;
44
+ }
45
+ if (q.dequeue() != 21 ) {
46
+ return 8 ;
47
+ }
48
+ if (! verifyQueue(q, null )) {
49
+ return 9 ;
50
+ }
51
+
52
+ q.clear();
53
+ if (! verifyQueue(q, null )) {
54
+ return 10 ;
55
+ }
56
+
57
+ q.enqueue(17384 );
58
+ foreach (i: i32; 0 .. 1024 ) {
59
+ q.enqueue(i);
60
+ if (q.peek() != 17384 ) {
61
+ return 11 ;
62
+ }
63
+ }
64
+
65
+ if (q.dequeue() != 17384 ) {
66
+ return 12 ;
67
+ }
68
+ i := 0 ;
69
+ while (i != 1024 ) {
70
+ if (q.dequeue() != i++ ) {
71
+ return 13 ;
72
+ }
73
+ }
74
+
75
+ if (! verifyQueue(q, null )) {
76
+ return 14 ;
77
+ }
78
+
79
+ return 0 ;
80
+ }
You can’t perform that action at this time.
0 commit comments