@@ -214,6 +214,62 @@ private static void RunPredictor13Test()
214
214
Assert . Equal ( expectedResult1 , actual1 ) ;
215
215
}
216
216
217
+ [ Fact ]
218
+ public void BundleColorMap_WithXbitsZero_Works ( )
219
+ {
220
+ // arrange
221
+ byte [ ] row = { 238 , 238 , 238 , 238 , 238 , 238 , 240 , 237 , 240 , 235 , 223 , 223 , 218 , 220 , 226 , 219 , 220 , 204 , 218 , 211 , 218 , 221 , 254 , 255 } ;
222
+ int xBits = 0 ;
223
+ uint [ ] actual = new uint [ row . Length ] ;
224
+ uint [ ] expected =
225
+ {
226
+ 4278251008 , 4278251008 , 4278251008 , 4278251008 , 4278251008 ,
227
+ 4278251008 , 4278251520 , 4278250752 , 4278251520 , 4278250240 ,
228
+ 4278247168 , 4278247168 , 4278245888 , 4278246400 , 4278247936 ,
229
+ 4278246144 , 4278246400 , 4278242304 , 4278245888 , 4278244096 ,
230
+ 4278245888 , 4278246656 , 4278255104 , 4278255360
231
+ } ;
232
+
233
+ // act
234
+ LosslessUtils . BundleColorMap ( row , actual . Length , xBits , actual ) ;
235
+
236
+ // assert
237
+ Assert . True ( actual . SequenceEqual ( expected ) ) ;
238
+ }
239
+
240
+ [ Fact ]
241
+ public void BundleColorMap_WithXbitsNoneZero_Works ( )
242
+ {
243
+ // arrange
244
+ byte [ ] row =
245
+ {
246
+ 2 , 2 , 2 , 2 , 2 , 2 , 2 , 2 , 2 , 2 , 2 , 2 , 2 , 2 , 2 , 2 ,
247
+ 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 ,
248
+ 2 , 2 , 2 , 2 , 2 , 2 , 2 , 2 , 2 , 2 , 2 , 2 , 2 , 2 , 2 , 2 ,
249
+ 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 ,
250
+ 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 ,
251
+ 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 ,
252
+ 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 ,
253
+ 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3 , 3
254
+ } ;
255
+ int xBits = 2 ;
256
+ uint [ ] actual = new uint [ row . Length ] ;
257
+ uint [ ] expected =
258
+ {
259
+ 4278233600 , 4278233600 , 4278233600 , 4278233600 , 4278255360 , 4278255360 , 4278255360 , 4278255360 , 4278233600 , 4278233600 , 4278233600 , 4278233600 ,
260
+ 4278255360 , 4278255360 , 4278255360 , 4278255360 , 4278211840 , 4278211840 , 4278211840 , 4278211840 , 4278255360 , 4278255360 , 4278255360 , 4278255360 ,
261
+ 4278255360 , 4278255360 , 4278255360 , 4278255360 , 4278255360 , 4278255360 , 4278255360 , 4278206208 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
262
+ 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
263
+ 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0
264
+ } ;
265
+
266
+ // act
267
+ LosslessUtils . BundleColorMap ( row , actual . Length , xBits , actual ) ;
268
+
269
+ // assert
270
+ Assert . True ( actual . SequenceEqual ( expected ) ) ;
271
+ }
272
+
217
273
[ Fact ]
218
274
public void CombinedShannonEntropy_Works ( ) => RunCombinedShannonEntropyTest ( ) ;
219
275
0 commit comments