@@ -48,6 +48,7 @@ public void TestSetLength2()
48
48
49
49
bitStream . SetLength ( 0 ) ;
50
50
51
+ // position should never go beyond length
51
52
Assert . That ( bitStream . Position , Is . EqualTo ( 0 ) ) ;
52
53
}
53
54
@@ -327,6 +328,36 @@ public void TestWriteDouble()
327
328
328
329
Assert . That ( inStream . ReadDouble ( ) , Is . EqualTo ( somenumber ) ) ;
329
330
331
+ }
332
+
333
+ [ Test ]
334
+ public void TestWriteMisaligned ( )
335
+ {
336
+ BitStream outStream = new BitStream ( ) ;
337
+ outStream . WriteBit ( true ) ;
338
+ outStream . WriteBit ( false ) ;
339
+ // now the stream is misalligned, lets write some bytes
340
+ outStream . WriteByte ( 244 ) ;
341
+ outStream . WriteByte ( 123 ) ;
342
+
343
+ outStream . WriteBit ( true ) ;
344
+ outStream . WriteByte ( 1 ) ;
345
+ outStream . WriteByte ( 0 ) ;
346
+
347
+ byte [ ] buffer = outStream . GetBuffer ( ) ;
348
+
349
+ BitStream inStream = new BitStream ( buffer ) ;
350
+
351
+ Assert . That ( inStream . ReadBit ( ) , Is . True ) ;
352
+ Assert . That ( inStream . ReadBit ( ) , Is . False ) ;
353
+ Assert . That ( inStream . ReadByte ( ) , Is . EqualTo ( 244 ) ) ;
354
+ Assert . That ( inStream . ReadByte ( ) , Is . EqualTo ( 123 ) ) ;
355
+ Assert . That ( inStream . ReadBit ( ) , Is . True ) ;
356
+ Assert . That ( inStream . ReadByte ( ) , Is . EqualTo ( 1 ) ) ;
357
+ Assert . That ( inStream . ReadByte ( ) , Is . EqualTo ( 0 ) ) ;
358
+
359
+
360
+
330
361
}
331
362
}
332
363
}
0 commit comments