use ciphers::{Caesar, Cipher, CipherInputError};
#[test]
fn encipher_rot1_small() {
let caesar = Caesar::new(1);
let ctext = caesar.encipher("DEFENDTHEEASTWALLOFTHECASTLE");
assert_eq!(ctext.unwrap(), "EFGFOEUIFFBTUXBMMPGUIFDBTUMF");
}
#[test]
fn decipher_rot1_small() {
let caesar = Caesar::new(1);
let ptext = caesar.decipher("EFGFOEUIFFBTUXBMMPGUIFDBTUMF");
assert_eq!(ptext.unwrap(), "DEFENDTHEEASTWALLOFTHECASTLE");
}
#[test]
fn encipher_rot25_small() {
let caesar = Caesar::new(25);
let ctext = caesar.encipher("DEFENDTHEEASTWALLOFTHECASTLE");
assert_eq!(ctext.unwrap(), "CDEDMCSGDDZRSVZKKNESGDBZRSKD");
}
#[test]
fn decipher_rot25_small() {
let caesar = Caesar::new(25);
let ptext = caesar.decipher("CDEDMCSGDDZRSVZKKNESGDBZRSKD");
assert_eq!(ptext.unwrap(), "DEFENDTHEEASTWALLOFTHECASTLE");
}
#[test]
fn encipher_rot1_large() {
let caesar = Caesar::new(1);
let ctext = caesar.encipher("ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ");
assert_eq!(
ctext.unwrap(),
"BCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZA"
);
}
#[test]
fn decipher_rot1_large() {
let caesar = Caesar::new(1);
let ptext = caesar.decipher("BCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZA");
assert_eq!(
ptext.unwrap(),
"ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ"
);
}
#[test]
fn encipher_rot25_large() {
let caesar = Caesar::new(25);
let ctext = caesar.encipher("ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ");
assert_eq!(
ctext.unwrap(),
"ZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXY"
);
}
#[test]
fn decipher_rot25_large() {
let caesar = Caesar::new(25);
let ptext = caesar.decipher("ZABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXY");
assert_eq!(
ptext.unwrap(),
"ABCDEFGHIJKLMNOPQRSTUVWXYZABCDEFGHIJKLMNOPQRSTUVWXYZ"
);
}
#[test]
fn encipher_lowercase() {
let caesar = Caesar::new(1);
let ctext = caesar.encipher("defendtheeastwallofthecastle");
assert_eq!(ctext.unwrap(), "EFGFOEUIFFBTUXBMMPGUIFDBTUMF");
}
#[test]
fn decipher_lowercase() {
let caesar = Caesar::new(1);
let ptext = caesar.decipher("efgfoeuiffbtuxbmmpguifdbtumf");
assert_eq!(ptext.unwrap(), "DEFENDTHEEASTWALLOFTHECASTLE");
}
#[test]
fn ptext_non_alpha() {
let caesar = Caesar::new(1);
let ctext = caesar.encipher("d3f3ndtheeastwallofthecastle");
assert_eq!(ctext, Err(CipherInputError::NotAlphabetic));
}
#[test]
fn ctext_non_alpha() {
let caesar = Caesar::new(1);
let ptext = caesar.decipher("3f6fo3uiffbtuxbmmpguifdbtumf");
assert_eq!(ptext, Err(CipherInputError::NotAlphabetic));
}