@Test
public void testTallTranspose() {

  List<StrictBitVector> input = new ArrayList<>(
      Arrays.asList(
          new StrictBitVector(new byte[] { (byte) 0xFF }),
          new StrictBitVector(new byte[] { (byte) 0x00 }),
          new StrictBitVector(new byte[] { (byte) 0x00 }),
          new StrictBitVector(new byte[] { (byte) 0x00 }),
          new StrictBitVector(new byte[] { (byte) 0x00 }),
          new StrictBitVector(new byte[] { (byte) 0x00 }),
          new StrictBitVector(new byte[] { (byte) 0x00 }),
          new StrictBitVector(new byte[] { (byte) 0xFF }),
          new StrictBitVector(new byte[] { (byte) 0x00 }),
          new StrictBitVector(new byte[] { (byte) 0xFF }),
          new StrictBitVector(new byte[] { (byte) 0xFF }),
          new StrictBitVector(new byte[] { (byte) 0xFF }),
          new StrictBitVector(new byte[] { (byte) 0xFF }),
          new StrictBitVector(new byte[] { (byte) 0xFF }),
          new StrictBitVector(new byte[] { (byte) 0xFF }),
          new StrictBitVector(new byte[] { (byte) 0x00 })));
  List<StrictBitVector> res = Transpose.transpose(input);
  for (int i = 0; i < 8; i++) {
    assertEquals((byte) 0x81, res.get(i).toByteArray()[0]);
  }
  for (int i = 0; i < 8; i++) {
    assertEquals((byte) 0x7E, res.get(i).toByteArray()[1]);
  }
}