void BitVector_Test::Test_bitVectorStoreBits() { const u32 PATTERN = 0xdeadbeef; BitVector<256>* bits; bits = setup(); bits->StoreBits(PATTERN,12,32*7); // 0-7; unaligned start/end assert(bits->Read( 0,32) == 0x246dbeef); assert(bits->Read( 32,32) == 0xdeadbeef); assert(bits->Read( 64,32) == 0xdeadbeef); assert(bits->Read( 96,32) == 0xdeadbeef); assert(bits->Read(128,32) == 0xdeadbeef); assert(bits->Read(160,32) == 0xdeadbeef); assert(bits->Read(192,32) == 0xdeadbeef); assert(bits->Read(224,32) == 0xdeabca09); bits = setup(); bits->StoreBits(PATTERN,96,12); // 3-3; single front-aligned assertUnchanged(0,2); assert(bits->Read( 96,32) == 0xdeacdef0); assertUnchanged(4,7); bits = setup(); bits->StoreBits(PATTERN,96+20,12); // 3-3; single back-aligned assertUnchanged(0,2); assert(bits->Read( 96,32) == 0x9abcdeef); assertUnchanged(4,7); bits = setup(); bits->StoreBits(PATTERN,96+8,16); // 3-3; single unaligned assertUnchanged(0,2); assert(bits->Read( 96,32) == 0x9aadbef0); assertUnchanged(4,7); }