void BitVector_Test::Test_bitVectorReadWriteBV() { BitVector<256> bits; // 0 init BitVector<4> dig; BitVector<32> dug; for (u32 i = 0; i <16; ++i) { dig.Write(0,4,i); bits.WriteBV(i*4, dig); } bits.ReadBV(0, dug); assert(dug.Read( 0,32) == 0x01234567); bits.ReadBV(32, dug); assert(dug.Read( 0,32) == 0x89abcdef); bits.ReadBV(48, dug); assert(dug.Read( 0,32) == 0xcdef0000); BitVector<100> big; bits.ReadBV(0, big); big.Write(100 - 4, 4, 0xe); bits.WriteBV(4,big); bits.WriteBV(128,big); assert(bits.Read( 0,32) == 0x00123456); assert(bits.Read( 32,32) == 0x789abcde); assert(bits.Read( 64,32) == 0xf0000000); assert(bits.Read( 96,32) == 0x0e000000); assert(bits.Read(128,32) == 0x01234567); assert(bits.Read(160,32) == 0x89abcdef); assert(bits.Read(192,32) == 0x00000000); assert(bits.Read(224,32) == 0xe0000000); }