Add unit tests for SimpleSubCipher (#3688)
This commit is contained in:
parent
1c7da7af25
commit
cc17d60d5c
@ -19,8 +19,8 @@ public class SimpleSubCipher {
|
|||||||
* @param cipherSmall
|
* @param cipherSmall
|
||||||
* @return Encrypted message
|
* @return Encrypted message
|
||||||
*/
|
*/
|
||||||
public static String encode(String message, String cipherSmall) {
|
public String encode(String message, String cipherSmall) {
|
||||||
String encoded = "";
|
StringBuilder encoded = new StringBuilder();
|
||||||
|
|
||||||
// This map is used to encode
|
// This map is used to encode
|
||||||
Map<Character, Character> cipherMap = new HashMap<>();
|
Map<Character, Character> cipherMap = new HashMap<>();
|
||||||
@ -39,13 +39,13 @@ public class SimpleSubCipher {
|
|||||||
|
|
||||||
for (int i = 0; i < message.length(); i++) {
|
for (int i = 0; i < message.length(); i++) {
|
||||||
if (Character.isAlphabetic(message.charAt(i))) {
|
if (Character.isAlphabetic(message.charAt(i))) {
|
||||||
encoded += cipherMap.get(message.charAt(i));
|
encoded.append(cipherMap.get(message.charAt(i)));
|
||||||
} else {
|
} else {
|
||||||
encoded += message.charAt(i);
|
encoded.append(message.charAt(i));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return encoded;
|
return encoded.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -56,10 +56,10 @@ public class SimpleSubCipher {
|
|||||||
* @param cipherSmall
|
* @param cipherSmall
|
||||||
* @return message
|
* @return message
|
||||||
*/
|
*/
|
||||||
public static String decode(String encryptedMessage, String cipherSmall) {
|
public String decode(String encryptedMessage, String cipherSmall) {
|
||||||
String decoded = "";
|
StringBuilder decoded = new StringBuilder();
|
||||||
|
|
||||||
Map<Character, Character> cipherMap = new HashMap<Character, Character>();
|
Map<Character, Character> cipherMap = new HashMap<>();
|
||||||
|
|
||||||
char beginSmallLetter = 'a';
|
char beginSmallLetter = 'a';
|
||||||
char beginCapitalLetter = 'A';
|
char beginCapitalLetter = 'A';
|
||||||
@ -74,21 +74,13 @@ public class SimpleSubCipher {
|
|||||||
|
|
||||||
for (int i = 0; i < encryptedMessage.length(); i++) {
|
for (int i = 0; i < encryptedMessage.length(); i++) {
|
||||||
if (Character.isAlphabetic(encryptedMessage.charAt(i))) {
|
if (Character.isAlphabetic(encryptedMessage.charAt(i))) {
|
||||||
decoded += cipherMap.get(encryptedMessage.charAt(i));
|
decoded.append(cipherMap.get(encryptedMessage.charAt(i)));
|
||||||
} else {
|
} else {
|
||||||
decoded += encryptedMessage.charAt(i);
|
decoded.append(encryptedMessage.charAt(i));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return decoded;
|
return decoded.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void main(String[] args) {
|
|
||||||
String a = encode(
|
|
||||||
"defend the east wall of the castle",
|
|
||||||
"phqgiumeaylnofdxjkrcvstzwb"
|
|
||||||
);
|
|
||||||
String b = decode(a, "phqgiumeaylnofdxjkrcvstzwb");
|
|
||||||
System.out.println(b);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,37 @@
|
|||||||
|
package com.thealgorithms.ciphers;
|
||||||
|
|
||||||
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
|
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||||
|
|
||||||
|
class SimpleSubCipherTest {
|
||||||
|
|
||||||
|
SimpleSubCipher simpleSubCipher = new SimpleSubCipher();
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void simpleSubCipherEncryptTest() {
|
||||||
|
// given
|
||||||
|
String text = "defend the east wall of the castle";
|
||||||
|
String cipherSmall = "phqgiumeaylnofdxjkrcvstzwb";
|
||||||
|
|
||||||
|
// when
|
||||||
|
String cipherText = simpleSubCipher.encode(text, cipherSmall);
|
||||||
|
|
||||||
|
// then
|
||||||
|
assertEquals("giuifg cei iprc tpnn du cei qprcni", cipherText);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void simpleSubCipherDecryptTest() {
|
||||||
|
// given
|
||||||
|
String encryptedText = "giuifg cei iprc tpnn du cei qprcni";
|
||||||
|
String cipherSmall = "phqgiumeaylnofdxjkrcvstzwb";
|
||||||
|
|
||||||
|
// when
|
||||||
|
String decryptedText = simpleSubCipher.decode(encryptedText, cipherSmall);
|
||||||
|
|
||||||
|
// then
|
||||||
|
assertEquals("defend the east wall of the castle", decryptedText);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user