From 6ba949a34c367cf2e9bfe737b628270da76ea42b Mon Sep 17 00:00:00 2001 From: rberman Date: Thu, 27 Feb 2014 11:09:24 -0600 Subject: [PATCH] Piratizer string converter --- .../comp124/stringtransformer/Piratizer.java | 50 +++++++++++++++++++ .../stringtransformer/PiratizerTest.java | 23 +++++++++ 2 files changed, 73 insertions(+) create mode 100644 src/edu/macalester/comp124/stringtransformer/Piratizer.java create mode 100644 test/edu/macalester/comp124/stringtransformer/PiratizerTest.java diff --git a/src/edu/macalester/comp124/stringtransformer/Piratizer.java b/src/edu/macalester/comp124/stringtransformer/Piratizer.java new file mode 100644 index 0000000..e86ab52 --- /dev/null +++ b/src/edu/macalester/comp124/stringtransformer/Piratizer.java @@ -0,0 +1,50 @@ +package edu.macalester.comp124.stringtransformer; + +import acm.util.RandomGenerator; + +import java.util.Random; + +/** + * Created by rberman on 2/27/14. + * + * + */ +public class Piratizer extends StringTransformer { + @Override + public String transform(String s) { + String finalS = ""; + for (int i = 0; i < s.length(); i++) { + if (s.charAt(i) == 'r') { + finalS += "rr"; + } + finalS += s.charAt(i); + if (s.charAt(i) == '.') { + int rand = randomArr(); + if (rand == 1) { + finalS += "Arrrrr!"; + } + if (rand == 2) { + finalS += "Ahoy!"; + } + } + } + return finalS; + } + + @Override + public String toString() { + return "Piratizer"; + } + + public int randomArr(){ + Random generator = new Random(); + int a = generator.nextInt(8); + return a; + } + +} + + +/* +All rs are changed to rrrs. 25% of sentences end with a random choice between Arrrrr! and Ahoy!. + */ \ No newline at end of file diff --git a/test/edu/macalester/comp124/stringtransformer/PiratizerTest.java b/test/edu/macalester/comp124/stringtransformer/PiratizerTest.java new file mode 100644 index 0000000..9e7fb9d --- /dev/null +++ b/test/edu/macalester/comp124/stringtransformer/PiratizerTest.java @@ -0,0 +1,23 @@ +package edu.macalester.comp124.stringtransformer; + +import org.junit.Test; +import static junit.framework.Assert.assertEquals; + +/** + * Created by rberman on 2/27/14. + */ +public class PiratizerTest { + private final StringTransformer piratizer = new Piratizer(); + + @Test + public void handlesEmptyString() { + assertEquals("", piratizer.transform("")); + } + + @Test + public void noSingleR() { + assertEquals("rrr", piratizer.transform("r")); + assertEquals("rrrobot", piratizer.transform("robot")); + } + +}