public void TestGetOnesAndZeros() { // ARRANGE BitmapEncoder bmpEnc = new BitmapEncoder(); byte[] file = new byte[] { 10, 249, 12, 1, 180, 29, 2, 78, 45, 12, 12, 13, 69, 45, 78, 111 }; byte[] IV = new byte[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 }; byte[] bothTogether = new byte[IV.Length + file.Length]; byte[] parsedBytes; for (int i = 0; i < IV.Length; i++) { bothTogether[i] = IV[i]; } for (int i = IV.Length; i < bothTogether.Length; i++) { bothTogether[i] = file[i - IV.Length]; } // ACT BitArray ba = bmpEnc.GetOnesAndZeros(IV, file); parsedBytes = new byte[ba.Count / 8]; int byteIndex = 0, bitIndex = 0; for (int i = 0; i < ba.Count; i++) { if (ba[i]) { parsedBytes[byteIndex] |= (byte)(1 << (7 - bitIndex)); } bitIndex++; if (bitIndex == 8) { bitIndex = 0; byteIndex++; } } // ASSERT for (int i = 0; i < parsedBytes.Length; i++) { Assert.AreEqual(parsedBytes[i], bothTogether[i]); } }