diff --git a/src/main/java/mattrixwv/CipherStreamJava/Atbash.java b/src/main/java/com/mattrixwv/CipherStreamJava/Atbash.java similarity index 95% rename from src/main/java/mattrixwv/CipherStreamJava/Atbash.java rename to src/main/java/com/mattrixwv/CipherStreamJava/Atbash.java index 10a13b1..a999427 100644 --- a/src/main/java/mattrixwv/CipherStreamJava/Atbash.java +++ b/src/main/java/com/mattrixwv/CipherStreamJava/Atbash.java @@ -1,9 +1,8 @@ -//CipherStreamJava/src/main/java/mattrixwv/CipherStreamJava/Atbash.java +//CipherStreamJava/src/main/java/com/mattrixwv/CipherStreamJava/Atbash.java //Matthew Ellison // Created: 07-25-21 //Modified: 01-04-22 -//This is the declaration of the Atbash class -package mattrixwv.CipherStreamJava; +package com.mattrixwv.CipherStreamJava; public class Atbash{ diff --git a/src/main/java/mattrixwv/CipherStreamJava/Autokey.java b/src/main/java/com/mattrixwv/CipherStreamJava/Autokey.java similarity index 94% rename from src/main/java/mattrixwv/CipherStreamJava/Autokey.java rename to src/main/java/com/mattrixwv/CipherStreamJava/Autokey.java index 7bf7c6e..ea64ae2 100644 --- a/src/main/java/mattrixwv/CipherStreamJava/Autokey.java +++ b/src/main/java/com/mattrixwv/CipherStreamJava/Autokey.java @@ -1,9 +1,8 @@ -//CipherStreamJava/src/main/java/mattrixwv/CipherStreamJava/Autokey.java +//CipherStreamJava/src/main/java/com/mattrixwv/CipherStreamJava/Autokey.java //Matthew Ellison // Created: 07-25-21 -//Modified: 12-30--21 -//This is the declaration of the Autokey class -package mattrixwv.CipherStreamJava; +//Modified: 01-04-22 +package com.mattrixwv.CipherStreamJava; public class Autokey extends Vigenere{ diff --git a/src/main/java/mattrixwv/CipherStreamJava/Caesar.java b/src/main/java/com/mattrixwv/CipherStreamJava/Caesar.java similarity index 96% rename from src/main/java/mattrixwv/CipherStreamJava/Caesar.java rename to src/main/java/com/mattrixwv/CipherStreamJava/Caesar.java index 0206c21..6e4b5cc 100644 --- a/src/main/java/mattrixwv/CipherStreamJava/Caesar.java +++ b/src/main/java/com/mattrixwv/CipherStreamJava/Caesar.java @@ -1,9 +1,8 @@ -//CipherStreamJava/src/main/java/mattrixwv/CipherStreamJava/Caesar.java +//CipherStreamJava/src/main/java/com/mattrixwv/CipherStreamJava/Caesar.java //Matthew Ellison // Created: 07-25-21 //Modified: 01-04-22 -//This is the declaration of the Caesar class -package mattrixwv.CipherStreamJava; +package com.mattrixwv.CipherStreamJava; public class Caesar{ diff --git a/src/main/java/mattrixwv/CipherStreamJava/Exceptions/InvalidCharacterException.java b/src/main/java/com/mattrixwv/CipherStreamJava/Exceptions/InvalidCharacterException.java similarity index 72% rename from src/main/java/mattrixwv/CipherStreamJava/Exceptions/InvalidCharacterException.java rename to src/main/java/com/mattrixwv/CipherStreamJava/Exceptions/InvalidCharacterException.java index 7ea4137..094b171 100644 --- a/src/main/java/mattrixwv/CipherStreamJava/Exceptions/InvalidCharacterException.java +++ b/src/main/java/com/mattrixwv/CipherStreamJava/Exceptions/InvalidCharacterException.java @@ -1,8 +1,8 @@ -//CipherStreamJava/src/main/java/mattrixwv/CipherStreamJava/Exceptions/InvalidCharacterException.java +//CipherStreamJava/src/main/java/com/mattrixwv/CipherStreamJava/Exceptions/InvalidCharacterException.java //Mattrixwv // Created: 01-04-22 //Modified: 01-04-22 -package mattrixwv.CipherStreamJava.Exceptions; +package com.mattrixwv.CipherStreamJava.Exceptions; public class InvalidCharacterException extends Exception{ diff --git a/src/main/java/mattrixwv/CipherStreamJava/Morse.java b/src/main/java/com/mattrixwv/CipherStreamJava/Morse.java similarity index 95% rename from src/main/java/mattrixwv/CipherStreamJava/Morse.java rename to src/main/java/com/mattrixwv/CipherStreamJava/Morse.java index d74cd30..c87a4ec 100644 --- a/src/main/java/mattrixwv/CipherStreamJava/Morse.java +++ b/src/main/java/com/mattrixwv/CipherStreamJava/Morse.java @@ -1,9 +1,8 @@ -//CipherStreamJava/src/main/java/mattrixwv/CipherStreamJava/Morse.java +//CipherStreamJava/src/main/java/com/mattrixwv/CipherStreamJava/Morse.java //Matthew Ellison // Created: 07-28-21 -//Modified: 07-28-21 -//This is the declaration of the Morse class -package mattrixwv.CipherStreamJava; +//Modified: 01-04-22 +package com.mattrixwv.CipherStreamJava; public class Morse{ diff --git a/src/main/java/mattrixwv/CipherStreamJava/Playfair.java b/src/main/java/com/mattrixwv/CipherStreamJava/Playfair.java similarity index 98% rename from src/main/java/mattrixwv/CipherStreamJava/Playfair.java rename to src/main/java/com/mattrixwv/CipherStreamJava/Playfair.java index 8d916a9..f6fd8b2 100644 --- a/src/main/java/mattrixwv/CipherStreamJava/Playfair.java +++ b/src/main/java/com/mattrixwv/CipherStreamJava/Playfair.java @@ -1,11 +1,12 @@ -//CipherStreamJava/src/main/java/mattrixwv/CipherStreamJava/Playfair.java +//CipherStreamJava/src/main/java/com/mattrixwv/CipherStreamJava/Playfair.java //Matthew Ellison // Created: 07-30-21 //Modified: 01-04-22 -//This is the declaration of the Playfair class -package mattrixwv.CipherStreamJava; +package com.mattrixwv.CipherStreamJava; + + +import com.mattrixwv.CipherStreamJava.Exceptions.InvalidCharacterException; -import mattrixwv.CipherStreamJava.Exceptions.InvalidCharacterException; public class Playfair{ //A class representing the location of a character in the grid diff --git a/src/main/java/mattrixwv/CipherStreamJava/PolybiusSquare.java b/src/main/java/com/mattrixwv/CipherStreamJava/PolybiusSquare.java similarity index 98% rename from src/main/java/mattrixwv/CipherStreamJava/PolybiusSquare.java rename to src/main/java/com/mattrixwv/CipherStreamJava/PolybiusSquare.java index 54579fa..ff61b9e 100644 --- a/src/main/java/mattrixwv/CipherStreamJava/PolybiusSquare.java +++ b/src/main/java/com/mattrixwv/CipherStreamJava/PolybiusSquare.java @@ -1,12 +1,14 @@ -//CipherStreamJava/src/main/java/mattrixwv/CipherStreamJava/PolybiusSquare.java +//CipherStreamJava/src/main/java/com/mattrixwv/CipherStreamJava/PolybiusSquare.java //Mattrixwv // Created: 01-04-22 //Modified: 01-04-22 -package mattrixwv.CipherStreamJava; +package com.mattrixwv.CipherStreamJava; + import java.util.StringJoiner; -import mattrixwv.CipherStreamJava.Exceptions.InvalidCharacterException; +import com.mattrixwv.CipherStreamJava.Exceptions.InvalidCharacterException; + public class PolybiusSquare{ //A class representing the location of a character in the grid diff --git a/src/main/java/mattrixwv/CipherStreamJava/Vigenere.java b/src/main/java/com/mattrixwv/CipherStreamJava/Vigenere.java similarity index 97% rename from src/main/java/mattrixwv/CipherStreamJava/Vigenere.java rename to src/main/java/com/mattrixwv/CipherStreamJava/Vigenere.java index c480093..50073b4 100644 --- a/src/main/java/mattrixwv/CipherStreamJava/Vigenere.java +++ b/src/main/java/com/mattrixwv/CipherStreamJava/Vigenere.java @@ -1,9 +1,8 @@ -//CipherStreamJava/src/main/java/mattrixwv/CipherStreamJava/Vigenere.java +//CipherStreamJava/src/main/java/com/mattrixwv/CipherStreamJava/Vigenere.java //Matthew Ellison // Created: 07-25-21 //Modified: 01-04-22 -//This is the declaration of the Vigenere class -package mattrixwv.CipherStreamJava; +package com.mattrixwv.CipherStreamJava; import java.util.ArrayList; diff --git a/src/test/java/mattrixwv/CipherStreamJava/TestAtbash.java b/src/test/java/com/mattrixwv/CipherStreamJava/TestAtbash.java similarity index 98% rename from src/test/java/mattrixwv/CipherStreamJava/TestAtbash.java rename to src/test/java/com/mattrixwv/CipherStreamJava/TestAtbash.java index 42b7955..b44cd90 100644 --- a/src/test/java/mattrixwv/CipherStreamJava/TestAtbash.java +++ b/src/test/java/com/mattrixwv/CipherStreamJava/TestAtbash.java @@ -1,9 +1,8 @@ -//CipherStreamJava/src/main/java/mattrixwv/CipherStreamJava/TestAtbash.java +//CipherStreamJava/src/main/java/com/mattrixwv/CipherStreamJava/TestAtbash.java //Matthew Ellison // Created: 07-25-21 -//Modified: 12-30-21 -//These are the tests for the Atbash class -package mattrixwv.CipherStreamJava; +//Modified: 01-04-22 +package com.mattrixwv.CipherStreamJava; import static org.junit.Assert.assertEquals; diff --git a/src/test/java/mattrixwv/CipherStreamJava/TestAutokey.java b/src/test/java/com/mattrixwv/CipherStreamJava/TestAutokey.java similarity index 99% rename from src/test/java/mattrixwv/CipherStreamJava/TestAutokey.java rename to src/test/java/com/mattrixwv/CipherStreamJava/TestAutokey.java index 52dbeb2..8549247 100644 --- a/src/test/java/mattrixwv/CipherStreamJava/TestAutokey.java +++ b/src/test/java/com/mattrixwv/CipherStreamJava/TestAutokey.java @@ -1,9 +1,8 @@ -//CipherStreamJava/src/main/java/mattrixwv/CipherStreamJava/TestAutokey.java +//CipherStreamJava/src/main/java/com/mattrixwv/CipherStreamJava/TestAutokey.java //Matthew Ellison // Created: 07-26-21 -//Modified: 12-30-21 -//These are the tests for the Vigenere class -package mattrixwv.CipherStreamJava; +//Modified: 01-04-22 +package com.mattrixwv.CipherStreamJava; import static org.junit.Assert.assertEquals; diff --git a/src/test/java/mattrixwv/CipherStreamJava/TestCaesar.java b/src/test/java/com/mattrixwv/CipherStreamJava/TestCaesar.java similarity index 99% rename from src/test/java/mattrixwv/CipherStreamJava/TestCaesar.java rename to src/test/java/com/mattrixwv/CipherStreamJava/TestCaesar.java index 883a929..4a9353e 100644 --- a/src/test/java/mattrixwv/CipherStreamJava/TestCaesar.java +++ b/src/test/java/com/mattrixwv/CipherStreamJava/TestCaesar.java @@ -1,9 +1,8 @@ -//CipherStreamJava/src/test/java/mattrixwv/CipherStreamJava/TestCaesar.java +//CipherStreamJava/src/test/java/com/mattrixwv/CipherStreamJava/TestCaesar.java //Matthew Ellison // Created: 07-25-21 -//Modified: 12-30-21 -//These are the tests for the Caesar class -package mattrixwv.CipherStreamJava; +//Modified: 01-04-22 +package com.mattrixwv.CipherStreamJava; import static org.junit.Assert.assertEquals; diff --git a/src/test/java/mattrixwv/CipherStreamJava/TestMorse.java b/src/test/java/com/mattrixwv/CipherStreamJava/TestMorse.java similarity index 86% rename from src/test/java/mattrixwv/CipherStreamJava/TestMorse.java rename to src/test/java/com/mattrixwv/CipherStreamJava/TestMorse.java index ce855c5..852e66c 100644 --- a/src/test/java/mattrixwv/CipherStreamJava/TestMorse.java +++ b/src/test/java/com/mattrixwv/CipherStreamJava/TestMorse.java @@ -1,59 +1,58 @@ -//CipherStreamJava/src/main/java/mattrixwv/CipherStreamJava/TestMorse.java -//Matthew Ellison -// Created: 07-28-21 -//Modified: 07-28-21 -//These are the tests for the Morse class -package mattrixwv.CipherStreamJava; - - -import static org.junit.Assert.assertEquals; - -import org.junit.Test; - - -public class TestMorse{ - @Test - public void testDecode(){ - Morse cipher = new Morse(); - - //Test 1 - String input = "... --- ..."; - String correctOutput = "SOS"; - String output = cipher.decode(input); - assertEquals("Morse Decoding failed the first test", correctOutput, output); - - //Test 2 - input = "-- --- .-. ... . -.-. --- -.. ."; - correctOutput = "MORSECODE"; - output = cipher.decode(input); - assertEquals("Morse Decoding failed the second test", correctOutput, output); - - //Test 3 - input = ".---- ..--- ...-- ----. ---.. --..."; - correctOutput = "123987"; - output = cipher.decode(input); - assertEquals("Morse Decoding failed the third test", correctOutput, output); - } - @Test - public void testEncode(){ - Morse cipher = new Morse(); - - //Test 1 - String input = "sos"; - String correctOutput = "... --- ..."; - String output = cipher.encode(input); - assertEquals("Morse Encoding failed the first test", correctOutput, output); - - //Test 2 - input = "MORSE, CODE"; - correctOutput = "-- --- .-. ... . -.-. --- -.. ."; - output = cipher.encode(input); - assertEquals("Morse Encoding failed the second test", correctOutput, output); - - //Test 3 - input = "1.23 987"; - correctOutput = ".---- ..--- ...-- ----. ---.. --..."; - output = cipher.encode(input); - assertEquals("Morse Encoding failed the third test", correctOutput, output); - } -} +//CipherStreamJava/src/main/java/com/mattrixwv/CipherStreamJava/TestMorse.java +//Matthew Ellison +// Created: 07-28-21 +//Modified: 01-04-22 +package com.mattrixwv.CipherStreamJava; + + +import static org.junit.Assert.assertEquals; + +import org.junit.Test; + + +public class TestMorse{ + @Test + public void testDecode(){ + Morse cipher = new Morse(); + + //Test 1 + String input = "... --- ..."; + String correctOutput = "SOS"; + String output = cipher.decode(input); + assertEquals("Morse Decoding failed the first test", correctOutput, output); + + //Test 2 + input = "-- --- .-. ... . -.-. --- -.. ."; + correctOutput = "MORSECODE"; + output = cipher.decode(input); + assertEquals("Morse Decoding failed the second test", correctOutput, output); + + //Test 3 + input = ".---- ..--- ...-- ----. ---.. --..."; + correctOutput = "123987"; + output = cipher.decode(input); + assertEquals("Morse Decoding failed the third test", correctOutput, output); + } + @Test + public void testEncode(){ + Morse cipher = new Morse(); + + //Test 1 + String input = "sos"; + String correctOutput = "... --- ..."; + String output = cipher.encode(input); + assertEquals("Morse Encoding failed the first test", correctOutput, output); + + //Test 2 + input = "MORSE, CODE"; + correctOutput = "-- --- .-. ... . -.-. --- -.. ."; + output = cipher.encode(input); + assertEquals("Morse Encoding failed the second test", correctOutput, output); + + //Test 3 + input = "1.23 987"; + correctOutput = ".---- ..--- ...-- ----. ---.. --..."; + output = cipher.encode(input); + assertEquals("Morse Encoding failed the third test", correctOutput, output); + } +} diff --git a/src/test/java/mattrixwv/CipherStreamJava/TestPlayfair.java b/src/test/java/com/mattrixwv/CipherStreamJava/TestPlayfair.java similarity index 99% rename from src/test/java/mattrixwv/CipherStreamJava/TestPlayfair.java rename to src/test/java/com/mattrixwv/CipherStreamJava/TestPlayfair.java index 4c9475f..b404cbe 100644 --- a/src/test/java/mattrixwv/CipherStreamJava/TestPlayfair.java +++ b/src/test/java/com/mattrixwv/CipherStreamJava/TestPlayfair.java @@ -1,16 +1,15 @@ -//CipherStreamJava/src/main/java/mattrixwv/CipherStreamJava/TestPlayfair.java +//CipherStreamJava/src/main/java/com/mattrixwv/CipherStreamJava/TestPlayfair.java //Matthew Ellison // Created: 07-30-21 //Modified: 01-04-22 -//These are the tests for the Playfair class -package mattrixwv.CipherStreamJava; +package com.mattrixwv.CipherStreamJava; import static org.junit.Assert.assertEquals; -import org.junit.Test; +import com.mattrixwv.CipherStreamJava.Exceptions.InvalidCharacterException; -import mattrixwv.CipherStreamJava.Exceptions.InvalidCharacterException; +import org.junit.Test; public class TestPlayfair{ diff --git a/src/test/java/mattrixwv/CipherStreamJava/TestPolybiusSquare.java b/src/test/java/com/mattrixwv/CipherStreamJava/TestPolybiusSquare.java similarity index 98% rename from src/test/java/mattrixwv/CipherStreamJava/TestPolybiusSquare.java rename to src/test/java/com/mattrixwv/CipherStreamJava/TestPolybiusSquare.java index 5625fec..556bda6 100644 --- a/src/test/java/mattrixwv/CipherStreamJava/TestPolybiusSquare.java +++ b/src/test/java/com/mattrixwv/CipherStreamJava/TestPolybiusSquare.java @@ -1,15 +1,15 @@ -//CipherStreamJava/src/test/java/mattrixwv/CipherStreamJava/TestPolybiusSquare.java +//CipherStreamJava/src/test/java/com/mattrixwv/CipherStreamJava/TestPolybiusSquare.java //Mattrixwv // Created: 01-04-22 //Modified: 01-04-22 -package mattrixwv.CipherStreamJava; +package com.mattrixwv.CipherStreamJava; import static org.junit.Assert.assertEquals; -import org.junit.Test; +import com.mattrixwv.CipherStreamJava.Exceptions.InvalidCharacterException; -import mattrixwv.CipherStreamJava.Exceptions.InvalidCharacterException; +import org.junit.Test; public class TestPolybiusSquare{ diff --git a/src/test/java/mattrixwv/CipherStreamJava/TestVigenere.java b/src/test/java/com/mattrixwv/CipherStreamJava/TestVigenere.java similarity index 96% rename from src/test/java/mattrixwv/CipherStreamJava/TestVigenere.java rename to src/test/java/com/mattrixwv/CipherStreamJava/TestVigenere.java index cf3e10f..b86b049 100644 --- a/src/test/java/mattrixwv/CipherStreamJava/TestVigenere.java +++ b/src/test/java/com/mattrixwv/CipherStreamJava/TestVigenere.java @@ -1,523 +1,522 @@ -//CipherStreamJava/src/main/java/mattrixwv/CipherStreamJava/TestVigenere.java -//Matthew Ellison -// Created: 07-25-21 -//Modified: 12-30-21 -//These are the tests for the Vigenere class -package mattrixwv.CipherStreamJava; - - -import static org.junit.Assert.assertEquals; - -import org.junit.Test; - - -public class TestVigenere{ - @Test - public void testDecode() throws Exception{ - Vigenere cipher = new Vigenere(true, true, true); - - //Test lowercase decoding - String input = "xzb"; - String keyword = "xyz"; - String correctOutput = "abc"; - String output = cipher.decode(keyword, input); - assertEquals("Vigenere failed lowercase decoding.", correctOutput, output); - //Test uppercase decoding - input = "XZB"; - keyword = "XYZ"; - correctOutput = "ABC"; - output = cipher.decode(keyword, input); - assertEquals("Vigenere failed uppercase decoding.", correctOutput, output); - - - //Test whitespace decoding - input = "x z b"; - keyword = "xyz"; - correctOutput = "a b c"; - output = cipher.decode(keyword, input); - assertEquals("Vigenere failed whitespace decoding.", correctOutput, output); - - - //Test symbol decoding - input = "x@z^b"; - keyword = "xyz"; - correctOutput = "a@b^c"; - output = cipher.decode(keyword, input); - assertEquals("Vigenere failed symbol decoding.", correctOutput, output); - - - //Test mixed case, whitespace, symbol decoding - input = "Lxfopv ef - rnhr"; - keyword = "lemon"; - correctOutput = "Attack at - dawn"; - output = cipher.decode(keyword, input); - assertEquals("Vigenere failed mixed case, whitespace, symbol decoding.", correctOutput, output); - //Test mixed case, whitespace, symbol decoding with mangled keyword - input = "'Csastp' kv siqut gqu 'Csastpiuaqjb'"; - keyword = " a@b C=d"; - correctOutput = "'Crypto' is short for 'Cryptography'"; - output = cipher.decode(keyword, input); - assertEquals("Vigenere failed mixed case, whitespace, symbol decoding with mangled keyword.", correctOutput, output); - } - @Test - public void testNoWhitespaceDecode() throws Exception{ - Vigenere cipher = new Vigenere(true, false, true); - - //Test lowercase decoding - String input = "xzb"; - String keyword = "xyz"; - String correctOutput = "abc"; - String output = cipher.decode(keyword, input); - assertEquals("Vigenere failed lowercase decoding.", correctOutput, output); - //Test uppercase decoding - input = "XZB"; - keyword = "XYZ"; - correctOutput = "ABC"; - output = cipher.decode(keyword, input); - assertEquals("Vigenere failed uppercase decoding.", correctOutput, output); - - - //Test whitespace decoding - input = "x z b"; - keyword = "xyz"; - correctOutput = "abc"; - output = cipher.decode(keyword, input); - assertEquals("Vigenere failed whitespace decoding.", correctOutput, output); - - - //Test symbol decoding - input = "x@z^b"; - keyword = "xyz"; - correctOutput = "a@b^c"; - output = cipher.decode(keyword, input); - assertEquals("Vigenere failed symbol decoding.", correctOutput, output); - - - //Test mixed case, whitespace, symbol decoding - input = "Lxfopv ef - rnhr"; - keyword = "lemon"; - correctOutput = "Attackat-dawn"; - output = cipher.decode(keyword, input); - assertEquals("Vigenere failed mixed case, whitespace, symbol decoding.", correctOutput, output); - //Test mixed case, whitespace, symbol decoding with mangled keyword - input = "'Csastp' kv siqut gqu 'Csastpiuaqjb'"; - keyword = " a@b C=d"; - correctOutput = "'Crypto'isshortfor'Cryptography'"; - output = cipher.decode(keyword, input); - assertEquals("Vigenere failed mixed case, whitespace, symbol decoding with mangled keyword.", correctOutput, output); - } - @Test - public void testNoCapitalDecode() throws Exception{ - Vigenere cipher = new Vigenere(false, true, true); - - //Test lowercase decoding - String input = "xzb"; - String keyword = "xyz"; - String correctOutput = "abc"; - String output = cipher.decode(keyword, input); - assertEquals("Vigenere failed lowercase decoding.", correctOutput, output); - //Test uppercase decoding - input = "XZB"; - keyword = "XYZ"; - correctOutput = "abc"; - output = cipher.decode(keyword, input); - assertEquals("Vigenere failed uppercase decoding.", correctOutput, output); - - - //Test whitespace decoding - input = "x z b"; - keyword = "xyz"; - correctOutput = "a b c"; - output = cipher.decode(keyword, input); - assertEquals("Vigenere failed whitespace decoding.", correctOutput, output); - - - //Test symbol decoding - input = "x@z^b"; - keyword = "xyz"; - correctOutput = "a@b^c"; - output = cipher.decode(keyword, input); - assertEquals("Vigenere failed symbol decoding.", correctOutput, output); - - - //Test mixed case, whitespace, symbol decoding - input = "Lxfopv ef - rnhr"; - keyword = "lemon"; - correctOutput = "attack at - dawn"; - output = cipher.decode(keyword, input); - assertEquals("Vigenere failed mixed case, whitespace, symbol decoding.", correctOutput, output); - //Test mixed case, whitespace, symbol decoding with mangled keyword - input = "'Csastp' kv siqut gqu 'Csastpiuaqjb'"; - keyword = " a@b C=d"; - correctOutput = "'crypto' is short for 'cryptography'"; - output = cipher.decode(keyword, input); - assertEquals("Vigenere failed mixed case, whitespace, symbol decoding with mangled keyword.", correctOutput, output); - } - @Test - public void testNoSymbolDecode() throws Exception{ - Vigenere cipher = new Vigenere(true, true, false); - - //Test lowercase decoding - String input = "xzb"; - String keyword = "xyz"; - String correctOutput = "abc"; - String output = cipher.decode(keyword, input); - assertEquals("Vigenere failed lowercase decoding.", correctOutput, output); - //Test uppercase decoding - input = "XZB"; - keyword = "XYZ"; - correctOutput = "ABC"; - output = cipher.decode(keyword, input); - assertEquals("Vigenere failed uppercase decoding.", correctOutput, output); - - - //Test whitespace decoding - input = "x z b"; - keyword = "xyz"; - correctOutput = "a b c"; - output = cipher.decode(keyword, input); - assertEquals("Vigenere failed whitespace decoding.", correctOutput, output); - - - //Test symbol decoding - input = "x@z^b"; - keyword = "xyz"; - correctOutput = "abc"; - output = cipher.decode(keyword, input); - assertEquals("Vigenere failed symbol decoding.", correctOutput, output); - - - //Test mixed case, whitespace, symbol decoding - input = "Lxfopv ef - rnhr"; - keyword = "lemon"; - correctOutput = "Attack at dawn"; - output = cipher.decode(keyword, input); - assertEquals("Vigenere failed mixed case, whitespace, symbol decoding.", correctOutput, output); - //Test mixed case, whitespace, symbol decoding with mangled keyword - input = "'Csastp' kv siqut gqu 'Csastpiuaqjb'"; - keyword = " a@b C=d"; - correctOutput = "Crypto is short for Cryptography"; - output = cipher.decode(keyword, input); - assertEquals("Vigenere failed mixed case, whitespace, symbol decoding with mangled keyword.", correctOutput, output); - } - @Test - public void testNoCapitalWhitespaceSymbolDecode() throws Exception{ - Vigenere cipher = new Vigenere(false, false, false); - - //Test lowercase decoding - String input = "xzb"; - String keyword = "xyz"; - String correctOutput = "abc"; - String output = cipher.decode(keyword, input); - assertEquals("Vigenere failed lowercase decoding.", correctOutput, output); - //Test uppercase decoding - input = "XZB"; - keyword = "XYZ"; - correctOutput = "abc"; - output = cipher.decode(keyword, input); - assertEquals("Vigenere failed uppercase decoding.", correctOutput, output); - - - //Test whitespace decoding - input = "x z b"; - keyword = "xyz"; - correctOutput = "abc"; - output = cipher.decode(keyword, input); - assertEquals("Vigenere failed whitespace decoding.", correctOutput, output); - - - //Test symbol decoding - input = "x@z^b"; - keyword = "xyz"; - correctOutput = "abc"; - output = cipher.decode(keyword, input); - assertEquals("Vigenere failed symbol decoding.", correctOutput, output); - - - //Test mixed case, whitespace, symbol decoding - input = "Lxfopv ef rnhr"; - keyword = "lemon"; - correctOutput = "attackatdawn"; - output = cipher.decode(keyword, input); - assertEquals("Vigenere failed mixed case, whitespace, symbol decoding.", correctOutput, output); - //Test mixed case, whitespace, symbol decoding with mangled keyword - input = "'Csastp' kv siqut gqu 'Csastpiuaqjb'"; - keyword = " a@b C=d"; - correctOutput = "cryptoisshortforcryptography"; - output = cipher.decode(keyword, input); - assertEquals("Vigenere failed mixed case, whitespace, symbol decoding with mangled keyword.", correctOutput, output); - } - - - @Test - public void testEncode() throws Exception{ - Vigenere cipher = new Vigenere(true, true, true); - - //Test lowercase encoding - String input = "abc"; - String keyword = "xyz"; - String correctOutput = "xzb"; - String output = cipher.encode(keyword, input); - assertEquals("Vigenere failed lowercase encoding.", correctOutput, output); - //Test upercase encoding - input = "ABC"; - keyword = "xyz"; - correctOutput = "XZB"; - output = cipher.encode(keyword, input); - assertEquals("Vigenere failed uppercase encoding.", correctOutput, output); - - - //Test whitespace encoding - input = "a b c"; - keyword = "xyz"; - correctOutput = "x z b"; - output = cipher.encode(keyword, input); - assertEquals("Vigenere failed whitespace encoding.", correctOutput, output); - - - //Test symbol decoding - input = "a@b^c"; - keyword = "xyz"; - correctOutput = "x@z^b"; - output = cipher.encode(keyword, input); - assertEquals("Vigenere failed symbol encoding.", correctOutput, output); - - - //Test mixed case, whitespace, symbol decoding - input = "Attack at dawn"; - keyword = "lemon"; - correctOutput = "Lxfopv ef rnhr"; - output = cipher.encode(keyword, input); - assertEquals("Vigenere failed mixed case, whitespace, symbol decoding.", correctOutput, output); - //Test mixed case, whitespace, symbol decoding test 2 - input = "'Crypto' is short for 'Cryptography'"; - keyword = " a@b C=d"; - correctOutput = "'Csastp' kv siqut gqu 'Csastpiuaqjb'"; - output = cipher.encode(keyword, input); - assertEquals("Vigenere failed mixed case, whitespace, symbol encoding with mangled keyword.", correctOutput, output); - } - @Test - public void testNoWhitespaceEncode() throws Exception{ - Vigenere cipher = new Vigenere(true, false, true); - - //Test lowercase encoding - String input = "abc"; - String keyword = "xyz"; - String correctOutput = "xzb"; - String output = cipher.encode(keyword, input); - assertEquals("Vigenere failed lowercase encoding.", correctOutput, output); - //Test upercase encoding - input = "ABC"; - keyword = "xyz"; - correctOutput = "XZB"; - output = cipher.encode(keyword, input); - assertEquals("Vigenere failed uppercase encoding.", correctOutput, output); - - - //Test whitespace encoding - input = "a b c"; - keyword = "xyz"; - correctOutput = "xzb"; - output = cipher.encode(keyword, input); - assertEquals("Vigenere failed whitespace encoding.", correctOutput, output); - - - //Test symbol decoding - input = "a@b^c"; - keyword = "xyz"; - correctOutput = "x@z^b"; - output = cipher.encode(keyword, input); - assertEquals("Vigenere failed symbol encoding.", correctOutput, output); - - - //Test mixed case, whitespace, symbol decoding - input = "Attack at dawn"; - keyword = "lemon"; - correctOutput = "Lxfopvefrnhr"; - output = cipher.encode(keyword, input); - assertEquals("Vigenere failed mixed case, whitespace, symbol decoding.", correctOutput, output); - //Test mixed case, whitespace, symbol decoding test 2 - input = "'Crypto' is short for 'Cryptography'"; - keyword = " a@b C=d"; - correctOutput = "'Csastp'kvsiqutgqu'Csastpiuaqjb'"; - output = cipher.encode(keyword, input); - assertEquals("Vigenere failed mixed case, whitespace, symbol encoding with mangled keyword.", correctOutput, output); - } - @Test - public void testNoCapitalEncode() throws Exception{ - Vigenere cipher = new Vigenere(false, true, true); - - //Test lowercase encoding - String input = "abc"; - String keyword = "xyz"; - String correctOutput = "xzb"; - String output = cipher.encode(keyword, input); - assertEquals("Vigenere failed lowercase encoding.", correctOutput, output); - //Test upercase encoding - input = "ABC"; - keyword = "xyz"; - correctOutput = "xzb"; - output = cipher.encode(keyword, input); - assertEquals("Vigenere failed uppercase encoding.", correctOutput, output); - - - //Test whitespace encoding - input = "a b c"; - keyword = "xyz"; - correctOutput = "x z b"; - output = cipher.encode(keyword, input); - assertEquals("Vigenere failed whitespace encoding.", correctOutput, output); - - - //Test symbol decoding - input = "a@b^c"; - keyword = "xyz"; - correctOutput = "x@z^b"; - output = cipher.encode(keyword, input); - assertEquals("Vigenere failed symbol encoding.", correctOutput, output); - - - //Test mixed case, whitespace, symbol decoding - input = "Attack at dawn"; - keyword = "lemon"; - correctOutput = "lxfopv ef rnhr"; - output = cipher.encode(keyword, input); - assertEquals("Vigenere failed mixed case, whitespace, symbol decoding.", correctOutput, output); - //Test mixed case, whitespace, symbol decoding test 2 - input = "'Crypto' is short for 'Cryptography'"; - keyword = " a@b C=d"; - correctOutput = "'csastp' kv siqut gqu 'csastpiuaqjb'"; - output = cipher.encode(keyword, input); - assertEquals("Vigenere failed mixed case, whitespace, symbol encoding with mangled keyword.", correctOutput, output); - } - @Test - public void testNoSymbolEncode() throws Exception{ - Vigenere cipher = new Vigenere(true, true, false); - - //Test lowercase encoding - String input = "abc"; - String keyword = "xyz"; - String correctOutput = "xzb"; - String output = cipher.encode(keyword, input); - assertEquals("Vigenere failed lowercase encoding.", correctOutput, output); - //Test upercase encoding - input = "ABC"; - keyword = "xyz"; - correctOutput = "XZB"; - output = cipher.encode(keyword, input); - assertEquals("Vigenere failed uppercase encoding.", correctOutput, output); - - - //Test whitespace encoding - input = "a b c"; - keyword = "xyz"; - correctOutput = "x z b"; - output = cipher.encode(keyword, input); - assertEquals("Vigenere failed whitespace encoding.", correctOutput, output); - - - //Test symbol decoding - input = "a@b^c"; - keyword = "xyz"; - correctOutput = "xzb"; - output = cipher.encode(keyword, input); - assertEquals("Vigenere failed symbol encoding.", correctOutput, output); - - - //Test mixed case, whitespace, symbol decoding - input = "Attack at dawn"; - keyword = "lemon"; - correctOutput = "Lxfopv ef rnhr"; - output = cipher.encode(keyword, input); - assertEquals("Vigenere failed mixed case, whitespace, symbol decoding.", correctOutput, output); - //Test mixed case, whitespace, symbol decoding test 2 - input = "'Crypto' is short for 'Cryptography'"; - keyword = " a@b C=d"; - correctOutput = "Csastp kv siqut gqu Csastpiuaqjb"; - output = cipher.encode(keyword, input); - assertEquals("Vigenere failed mixed case, whitespace, symbol encoding with mangled keyword.", correctOutput, output); - } - @Test - public void testNoCapitalWhitespaceSymbolEncode() throws Exception{ - Vigenere cipher = new Vigenere(false, false, false); - - //Test lowercase encoding - String input = "abc"; - String keyword = "xyz"; - String correctOutput = "xzb"; - String output = cipher.encode(keyword, input); - assertEquals("Vigenere failed lowercase encoding.", correctOutput, output); - //Test upercase encoding - input = "ABC"; - keyword = "xyz"; - correctOutput = "xzb"; - output = cipher.encode(keyword, input); - assertEquals("Vigenere failed uppercase encoding.", correctOutput, output); - - - //Test whitespace encoding - input = "a b c"; - keyword = "xyz"; - correctOutput = "xzb"; - output = cipher.encode(keyword, input); - assertEquals("Vigenere failed whitespace encoding.", correctOutput, output); - - - //Test symbol decoding - input = "a@b^c"; - keyword = "xyz"; - correctOutput = "xzb"; - output = cipher.encode(keyword, input); - assertEquals("Vigenere failed symbol encoding.", correctOutput, output); - - - //Test mixed case, whitespace, symbol decoding - input = "Attack at dawn"; - keyword = "lemon"; - correctOutput = "lxfopvefrnhr"; - output = cipher.encode(keyword, input); - assertEquals("Vigenere failed mixed case, whitespace, symbol decoding.", correctOutput, output); - //Test mixed case, whitespace, symbol decoding test 2 - input = "'Crypto' is short for 'Cryptography'"; - keyword = " a@b C=d"; - correctOutput = "csastpkvsiqutgqucsastpiuaqjb"; - output = cipher.encode(keyword, input); - assertEquals("Vigenere failed mixed case, whitespace, symbol encoding with mangled keyword.", correctOutput, output); - } - - - @Test - public void testKeyword() throws Exception{ - Vigenere cipher = new Vigenere(); - - //Test keyword with whitespace - String keyword = "x y z "; - String correctOutput = "XYZ"; - cipher.setKeyword(keyword); - String output = cipher.getKeyword(); - assertEquals("Vigenere failed keyword with whitespace", correctOutput, output); - - - //Test keyword with symbol - keyword = "x-y@z0"; - correctOutput = "XYZ"; - cipher.setKeyword(keyword); - output = cipher.getKeyword(); - assertEquals("Vigenere failed keyword with symbol", correctOutput, output); - - - //Test keyword with mixed case - keyword = "xYz"; - correctOutput = "XYZ"; - cipher.setKeyword(keyword); - output = cipher.getKeyword(); - assertEquals("Vigenere failed keyword with mixed case", correctOutput, output); - - //Test keyword with whitespace, symbol and keyword - keyword = "x Y%z "; - correctOutput = "XYZ"; - cipher.setKeyword(keyword); - output = cipher.getKeyword(); - assertEquals("Vigenere failed keyword with space, symbol, and mixed case", correctOutput, output); - } -} +//CipherStreamJava/src/main/java/com/mattrixwv/CipherStreamJava/TestVigenere.java +//Matthew Ellison +// Created: 07-25-21 +//Modified: 01-04-22 +package com.mattrixwv.CipherStreamJava; + + +import static org.junit.Assert.assertEquals; + +import org.junit.Test; + + +public class TestVigenere{ + @Test + public void testDecode() throws Exception{ + Vigenere cipher = new Vigenere(true, true, true); + + //Test lowercase decoding + String input = "xzb"; + String keyword = "xyz"; + String correctOutput = "abc"; + String output = cipher.decode(keyword, input); + assertEquals("Vigenere failed lowercase decoding.", correctOutput, output); + //Test uppercase decoding + input = "XZB"; + keyword = "XYZ"; + correctOutput = "ABC"; + output = cipher.decode(keyword, input); + assertEquals("Vigenere failed uppercase decoding.", correctOutput, output); + + + //Test whitespace decoding + input = "x z b"; + keyword = "xyz"; + correctOutput = "a b c"; + output = cipher.decode(keyword, input); + assertEquals("Vigenere failed whitespace decoding.", correctOutput, output); + + + //Test symbol decoding + input = "x@z^b"; + keyword = "xyz"; + correctOutput = "a@b^c"; + output = cipher.decode(keyword, input); + assertEquals("Vigenere failed symbol decoding.", correctOutput, output); + + + //Test mixed case, whitespace, symbol decoding + input = "Lxfopv ef - rnhr"; + keyword = "lemon"; + correctOutput = "Attack at - dawn"; + output = cipher.decode(keyword, input); + assertEquals("Vigenere failed mixed case, whitespace, symbol decoding.", correctOutput, output); + //Test mixed case, whitespace, symbol decoding with mangled keyword + input = "'Csastp' kv siqut gqu 'Csastpiuaqjb'"; + keyword = " a@b C=d"; + correctOutput = "'Crypto' is short for 'Cryptography'"; + output = cipher.decode(keyword, input); + assertEquals("Vigenere failed mixed case, whitespace, symbol decoding with mangled keyword.", correctOutput, output); + } + @Test + public void testNoWhitespaceDecode() throws Exception{ + Vigenere cipher = new Vigenere(true, false, true); + + //Test lowercase decoding + String input = "xzb"; + String keyword = "xyz"; + String correctOutput = "abc"; + String output = cipher.decode(keyword, input); + assertEquals("Vigenere failed lowercase decoding.", correctOutput, output); + //Test uppercase decoding + input = "XZB"; + keyword = "XYZ"; + correctOutput = "ABC"; + output = cipher.decode(keyword, input); + assertEquals("Vigenere failed uppercase decoding.", correctOutput, output); + + + //Test whitespace decoding + input = "x z b"; + keyword = "xyz"; + correctOutput = "abc"; + output = cipher.decode(keyword, input); + assertEquals("Vigenere failed whitespace decoding.", correctOutput, output); + + + //Test symbol decoding + input = "x@z^b"; + keyword = "xyz"; + correctOutput = "a@b^c"; + output = cipher.decode(keyword, input); + assertEquals("Vigenere failed symbol decoding.", correctOutput, output); + + + //Test mixed case, whitespace, symbol decoding + input = "Lxfopv ef - rnhr"; + keyword = "lemon"; + correctOutput = "Attackat-dawn"; + output = cipher.decode(keyword, input); + assertEquals("Vigenere failed mixed case, whitespace, symbol decoding.", correctOutput, output); + //Test mixed case, whitespace, symbol decoding with mangled keyword + input = "'Csastp' kv siqut gqu 'Csastpiuaqjb'"; + keyword = " a@b C=d"; + correctOutput = "'Crypto'isshortfor'Cryptography'"; + output = cipher.decode(keyword, input); + assertEquals("Vigenere failed mixed case, whitespace, symbol decoding with mangled keyword.", correctOutput, output); + } + @Test + public void testNoCapitalDecode() throws Exception{ + Vigenere cipher = new Vigenere(false, true, true); + + //Test lowercase decoding + String input = "xzb"; + String keyword = "xyz"; + String correctOutput = "abc"; + String output = cipher.decode(keyword, input); + assertEquals("Vigenere failed lowercase decoding.", correctOutput, output); + //Test uppercase decoding + input = "XZB"; + keyword = "XYZ"; + correctOutput = "abc"; + output = cipher.decode(keyword, input); + assertEquals("Vigenere failed uppercase decoding.", correctOutput, output); + + + //Test whitespace decoding + input = "x z b"; + keyword = "xyz"; + correctOutput = "a b c"; + output = cipher.decode(keyword, input); + assertEquals("Vigenere failed whitespace decoding.", correctOutput, output); + + + //Test symbol decoding + input = "x@z^b"; + keyword = "xyz"; + correctOutput = "a@b^c"; + output = cipher.decode(keyword, input); + assertEquals("Vigenere failed symbol decoding.", correctOutput, output); + + + //Test mixed case, whitespace, symbol decoding + input = "Lxfopv ef - rnhr"; + keyword = "lemon"; + correctOutput = "attack at - dawn"; + output = cipher.decode(keyword, input); + assertEquals("Vigenere failed mixed case, whitespace, symbol decoding.", correctOutput, output); + //Test mixed case, whitespace, symbol decoding with mangled keyword + input = "'Csastp' kv siqut gqu 'Csastpiuaqjb'"; + keyword = " a@b C=d"; + correctOutput = "'crypto' is short for 'cryptography'"; + output = cipher.decode(keyword, input); + assertEquals("Vigenere failed mixed case, whitespace, symbol decoding with mangled keyword.", correctOutput, output); + } + @Test + public void testNoSymbolDecode() throws Exception{ + Vigenere cipher = new Vigenere(true, true, false); + + //Test lowercase decoding + String input = "xzb"; + String keyword = "xyz"; + String correctOutput = "abc"; + String output = cipher.decode(keyword, input); + assertEquals("Vigenere failed lowercase decoding.", correctOutput, output); + //Test uppercase decoding + input = "XZB"; + keyword = "XYZ"; + correctOutput = "ABC"; + output = cipher.decode(keyword, input); + assertEquals("Vigenere failed uppercase decoding.", correctOutput, output); + + + //Test whitespace decoding + input = "x z b"; + keyword = "xyz"; + correctOutput = "a b c"; + output = cipher.decode(keyword, input); + assertEquals("Vigenere failed whitespace decoding.", correctOutput, output); + + + //Test symbol decoding + input = "x@z^b"; + keyword = "xyz"; + correctOutput = "abc"; + output = cipher.decode(keyword, input); + assertEquals("Vigenere failed symbol decoding.", correctOutput, output); + + + //Test mixed case, whitespace, symbol decoding + input = "Lxfopv ef - rnhr"; + keyword = "lemon"; + correctOutput = "Attack at dawn"; + output = cipher.decode(keyword, input); + assertEquals("Vigenere failed mixed case, whitespace, symbol decoding.", correctOutput, output); + //Test mixed case, whitespace, symbol decoding with mangled keyword + input = "'Csastp' kv siqut gqu 'Csastpiuaqjb'"; + keyword = " a@b C=d"; + correctOutput = "Crypto is short for Cryptography"; + output = cipher.decode(keyword, input); + assertEquals("Vigenere failed mixed case, whitespace, symbol decoding with mangled keyword.", correctOutput, output); + } + @Test + public void testNoCapitalWhitespaceSymbolDecode() throws Exception{ + Vigenere cipher = new Vigenere(false, false, false); + + //Test lowercase decoding + String input = "xzb"; + String keyword = "xyz"; + String correctOutput = "abc"; + String output = cipher.decode(keyword, input); + assertEquals("Vigenere failed lowercase decoding.", correctOutput, output); + //Test uppercase decoding + input = "XZB"; + keyword = "XYZ"; + correctOutput = "abc"; + output = cipher.decode(keyword, input); + assertEquals("Vigenere failed uppercase decoding.", correctOutput, output); + + + //Test whitespace decoding + input = "x z b"; + keyword = "xyz"; + correctOutput = "abc"; + output = cipher.decode(keyword, input); + assertEquals("Vigenere failed whitespace decoding.", correctOutput, output); + + + //Test symbol decoding + input = "x@z^b"; + keyword = "xyz"; + correctOutput = "abc"; + output = cipher.decode(keyword, input); + assertEquals("Vigenere failed symbol decoding.", correctOutput, output); + + + //Test mixed case, whitespace, symbol decoding + input = "Lxfopv ef rnhr"; + keyword = "lemon"; + correctOutput = "attackatdawn"; + output = cipher.decode(keyword, input); + assertEquals("Vigenere failed mixed case, whitespace, symbol decoding.", correctOutput, output); + //Test mixed case, whitespace, symbol decoding with mangled keyword + input = "'Csastp' kv siqut gqu 'Csastpiuaqjb'"; + keyword = " a@b C=d"; + correctOutput = "cryptoisshortforcryptography"; + output = cipher.decode(keyword, input); + assertEquals("Vigenere failed mixed case, whitespace, symbol decoding with mangled keyword.", correctOutput, output); + } + + + @Test + public void testEncode() throws Exception{ + Vigenere cipher = new Vigenere(true, true, true); + + //Test lowercase encoding + String input = "abc"; + String keyword = "xyz"; + String correctOutput = "xzb"; + String output = cipher.encode(keyword, input); + assertEquals("Vigenere failed lowercase encoding.", correctOutput, output); + //Test upercase encoding + input = "ABC"; + keyword = "xyz"; + correctOutput = "XZB"; + output = cipher.encode(keyword, input); + assertEquals("Vigenere failed uppercase encoding.", correctOutput, output); + + + //Test whitespace encoding + input = "a b c"; + keyword = "xyz"; + correctOutput = "x z b"; + output = cipher.encode(keyword, input); + assertEquals("Vigenere failed whitespace encoding.", correctOutput, output); + + + //Test symbol decoding + input = "a@b^c"; + keyword = "xyz"; + correctOutput = "x@z^b"; + output = cipher.encode(keyword, input); + assertEquals("Vigenere failed symbol encoding.", correctOutput, output); + + + //Test mixed case, whitespace, symbol decoding + input = "Attack at dawn"; + keyword = "lemon"; + correctOutput = "Lxfopv ef rnhr"; + output = cipher.encode(keyword, input); + assertEquals("Vigenere failed mixed case, whitespace, symbol decoding.", correctOutput, output); + //Test mixed case, whitespace, symbol decoding test 2 + input = "'Crypto' is short for 'Cryptography'"; + keyword = " a@b C=d"; + correctOutput = "'Csastp' kv siqut gqu 'Csastpiuaqjb'"; + output = cipher.encode(keyword, input); + assertEquals("Vigenere failed mixed case, whitespace, symbol encoding with mangled keyword.", correctOutput, output); + } + @Test + public void testNoWhitespaceEncode() throws Exception{ + Vigenere cipher = new Vigenere(true, false, true); + + //Test lowercase encoding + String input = "abc"; + String keyword = "xyz"; + String correctOutput = "xzb"; + String output = cipher.encode(keyword, input); + assertEquals("Vigenere failed lowercase encoding.", correctOutput, output); + //Test upercase encoding + input = "ABC"; + keyword = "xyz"; + correctOutput = "XZB"; + output = cipher.encode(keyword, input); + assertEquals("Vigenere failed uppercase encoding.", correctOutput, output); + + + //Test whitespace encoding + input = "a b c"; + keyword = "xyz"; + correctOutput = "xzb"; + output = cipher.encode(keyword, input); + assertEquals("Vigenere failed whitespace encoding.", correctOutput, output); + + + //Test symbol decoding + input = "a@b^c"; + keyword = "xyz"; + correctOutput = "x@z^b"; + output = cipher.encode(keyword, input); + assertEquals("Vigenere failed symbol encoding.", correctOutput, output); + + + //Test mixed case, whitespace, symbol decoding + input = "Attack at dawn"; + keyword = "lemon"; + correctOutput = "Lxfopvefrnhr"; + output = cipher.encode(keyword, input); + assertEquals("Vigenere failed mixed case, whitespace, symbol decoding.", correctOutput, output); + //Test mixed case, whitespace, symbol decoding test 2 + input = "'Crypto' is short for 'Cryptography'"; + keyword = " a@b C=d"; + correctOutput = "'Csastp'kvsiqutgqu'Csastpiuaqjb'"; + output = cipher.encode(keyword, input); + assertEquals("Vigenere failed mixed case, whitespace, symbol encoding with mangled keyword.", correctOutput, output); + } + @Test + public void testNoCapitalEncode() throws Exception{ + Vigenere cipher = new Vigenere(false, true, true); + + //Test lowercase encoding + String input = "abc"; + String keyword = "xyz"; + String correctOutput = "xzb"; + String output = cipher.encode(keyword, input); + assertEquals("Vigenere failed lowercase encoding.", correctOutput, output); + //Test upercase encoding + input = "ABC"; + keyword = "xyz"; + correctOutput = "xzb"; + output = cipher.encode(keyword, input); + assertEquals("Vigenere failed uppercase encoding.", correctOutput, output); + + + //Test whitespace encoding + input = "a b c"; + keyword = "xyz"; + correctOutput = "x z b"; + output = cipher.encode(keyword, input); + assertEquals("Vigenere failed whitespace encoding.", correctOutput, output); + + + //Test symbol decoding + input = "a@b^c"; + keyword = "xyz"; + correctOutput = "x@z^b"; + output = cipher.encode(keyword, input); + assertEquals("Vigenere failed symbol encoding.", correctOutput, output); + + + //Test mixed case, whitespace, symbol decoding + input = "Attack at dawn"; + keyword = "lemon"; + correctOutput = "lxfopv ef rnhr"; + output = cipher.encode(keyword, input); + assertEquals("Vigenere failed mixed case, whitespace, symbol decoding.", correctOutput, output); + //Test mixed case, whitespace, symbol decoding test 2 + input = "'Crypto' is short for 'Cryptography'"; + keyword = " a@b C=d"; + correctOutput = "'csastp' kv siqut gqu 'csastpiuaqjb'"; + output = cipher.encode(keyword, input); + assertEquals("Vigenere failed mixed case, whitespace, symbol encoding with mangled keyword.", correctOutput, output); + } + @Test + public void testNoSymbolEncode() throws Exception{ + Vigenere cipher = new Vigenere(true, true, false); + + //Test lowercase encoding + String input = "abc"; + String keyword = "xyz"; + String correctOutput = "xzb"; + String output = cipher.encode(keyword, input); + assertEquals("Vigenere failed lowercase encoding.", correctOutput, output); + //Test upercase encoding + input = "ABC"; + keyword = "xyz"; + correctOutput = "XZB"; + output = cipher.encode(keyword, input); + assertEquals("Vigenere failed uppercase encoding.", correctOutput, output); + + + //Test whitespace encoding + input = "a b c"; + keyword = "xyz"; + correctOutput = "x z b"; + output = cipher.encode(keyword, input); + assertEquals("Vigenere failed whitespace encoding.", correctOutput, output); + + + //Test symbol decoding + input = "a@b^c"; + keyword = "xyz"; + correctOutput = "xzb"; + output = cipher.encode(keyword, input); + assertEquals("Vigenere failed symbol encoding.", correctOutput, output); + + + //Test mixed case, whitespace, symbol decoding + input = "Attack at dawn"; + keyword = "lemon"; + correctOutput = "Lxfopv ef rnhr"; + output = cipher.encode(keyword, input); + assertEquals("Vigenere failed mixed case, whitespace, symbol decoding.", correctOutput, output); + //Test mixed case, whitespace, symbol decoding test 2 + input = "'Crypto' is short for 'Cryptography'"; + keyword = " a@b C=d"; + correctOutput = "Csastp kv siqut gqu Csastpiuaqjb"; + output = cipher.encode(keyword, input); + assertEquals("Vigenere failed mixed case, whitespace, symbol encoding with mangled keyword.", correctOutput, output); + } + @Test + public void testNoCapitalWhitespaceSymbolEncode() throws Exception{ + Vigenere cipher = new Vigenere(false, false, false); + + //Test lowercase encoding + String input = "abc"; + String keyword = "xyz"; + String correctOutput = "xzb"; + String output = cipher.encode(keyword, input); + assertEquals("Vigenere failed lowercase encoding.", correctOutput, output); + //Test upercase encoding + input = "ABC"; + keyword = "xyz"; + correctOutput = "xzb"; + output = cipher.encode(keyword, input); + assertEquals("Vigenere failed uppercase encoding.", correctOutput, output); + + + //Test whitespace encoding + input = "a b c"; + keyword = "xyz"; + correctOutput = "xzb"; + output = cipher.encode(keyword, input); + assertEquals("Vigenere failed whitespace encoding.", correctOutput, output); + + + //Test symbol decoding + input = "a@b^c"; + keyword = "xyz"; + correctOutput = "xzb"; + output = cipher.encode(keyword, input); + assertEquals("Vigenere failed symbol encoding.", correctOutput, output); + + + //Test mixed case, whitespace, symbol decoding + input = "Attack at dawn"; + keyword = "lemon"; + correctOutput = "lxfopvefrnhr"; + output = cipher.encode(keyword, input); + assertEquals("Vigenere failed mixed case, whitespace, symbol decoding.", correctOutput, output); + //Test mixed case, whitespace, symbol decoding test 2 + input = "'Crypto' is short for 'Cryptography'"; + keyword = " a@b C=d"; + correctOutput = "csastpkvsiqutgqucsastpiuaqjb"; + output = cipher.encode(keyword, input); + assertEquals("Vigenere failed mixed case, whitespace, symbol encoding with mangled keyword.", correctOutput, output); + } + + + @Test + public void testKeyword() throws Exception{ + Vigenere cipher = new Vigenere(); + + //Test keyword with whitespace + String keyword = "x y z "; + String correctOutput = "XYZ"; + cipher.setKeyword(keyword); + String output = cipher.getKeyword(); + assertEquals("Vigenere failed keyword with whitespace", correctOutput, output); + + + //Test keyword with symbol + keyword = "x-y@z0"; + correctOutput = "XYZ"; + cipher.setKeyword(keyword); + output = cipher.getKeyword(); + assertEquals("Vigenere failed keyword with symbol", correctOutput, output); + + + //Test keyword with mixed case + keyword = "xYz"; + correctOutput = "XYZ"; + cipher.setKeyword(keyword); + output = cipher.getKeyword(); + assertEquals("Vigenere failed keyword with mixed case", correctOutput, output); + + //Test keyword with whitespace, symbol and keyword + keyword = "x Y%z "; + correctOutput = "XYZ"; + cipher.setKeyword(keyword); + output = cipher.getKeyword(); + assertEquals("Vigenere failed keyword with space, symbol, and mixed case", correctOutput, output); + } +}