-
Notifications
You must be signed in to change notification settings - Fork 19.9k
/
Copy pathColumnarTranspositionCipherTest.java
47 lines (39 loc) · 2.34 KB
/
ColumnarTranspositionCipherTest.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
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.encrypt(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.encrypt(plaintext, keyword);
String decryptedText = ColumnarTranspositionCipher.decrypt();
assertEquals(plaintext.replaceAll(" ", ""), decryptedText.replaceAll(" ", ""), "The decrypted text should match the original plaintext, ignoring spaces.");
assertEquals(encryptedText, ColumnarTranspositionCipher.encrypt(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.encrypt(longText, keyword);
String decryptedText = ColumnarTranspositionCipher.decrypt();
assertEquals(longText.replaceAll(" ", ""), decryptedText.replaceAll(" ", ""), "The decrypted text should match the original long plaintext, ignoring spaces.");
assertEquals(encryptedText, ColumnarTranspositionCipher.encrypt(longText, keyword), "The encrypted text should be the same when encrypted again.");
}
}