示例#1
0
    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);
    }