-
Notifications
You must be signed in to change notification settings - Fork 19.9k
/
Copy pathMonoAlphabeticTest.java
29 lines (23 loc) · 1.36 KB
/
MonoAlphabeticTest.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
package com.thealgorithms.ciphers;
import static org.junit.jupiter.api.Assertions.assertEquals;
import java.util.stream.Stream;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.Arguments;
import org.junit.jupiter.params.provider.MethodSource;
public class MonoAlphabeticTest {
// Test for both encryption and decryption with different keys
@ParameterizedTest
@MethodSource("provideTestData")
public void testEncryptDecrypt(String plainText, String key, String encryptedText) {
// Test encryption
String actualEncrypted = MonoAlphabetic.encrypt(plainText, key);
assertEquals(encryptedText, actualEncrypted, "Encryption failed for input: " + plainText + " with key: " + key);
// Test decryption
String actualDecrypted = MonoAlphabetic.decrypt(encryptedText, key);
assertEquals(plainText, actualDecrypted, "Decryption failed for input: " + encryptedText + " with key: " + key);
}
// Provide test data for both encryption and decryption
private static Stream<Arguments> provideTestData() {
return Stream.of(Arguments.of("HELLO", "MNBVCXZLKJHGFDSAPOIUYTREWQ", "LCGGS"), Arguments.of("JAVA", "MNBVCXZLKJHGFDSAPOIUYTREWQ", "JMTM"), Arguments.of("HELLO", "QWERTYUIOPLKJHGFDSAZXCVBNM", "ITKKG"), Arguments.of("JAVA", "QWERTYUIOPLKJHGFDSAZXCVBNM", "PQCQ"));
}
}