use ciphers::{Cipher, ADFGX};
#[test]
fn encipher_small() {
let adfgx = ADFGX::new("PHQGMEAYNOFDXKRCVSZWBUTIL", "GERMAN");
let ctext = adfgx.encipher("DEFENDTHEEASTWALLOFTHECASTLE");
assert_eq!(
ctext.unwrap(),
"FFDGDDADXDAFAFXAAFAFDXDXXFDGDAGDDXXFAFADAFDXDDXDDADGXXGX"
);
}
#[test]
fn decipher_small() {
let adfgx = ADFGX::new("PHQGMEAYNOFDXKRCVSZWBUTIL", "GERMAN");
let ptext = adfgx.decipher("FFDGDDADXDAFAFXAAFAFDXDXXFDGDAGDDXXFAFADAFDXDDXDDADGXXGX");
assert_eq!(ptext.unwrap(), "DEFENDTHEEASTWALLOFTHECASTLE");
}
#[test]
fn encipher_large() {
let adfgx = ADFGX::new("GEHDOSWILFQRCKUXZMNBPATVY", "ABCDEFGHIJKLMN");
let ctext = adfgx.encipher("ABCDEFGHIIKLMNOPQRSTUVWXYZABCDEFGHIIKLMNOPQRSTUVWXYZ");
assert_eq!(
ctext.unwrap(),
"XAAXFDFGDFXGFFAAGDXDAFFXXFADGGDXFDFGADDGFFAADGADAFFXDGXGGDXXFFADDGAGFDGADAGXDGXXAAXXFFDFXG\
AGFGDXDAGXXFAD"
);
}
#[test]
fn decipher_large() {
let adfgx = ADFGX::new("GEHDOSWILFQRCKUXZMNBPATVY", "ABCDEFGHIJKLMN");
let ptext = adfgx.decipher(
"XAAXFDFGDFXGFFAAGDXDAFFXXFADGGDXFDFGADDGFFAADGADAFFXDGXGGDXXFFADDGAGFDGADAGXDGXXAAXXFFDFXG\
AGFGDXDAGXXFAD"
);
assert_eq!(
ptext.unwrap(),
"ABCDEFGHIIKLMNOPQRSTUVWXYZABCDEFGHIIKLMNOPQRSTUVWXYZ"
);
}
#[test]
fn encipher_lowercase() {
let adfgx = ADFGX::new("phqgmeaynofdxkrcvszwbutil", "german");
let ctext = adfgx.encipher("defendtheeastwallofthecastle");
assert_eq!(
ctext.unwrap(),
"FFDGDDADXDAFAFXAAFAFDXDXXFDGDAGDDXXFAFADAFDXDDXDDADGXXGX"
);
}
#[test]
fn decipher_lowercase() {
let adfgx = ADFGX::new("phqgmeaynofdxkrcvszwbutil", "german");
let ptext = adfgx.decipher("FFDGDDADXDAFAFXAAFAFDXDXXFDGDAGDDXXFAFADAFDXDDXDDADGXXGX");
assert_eq!(ptext.unwrap(), "defendtheeastwallofthecastle");
}
#[test]
#[should_panic]
fn key_not_25_chars() {
ADFGX::new("phqgmeaynofdxkrcvszwbuti", "german");
}