11import { Assert , Fact , Theory , InlineData } from "@rbxts/runit" ;
2- import { hello } from "../../src" ;
2+ import { Queue } from "../../src" ;
3+
4+ const iterator = < T extends defined > ( arr : T [ ] ) => {
5+ let i = 0 ;
6+ return ( ) => arr [ i ++ ] ;
7+ }
8+
9+ class QueueTest {
10+ @Fact
11+ public creationAndToArray ( ) : void {
12+ const q = new Queue ( [ 1 , 2 , 3 , 4 ] ) ;
13+ const getNext = iterator ( q . toArray ( ) ) ;
14+ Assert . equal ( 1 , getNext ( ) ) ;
15+ Assert . equal ( 2 , getNext ( ) ) ;
16+ Assert . equal ( 3 , getNext ( ) ) ;
17+ Assert . equal ( 4 , getNext ( ) ) ;
18+ }
19+
20+ @Theory
21+ @InlineData ( [ 1 , 2 , 3 ] , 3 )
22+ @InlineData ( [ ] , 0 )
23+ public size ( array : defined [ ] , expectedSize : number ) : void {
24+ const q = new Queue ( array ) ;
25+ Assert . equal ( expectedSize , array . size ( ) ) ;
26+ Assert . equal ( expectedSize , q . size ( ) ) ;
27+ }
28+
29+ @Theory
30+ @InlineData ( [ 1 , 2 , 3 ] , false )
31+ @InlineData ( [ ] , true )
32+ public isEmpty ( array : defined [ ] , expectedIsEmpty : boolean ) : void {
33+ const q = new Queue ( array ) ;
34+ Assert . equal ( expectedIsEmpty , q . isEmpty ( ) ) ;
35+ }
36+
37+ @Fact
38+ public enqueue ( ) : void {
39+ const q = new Queue ;
40+ q . enqueue ( 1 ) ;
41+ q . enqueue ( 2 ) ;
42+ const getNext = iterator ( q . toArray ( ) ) ;
43+ Assert . equal ( 1 , getNext ( ) ) ;
44+ Assert . equal ( 2 , getNext ( ) ) ;
45+ }
46+
47+ @Fact
48+ public dequeue ( ) : void {
49+ const q = new Queue ( [ 1 , 2 , 3 ] ) ;
50+ const n = q . dequeue ( ) ;
51+ Assert . equal ( 1 , n ) ;
52+
53+ const getNext = iterator ( q . toArray ( ) ) ;
54+ Assert . equal ( 2 , getNext ( ) ) ;
55+ Assert . equal ( 3 , getNext ( ) ) ;
56+ }
357
4- class MyPackageTest {
558 @Fact
6- public hello ( ) : void {
7- Assert . equal ( "Hello, Runic!" , hello ( "Runic" ) ) ;
59+ public at ( ) : void {
60+ const q = new Queue ( [ 1 , 2 , 3 , 4 ] ) ;
61+ Assert . undefined ( q . at ( - 1 ) ) ;
62+ Assert . equal ( 1 , q . at ( 0 ) ) ;
63+ Assert . equal ( 2 , q . at ( 1 ) ) ;
64+ Assert . equal ( 3 , q . at ( 2 ) ) ;
65+ Assert . equal ( 4 , q . at ( 3 ) ) ;
66+ Assert . undefined ( q . at ( 4 ) ) ;
867 }
968}
1069
11- export = MyPackageTest ;
70+ export = QueueTest ;
0 commit comments