public void testEncryptBlock() {

        byte[] key = ByteHelper.convertBinaryStringToByteArray("00010011 00110100 01010111 01111001 10011011 10111100 11011111 11110001".replace(" ", ""));
        byte[][][] subKeys = new byte[][][] { KeyCalculator.generateSubKeys(key) };

        byte[] block = ByteHelper.convertBinaryStringToByteArray("00000001 00100011 01000101 01100111 10001001 10101011 11001101 11101111".replace(" ", ""));
        byte[] expectedEncryptedBlock = ByteHelper.convertBinaryStringToByteArray("10000101 11101000 00010011 01010100 00001111 00001010 10110100 00000101".replace(" ", ""));

        try {
            byte[] result = DesAlgorithm.encryptBlock(block, subKeys);

            System.out.println();
            System.out.println("expected vs actual result");
            ByteHelper.printByteArray(expectedEncryptedBlock);
            ByteHelper.printByteArray(result);
            System.out.println();

            assertEquals(expectedEncryptedBlock, result);

        } catch (Exception e) {
            fail();
        }
    }