1616 * See the License for the specific language governing permissions and
1717 * limitations under the License.
1818 */
19+ import RoundRobinArray from "../../lib/v1/internal/round-robin-array" ;
1920
20- var RoundRobinArray = require ( '../../lib/v1/internal/ round-robin-array') . default ;
21+ describe ( ' round-robin-array', ( ) => {
2122
22- describe ( 'round-robin-array' , function ( ) {
23- it ( 'should step through array' , function ( ) {
24- var array = new RoundRobinArray ( [ 1 , 2 , 3 , 4 , 5 ] ) ;
23+ it ( 'should behave correctly when empty' , ( ) => {
24+ const array = new RoundRobinArray ( ) ;
25+
26+ expect ( array . isEmpty ( ) ) . toBeTruthy ( ) ;
27+ expect ( array . size ( ) ) . toEqual ( 0 ) ;
28+ expect ( array . next ( ) ) . toBeNull ( ) ;
29+ expect ( array . toArray ( ) ) . toEqual ( [ ] ) ;
30+
31+ array . remove ( 1 ) ;
32+
33+ expect ( array . isEmpty ( ) ) . toBeTruthy ( ) ;
34+ expect ( array . size ( ) ) . toEqual ( 0 ) ;
35+ expect ( array . next ( ) ) . toBeNull ( ) ;
36+ expect ( array . toArray ( ) ) . toEqual ( [ ] ) ;
37+ } ) ;
38+
39+ it ( 'should behave correctly when contains single element' , ( ) => {
40+ const array = new RoundRobinArray ( [ 5 ] ) ;
41+
42+ expect ( array . isEmpty ( ) ) . toBeFalsy ( ) ;
43+ expect ( array . size ( ) ) . toEqual ( 1 ) ;
44+ expect ( array . next ( ) ) . toEqual ( 5 ) ;
45+ expect ( array . toArray ( ) ) . toEqual ( [ 5 ] ) ;
46+
47+ array . remove ( 1 ) ;
48+
49+ expect ( array . isEmpty ( ) ) . toBeFalsy ( ) ;
50+ expect ( array . size ( ) ) . toEqual ( 1 ) ;
51+ expect ( array . next ( ) ) . toEqual ( 5 ) ;
52+ expect ( array . toArray ( ) ) . toEqual ( [ 5 ] ) ;
53+
54+ array . remove ( 5 ) ;
55+
56+ expect ( array . isEmpty ( ) ) . toBeTruthy ( ) ;
57+ expect ( array . size ( ) ) . toEqual ( 0 ) ;
58+ expect ( array . next ( ) ) . toBeNull ( ) ;
59+ expect ( array . toArray ( ) ) . toEqual ( [ ] ) ;
60+ } ) ;
61+
62+ it ( 'should push items' , ( ) => {
63+ const array1 = new RoundRobinArray ( ) ;
64+ array1 . pushAll ( [ ] ) ;
65+ expect ( array1 . toArray ( ) ) . toEqual ( [ ] ) ;
66+
67+ const array2 = new RoundRobinArray ( ) ;
68+ array2 . pushAll ( [ 1 ] ) ;
69+ expect ( array2 . toArray ( ) ) . toEqual ( [ 1 ] ) ;
70+
71+ const array3 = new RoundRobinArray ( [ 1 , 2 , 3 ] ) ;
72+ array3 . pushAll ( [ 4 , 5 ] ) ;
73+ expect ( array3 . toArray ( ) ) . toEqual ( [ 1 , 2 , 3 , 4 , 5 ] ) ;
74+
75+ const array4 = new RoundRobinArray ( [ 1 , 2 , 3 ] ) ;
76+ array4 . pushAll ( [ ] ) ;
77+ expect ( array4 . toArray ( ) ) . toEqual ( [ 1 , 2 , 3 ] ) ;
78+ } ) ;
79+
80+ it ( 'should step through array' , ( ) => {
81+ const array = new RoundRobinArray ( [ 1 , 2 , 3 , 4 , 5 ] ) ;
2582
2683 expect ( array . next ( ) ) . toEqual ( 1 ) ;
2784 expect ( array . next ( ) ) . toEqual ( 2 ) ;
@@ -30,34 +87,32 @@ describe('round-robin-array', function() {
3087 expect ( array . next ( ) ) . toEqual ( 5 ) ;
3188 expect ( array . next ( ) ) . toEqual ( 1 ) ;
3289 expect ( array . next ( ) ) . toEqual ( 2 ) ;
33- //....
3490 } ) ;
3591
36- it ( 'should step through single element array' , function ( ) {
37- var array = new RoundRobinArray ( [ 5 ] ) ;
92+ it ( 'should step through single element array' , ( ) => {
93+ const array = new RoundRobinArray ( [ 5 ] ) ;
3894
3995 expect ( array . next ( ) ) . toEqual ( 5 ) ;
4096 expect ( array . next ( ) ) . toEqual ( 5 ) ;
4197 expect ( array . next ( ) ) . toEqual ( 5 ) ;
42- //....
4398 } ) ;
4499
45- it ( 'should handle deleting item before current ' , function ( ) {
46- var array = new RoundRobinArray ( [ 1 , 2 , 3 , 4 , 5 ] ) ;
100+ it ( 'should handle deleting item before current ' , ( ) => {
101+ const array = new RoundRobinArray ( [ 1 , 2 , 3 , 4 , 5 ] ) ;
47102
48103 expect ( array . next ( ) ) . toEqual ( 1 ) ;
49104 expect ( array . next ( ) ) . toEqual ( 2 ) ;
50105 array . remove ( 2 ) ;
51- expect ( array . next ( ) ) . toEqual ( 3 ) ;
52106 expect ( array . next ( ) ) . toEqual ( 4 ) ;
53107 expect ( array . next ( ) ) . toEqual ( 5 ) ;
54108 expect ( array . next ( ) ) . toEqual ( 1 ) ;
55109 expect ( array . next ( ) ) . toEqual ( 3 ) ;
56- //....
110+ expect ( array . next ( ) ) . toEqual ( 4 ) ;
111+ expect ( array . next ( ) ) . toEqual ( 5 ) ;
57112 } ) ;
58113
59- it ( 'should handle deleting item on current ' , function ( ) {
60- var array = new RoundRobinArray ( [ 1 , 2 , 3 , 4 , 5 ] ) ;
114+ it ( 'should handle deleting item on current ' , ( ) => {
115+ const array = new RoundRobinArray ( [ 1 , 2 , 3 , 4 , 5 ] ) ;
61116
62117 expect ( array . next ( ) ) . toEqual ( 1 ) ;
63118 expect ( array . next ( ) ) . toEqual ( 2 ) ;
@@ -67,11 +122,11 @@ describe('round-robin-array', function() {
67122 expect ( array . next ( ) ) . toEqual ( 1 ) ;
68123 expect ( array . next ( ) ) . toEqual ( 2 ) ;
69124 expect ( array . next ( ) ) . toEqual ( 4 ) ;
70- //....
125+ expect ( array . next ( ) ) . toEqual ( 5 ) ;
71126 } ) ;
72127
73- it ( 'should handle deleting item after current ' , function ( ) {
74- var array = new RoundRobinArray ( [ 1 , 2 , 3 , 4 , 5 ] ) ;
128+ it ( 'should handle deleting item after current ' , ( ) => {
129+ const array = new RoundRobinArray ( [ 1 , 2 , 3 , 4 , 5 ] ) ;
75130
76131 expect ( array . next ( ) ) . toEqual ( 1 ) ;
77132 expect ( array . next ( ) ) . toEqual ( 2 ) ;
@@ -81,11 +136,10 @@ describe('round-robin-array', function() {
81136 expect ( array . next ( ) ) . toEqual ( 1 ) ;
82137 expect ( array . next ( ) ) . toEqual ( 2 ) ;
83138 expect ( array . next ( ) ) . toEqual ( 3 ) ;
84- //....
85139 } ) ;
86140
87- it ( 'should handle deleting last item ' , function ( ) {
88- var array = new RoundRobinArray ( [ 1 , 2 , 3 , 4 , 5 ] ) ;
141+ it ( 'should handle deleting last item ' , ( ) => {
142+ const array = new RoundRobinArray ( [ 1 , 2 , 3 , 4 , 5 ] ) ;
89143
90144 expect ( array . next ( ) ) . toEqual ( 1 ) ;
91145 expect ( array . next ( ) ) . toEqual ( 2 ) ;
@@ -97,11 +151,10 @@ describe('round-robin-array', function() {
97151 expect ( array . next ( ) ) . toEqual ( 3 ) ;
98152 expect ( array . next ( ) ) . toEqual ( 4 ) ;
99153 expect ( array . next ( ) ) . toEqual ( 1 ) ;
100- //....
101154 } ) ;
102155
103- it ( 'should handle deleting first item ' , function ( ) {
104- var array = new RoundRobinArray ( [ 1 , 2 , 3 , 4 , 5 ] ) ;
156+ it ( 'should handle deleting first item ' , ( ) => {
157+ const array = new RoundRobinArray ( [ 1 , 2 , 3 , 4 , 5 ] ) ;
105158 array . remove ( 1 ) ;
106159 expect ( array . next ( ) ) . toEqual ( 2 ) ;
107160 expect ( array . next ( ) ) . toEqual ( 3 ) ;
@@ -111,17 +164,15 @@ describe('round-robin-array', function() {
111164 expect ( array . next ( ) ) . toEqual ( 3 ) ;
112165 expect ( array . next ( ) ) . toEqual ( 4 ) ;
113166 expect ( array . next ( ) ) . toEqual ( 5 ) ;
114- //....
115167 } ) ;
116168
117- it ( 'should handle deleting multiple items ' , function ( ) {
118- var array = new RoundRobinArray ( [ 1 , 2 , 3 , 1 , 1 ] ) ;
169+ it ( 'should handle deleting multiple items ' , ( ) => {
170+ const array = new RoundRobinArray ( [ 1 , 2 , 3 , 1 , 1 ] ) ;
119171 array . remove ( 1 ) ;
120172 expect ( array . next ( ) ) . toEqual ( 2 ) ;
121173 expect ( array . next ( ) ) . toEqual ( 3 ) ;
122174 expect ( array . next ( ) ) . toEqual ( 2 ) ;
123175 expect ( array . next ( ) ) . toEqual ( 3 ) ;
124- //....
125176 } ) ;
126177
127178} ) ;
0 commit comments