public void AppendByteWorks() { var bits = new BitSequence(); var bytes = new Dictionary<byte, bool[]>() { { 0, new[] { false, false, false, false, false, false, false, false } }, { 1, new[] { true, false, false, false, false, false, false, false } }, { 7, new[] { true, true, true, false, false, false, false, false } }, { 8, new[] { false, false, false, true, false, false, false, false } }, { 77, new[] { true, false, true, true, false, false, true, false } }, { 127, new[] { true, true, true, true, true, true, true, false } }, { 128, new[] { false, false, false, false, false, false, false, true } }, { 196, new[] { false, false, true, false, false, false, true, true } }, { 255, new[] { true, true, true, true, true, true, true, true } }, }; foreach (var @byte in bytes.Keys) { bits.AppendByte(@byte); } var actual = bits.ToBitArray(); var expected = bytes.Values.SelectMany(v => v).ToArray(); CollectionAssert.AreEqual(actual, expected); }