Example #1
0
  void BitVector_Test::Test_bitVectorWrite()
  {
    BitVector<256>* bits = setup();

    bits->Write(16, 32, 0xa0a0b0b0);

    assert(bits->Read(0, 32) == 0x2468a0a0);
    assert(bits->Read(32, 32) == 0xb0b01314);
    assert(bits->Read(224, 32) == 0xfedbca09);

    // WriteBig
    {
      BitVector<256>* bb = setup();
      u32 fooBits[] = {0xabc123ee,0x55667788,0x01020304};
      BV96 foo(fooBits);

      bb->WriteBig(0,32,foo);
      assert(bits->Read(0, 32) == 0xabc123ee);
      assert(bits->Read(32, 32) == 0x11121314);
      assert(bits->Read(64, 32) == 0x12345678);

      bb->WriteBig(64,64,foo);
      assert(bits->Read(0, 32) == 0xabc123ee);
      assert(bits->Read(32, 32) == 0x11121314);
      assert(bits->Read(64, 32) == 0xabc123ee);
      assert(bits->Read(96, 32) == 0x55667788);
      assert(bits->Read(128, 32) == 0x0fedcba9);

      bb->WriteBig(32,96,foo);
      assert(bits->Read(0, 32) == 0xabc123ee);
      assert(bits->Read(32, 32) == 0xabc123ee);
      assert(bits->Read(64, 32) == 0x55667788);
      assert(bits->Read(96, 32) == 0x01020304);
      assert(bits->Read(128, 32) == 0x0fedcba9);

    }

  }