diff --git a/std/bitmanip.d b/std/bitmanip.d index edc3fc1..9ca8053 100644 --- a/std/bitmanip.d +++ b/std/bitmanip.d @@ -753,7 +753,7 @@ struct BitArray return 0; // not equal auto p1 = this.ptr; auto p2 = a2.ptr; - auto n = this.length / bitsPerSizeT; + auto n = (this.length + (bitsPerSizeT - 1)) / bitsPerSizeT; for (i = 0; i < n; i++) { if (p1[i] != p2[i]) @@ -775,17 +775,23 @@ struct BitArray static bool[] bc = [1,0,1,0,1,0,1]; static bool[] bd = [1,0,1,1,1]; static bool[] be = [1,0,1,0,1]; + // 0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7 + static bool[] bf = [1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]; + static bool[] bg = [1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1]; BitArray a; a.init(ba); BitArray b; b.init(bb); BitArray c; c.init(bc); BitArray d; d.init(bd); BitArray e; e.init(be); + BitArray f; f.init(bf); + BitArray g; g.init(bg); assert(a != b); assert(a != c); assert(a != d); assert(a == e); + assert(f != g); } /***************************************