mirror of
https://github.com/TheAlgorithms/Java.git
synced 2025-07-07 09:45:04 +08:00
Add Junit tests for ColumnarTranspositionCipher.java
(#5599)
This commit is contained in:
@ -641,6 +641,7 @@
|
||||
* [AutokeyTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/ciphers/AutokeyTest.java)
|
||||
* [BlowfishTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/ciphers/BlowfishTest.java)
|
||||
* [CaesarTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/ciphers/CaesarTest.java)
|
||||
* [ColumnarTranspositionCipherTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/ciphers/ColumnarTranspositionCipherTest.java)
|
||||
* [DESTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/ciphers/DESTest.java)
|
||||
* [HillCipherTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/ciphers/HillCipherTest.java)
|
||||
* [PlayfairTest](https://github.com/TheAlgorithms/Java/blob/master/src/test/java/com/thealgorithms/ciphers/PlayfairTest.java)
|
||||
|
@ -184,24 +184,4 @@ public final class ColumnarTranspositionCipher {
|
||||
}
|
||||
abecedarium = t.toString();
|
||||
}
|
||||
|
||||
private static void showTable() {
|
||||
for (Object[] table1 : table) {
|
||||
for (Object item : table1) {
|
||||
System.out.print(item + " ");
|
||||
}
|
||||
System.out.println();
|
||||
}
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
String keywordForExample = "asd215";
|
||||
String wordBeingEncrypted = "This is a test of the Columnar Transposition Cipher";
|
||||
System.out.println("### Example of Columnar Transposition Cipher ###\n");
|
||||
System.out.println("Word being encryped ->>> " + wordBeingEncrypted);
|
||||
System.out.println("Word encrypted ->>> " + ColumnarTranspositionCipher.encrpyter(wordBeingEncrypted, keywordForExample));
|
||||
System.out.println("Word decryped ->>> " + ColumnarTranspositionCipher.decrypter());
|
||||
System.out.println("\n### Encrypted Table ###");
|
||||
showTable();
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,47 @@
|
||||
package com.thealgorithms.ciphers;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
import static org.junit.jupiter.api.Assertions.assertFalse;
|
||||
import static org.junit.jupiter.api.Assertions.assertNotEquals;
|
||||
import static org.junit.jupiter.api.Assertions.assertNotNull;
|
||||
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
public class ColumnarTranspositionCipherTest {
|
||||
private String keyword;
|
||||
private String plaintext;
|
||||
|
||||
@BeforeEach
|
||||
public void setUp() {
|
||||
keyword = "keyword";
|
||||
plaintext = "This is a test message for Columnar Transposition Cipher";
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testEncryption() {
|
||||
String encryptedText = ColumnarTranspositionCipher.encrpyter(plaintext, keyword);
|
||||
assertNotNull(encryptedText, "The encrypted text should not be null.");
|
||||
assertFalse(encryptedText.isEmpty(), "The encrypted text should not be empty.");
|
||||
// Check if the encrypted text is different from the plaintext
|
||||
assertNotEquals(plaintext, encryptedText, "The encrypted text should be different from the plaintext.");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDecryption() {
|
||||
String encryptedText = ColumnarTranspositionCipher.encrpyter(plaintext, keyword);
|
||||
String decryptedText = ColumnarTranspositionCipher.decrypter();
|
||||
|
||||
assertEquals(plaintext.replaceAll(" ", ""), decryptedText.replaceAll(" ", ""), "The decrypted text should match the original plaintext, ignoring spaces.");
|
||||
assertEquals(encryptedText, ColumnarTranspositionCipher.encrpyter(plaintext, keyword), "The encrypted text should be the same when encrypted again.");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testLongPlainText() {
|
||||
String longText = "This is a significantly longer piece of text to test the encryption and decryption capabilities of the Columnar Transposition Cipher. It should handle long strings gracefully.";
|
||||
String encryptedText = ColumnarTranspositionCipher.encrpyter(longText, keyword);
|
||||
String decryptedText = ColumnarTranspositionCipher.decrypter();
|
||||
assertEquals(longText.replaceAll(" ", ""), decryptedText.replaceAll(" ", ""), "The decrypted text should match the original long plaintext, ignoring spaces.");
|
||||
assertEquals(encryptedText, ColumnarTranspositionCipher.encrpyter(longText, keyword), "The encrypted text should be the same when encrypted again.");
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user