bool test_long_write_read(unsigned long long value, int bits, BitString& bitString) { bool result = true; bitString.write_bits_from_long(bits, value); bitString.rewind(bits); unsigned long read_value = bitString.read_bits_as_long(bits); unsigned long xored = read_value ^ value; if(value != read_value) { cout << "\nFailed write_bits_from_long with value " << value << " and read_value " << read_value << " bits " << bits << " diff " << xored << endl; bitString.write_bits_from_long(64, read_value); result = false; } return result; }