@Test
    public void testDecryptBlock() {
        byte[] key = ByteHelper.convertBinaryStringToByteArray("1010011010111000011110011110100111011001100111111001100101110010".replace(" ", ""));
        byte[][][] subKeys = new byte[][][] { KeyCalculator.generateSubKeys(key) };
        byte[][][] reversedSubKeys = reverseSubKeys(subKeys);

        byte[] encryptedBlock = ByteHelper.convertBinaryStringToByteArray("10001111 01101000 01001111 10101111 01010101 01011010 10111011 11011001".replace(" ", ""));
        byte[] expectedDecryptedBlock = ByteHelper.convertBinaryStringToByteArray("0110100001100001011011000110110001101111011011110110111101101111".replace(" ", ""));

        try {
            byte[] result = DesAlgorithm.decryptBlock(encryptedBlock, reversedSubKeys);

            assertArrayEquals(expectedDecryptedBlock, result);

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