@@ -139,4 +139,130 @@ describe('encoderWorker', function() {
139
139
getEncoder ( ) ;
140
140
} ) ;
141
141
142
+ it ( 'should set granule position to 0' , function ( done ) {
143
+ var pageBufferCount = 0 ;
144
+
145
+ global . postMessage = function ( page ) {
146
+ pageBufferCount ++ ;
147
+
148
+ if ( pageBufferCount == 3 ) {
149
+ var dataView = new DataView ( page . buffer ) ;
150
+ expect ( dataView . getUint32 ( 6 , true ) ) . to . equal ( 0 ) ;
151
+ expect ( dataView . getInt32 ( 10 , true ) ) . to . equal ( 0 ) ;
152
+ done ( ) ;
153
+ }
154
+ } ;
155
+
156
+ getEncoder ( ) . then ( function ( encoder ) {
157
+ encoder . lastPositiveGranulePosition = 1 ;
158
+ encoder . granulePosition = 0 ;
159
+ encoder . generatePage ( ) ;
160
+ } ) ;
161
+ } ) ;
162
+
163
+ it ( 'should set granule position to -1' , function ( done ) {
164
+ var pageBufferCount = 0 ;
165
+
166
+ global . postMessage = function ( page ) {
167
+ pageBufferCount ++ ;
168
+
169
+ if ( pageBufferCount == 3 ) {
170
+ var dataView = new DataView ( page . buffer ) ;
171
+ expect ( dataView . getUint32 ( 6 , true ) ) . to . equal ( 4294967295 ) ;
172
+ expect ( dataView . getInt32 ( 10 , true ) ) . to . equal ( - 1 ) ;
173
+ done ( ) ;
174
+ }
175
+ } ;
176
+
177
+ getEncoder ( ) . then ( function ( encoder ) {
178
+ encoder . lastPositiveGranulePosition = 1 ;
179
+ encoder . granulePosition = - 1 ;
180
+ encoder . generatePage ( ) ;
181
+ } ) ;
182
+ } ) ;
183
+
184
+ it ( 'should set granule position to -2^32' , function ( done ) {
185
+ var pageBufferCount = 0 ;
186
+
187
+ global . postMessage = function ( page ) {
188
+ pageBufferCount ++ ;
189
+
190
+ if ( pageBufferCount == 3 ) {
191
+ var dataView = new DataView ( page . buffer ) ;
192
+ expect ( dataView . getUint32 ( 6 , true ) ) . to . equal ( 0 ) ;
193
+ expect ( dataView . getInt32 ( 10 , true ) ) . to . equal ( - 1 ) ;
194
+ done ( ) ;
195
+ }
196
+ } ;
197
+
198
+ getEncoder ( ) . then ( function ( encoder ) {
199
+ encoder . lastPositiveGranulePosition = 1 ;
200
+ encoder . granulePosition = - 4294967296 ;
201
+ encoder . generatePage ( ) ;
202
+ } ) ;
203
+ } ) ;
204
+
205
+ it ( 'should set granule position to -2^32 - 1' , function ( done ) {
206
+ var pageBufferCount = 0 ;
207
+
208
+ global . postMessage = function ( page ) {
209
+ pageBufferCount ++ ;
210
+
211
+ if ( pageBufferCount == 3 ) {
212
+ var dataView = new DataView ( page . buffer ) ;
213
+ expect ( dataView . getUint32 ( 6 , true ) ) . to . equal ( 4294967295 ) ;
214
+ expect ( dataView . getInt32 ( 10 , true ) ) . to . equal ( - 2 ) ;
215
+ done ( ) ;
216
+ }
217
+ } ;
218
+
219
+ getEncoder ( ) . then ( function ( encoder ) {
220
+ encoder . lastPositiveGranulePosition = 1 ;
221
+ encoder . granulePosition = - 4294967297 ;
222
+ encoder . generatePage ( ) ;
223
+ } ) ;
224
+ } ) ;
225
+
226
+ it ( 'should set granule position to 2^32 - 1' , function ( done ) {
227
+ var pageBufferCount = 0 ;
228
+
229
+ global . postMessage = function ( page ) {
230
+ pageBufferCount ++ ;
231
+
232
+ if ( pageBufferCount == 3 ) {
233
+ var dataView = new DataView ( page . buffer ) ;
234
+ expect ( dataView . getUint32 ( 6 , true ) ) . to . equal ( 4294967295 ) ;
235
+ expect ( dataView . getInt32 ( 10 , true ) ) . to . equal ( 0 ) ;
236
+ done ( ) ;
237
+ }
238
+ } ;
239
+
240
+ getEncoder ( ) . then ( function ( encoder ) {
241
+ encoder . lastPositiveGranulePosition = 1 ;
242
+ encoder . granulePosition = 4294967295 ;
243
+ encoder . generatePage ( ) ;
244
+ } ) ;
245
+ } ) ;
246
+
247
+ it ( 'should set granule position to 2^32' , function ( done ) {
248
+ var pageBufferCount = 0 ;
249
+
250
+ global . postMessage = function ( page ) {
251
+ pageBufferCount ++ ;
252
+
253
+ if ( pageBufferCount == 3 ) {
254
+ var dataView = new DataView ( page . buffer ) ;
255
+ expect ( dataView . getUint32 ( 6 , true ) ) . to . equal ( 0 ) ;
256
+ expect ( dataView . getInt32 ( 10 , true ) ) . to . equal ( 1 ) ;
257
+ done ( ) ;
258
+ }
259
+ } ;
260
+
261
+ getEncoder ( ) . then ( function ( encoder ) {
262
+ encoder . lastPositiveGranulePosition = 1 ;
263
+ encoder . granulePosition = 4294967296 ;
264
+ encoder . generatePage ( ) ;
265
+ } ) ;
266
+ } ) ;
267
+
142
268
} ) ;
0 commit comments