defmodule AtbashTest do use ExUnit.Case describe "encode" do test "yes" do assert Atbash.encode("yes") == "bvh" end test "no" do assert Atbash.encode("no") == "ml" end test "OMG" do assert Atbash.encode("OMG") == "lnt" end test "O M G" do assert Atbash.encode("O M G") == "lnt" end test "mindblowingly" do assert Atbash.encode("mindblowingly") == "nrmwy oldrm tob" end test "numbers" do assert Atbash.encode("Testing, 1 2 3, testing.") == "gvhgr mt123 gvhgr mt" end test "deep thought" do assert Atbash.encode("Truth is fiction.") == "gifgs rhurx grlm" end test "all the letters" do plaintext = "The quick brown fox jumps over the lazy dog." cipher = "gsvjf rxpyi ldmul cqfnk hlevi gsvoz abwlt" assert Atbash.encode(plaintext) == cipher end end describe "decode" do test "exercism" do cipher = "vcvix rhn" plaintext = "exercism" assert Atbash.decode(cipher) == plaintext end test "a sentence" do cipher = "zmlyh gzxov rhlug vmzhg vkkrm thglm v" plaintext = "anobstacleisoftenasteppingstone" assert Atbash.decode(cipher) == plaintext end test "numbers" do cipher = "gvhgr mt123 gvhgr mt" plaintext = "testing123testing" assert Atbash.decode(cipher) == plaintext end test "all the letters" do cipher = "gsvjf rxpyi ldmul cqfnk hlevi gsvoz abwlt" plaintext = "thequickbrownfoxjumpsoverthelazydog" assert Atbash.decode(cipher) == plaintext end test "with too many spaces" do cipher = "vc vix r hn" plaintext = "exercism" assert Atbash.decode(cipher) == plaintext end test "with no spaces" do cipher = "zmlyhgzxovrhlugvmzhgvkkrmthglmv" plaintext = "anobstacleisoftenasteppingstone" assert Atbash.decode(cipher) == plaintext end end end