From 4a97d0bfb4703f8acf3212113bd82aa09fe5ead4 Mon Sep 17 00:00:00 2001 From: Anthony Jordan Date: Fri, 13 Apr 2018 11:39:44 -0400 Subject: [PATCH] Finished lab --- pom.xml | 12 ++ src/main/java/io/zipcoder/Problem6.java | 227 ++++++++++++++++++++ src/test/java/io/zipcoder/Problem6Test.java | 127 +++++++++++ 3 files changed, 366 insertions(+) diff --git a/pom.xml b/pom.xml index 5fd8efa..7584aab 100644 --- a/pom.xml +++ b/pom.xml @@ -7,6 +7,18 @@ io.zipcoder InterviewProblem5 1.0-SNAPSHOT + + + + org.apache.maven.plugins + maven-compiler-plugin + + 1.7 + 1.7 + + + + diff --git a/src/main/java/io/zipcoder/Problem6.java b/src/main/java/io/zipcoder/Problem6.java index 4ee4e64..7fa02dd 100644 --- a/src/main/java/io/zipcoder/Problem6.java +++ b/src/main/java/io/zipcoder/Problem6.java @@ -1,4 +1,231 @@ package io.zipcoder; public class Problem6 { + + public String timeConverter(String timeToConvert){ + boolean isAm = amChecker(timeToConvert); + String[] timeArray = timeSplitter(timeToConvert); + int[] timeAsIntArray = intParser(timeArray); + timeAsIntArray = add12IfPM(timeAsIntArray,isAm); + StringBuilder returnString = new StringBuilder(); + returnString.append(hourChecker(timeAsIntArray)); + returnString.append(minuteChecker(timeArray)); + return returnString.toString(); + } + + public boolean amChecker(String timeToCheck){ + if (timeToCheck.contains("am") && !(timeToCheck.substring(0,2).equals("12"))){ + return true; + } else if (timeToCheck.contains("pm") && timeToCheck.substring(0,2).equals("12")) { + return true; + } else { + return false; + } + } + + public String[] timeSplitter(String timeToSplit){ + String removeEnding = timeToSplit.substring(0, timeToSplit.length()-2); + return removeEnding.split(":"); + } + + public int[] intParser(String[] arrayToParse){ + int[] intArray = new int[2]; + intArray[0] = Integer.parseInt(arrayToParse[0]); + intArray[1] = Integer.parseInt(arrayToParse[1]); + return intArray; + } + + public int[] add12IfPM(int[] timeArray, boolean isAm){ + if (!isAm){ + timeArray[0] += 12; + return timeArray; + } else { + return timeArray; + } + } + + public String hourChecker(int[] timeArray){ + String stringToReturn = ""; + switch (timeArray[0]){ + case 1: + stringToReturn = "Zero One Hundred"; + break; + case 2: + stringToReturn = "Zero Two Hundred"; + break; + case 3: + stringToReturn = "Zero Three Hundred"; + break; + case 4: + stringToReturn = "Zero Four Hundred"; + break; + case 5: + stringToReturn = "Zero Five Hundred"; + break; + case 6: + stringToReturn = "Zero Six Hundred"; + break; + case 7: + stringToReturn = "Zero Seven Hundred"; + break; + case 8: + stringToReturn = "Zero Eight Hundred"; + break; + case 9: + stringToReturn = "Zero Nine Hundred"; + break; + case 10: + stringToReturn = "Ten Hundred"; + break; + case 11: + stringToReturn = "Eleven Hundred"; + break; + case 12: + stringToReturn = "Twelve Hundred"; + break; + case 13: + stringToReturn = "Thirteen Hundred"; + break; + case 14: + stringToReturn = "Fourteen Hundred"; + break; + case 15: + stringToReturn = "Fifteen Hundred"; + break; + case 16: + stringToReturn = "Sixteen Hundred"; + break; + case 17: + stringToReturn = "Seventeen Hundred"; + break; + case 18: + stringToReturn = "Eighteen Hundred"; + break; + case 19: + stringToReturn = "Nineteen Hundred"; + break; + case 20: + stringToReturn = "Twenty Hundred"; + break; + case 21: + stringToReturn = "Twenty-One Hundred"; + break; + case 22: + stringToReturn = "Twenty-Two Hundred"; + break; + case 23: + stringToReturn = "Twenty-Three Hundred"; + break; + case 24: + stringToReturn = "Zero Hundred"; + break; + } + return stringToReturn; + } + + public String minuteChecker(String[] timeArray){ + String tens = timeArray[1].substring(0,1); + String ones = timeArray[1].substring(1); + String stringToReturn = ""; + if (timeArray[1].equals("00")){ + return stringToReturn + " Hours"; + } else if (tens.equals("0")){ + stringToReturn = " And " + onesChecker(ones) + " Hours"; + } else if (tens.equals("1")){ + stringToReturn = " And " + teensChecker(timeArray[1]) + " Hours"; + } else { + stringToReturn = " And " + tensChecker(tens) + " " + onesChecker(ones) + " Hours"; + } + return stringToReturn; + } + + public String onesChecker(String ones){ + String stringToReturn = ""; + switch (ones){ + case "1": + stringToReturn = "One"; + break; + case "2": + stringToReturn = "Two"; + break; + case "3": + stringToReturn = "Three"; + break; + case "4": + stringToReturn = "Four"; + break; + case "5": + stringToReturn = "Five"; + break; + case "6": + stringToReturn = "Six"; + break; + case "7": + stringToReturn = "Seven"; + break; + case"8": + stringToReturn = "Eight"; + break; + case "9": + stringToReturn = "Nine"; + break; + } + return stringToReturn; + } + + public String tensChecker(String tens){ + String stringToReturn = ""; + switch (tens){ + case "2": + stringToReturn = "Twenty"; + break; + case "3": + stringToReturn = "Thirty"; + break; + case "4": + stringToReturn = "Forty"; + break; + case "5": + stringToReturn = "Fifty"; + break; + } + return stringToReturn; + } + + public String teensChecker(String teen){ + String stringToReturn = ""; + switch (teen){ + case "10": + stringToReturn = "Ten"; + break; + case "11": + stringToReturn = "Eleven"; + break; + case "12": + stringToReturn = "Twelve"; + break; + case "13": + stringToReturn = "Thirteen"; + break; + case "14": + stringToReturn = "Fourteen"; + break; + case "15": + stringToReturn = "Fifteen"; + break; + case "16": + stringToReturn = "Sixteen"; + break; + case "17": + stringToReturn = "Seventeen"; + break; + case "18": + stringToReturn = "Eighteen"; + break; + case "19": + stringToReturn = "Nineteen"; + break; + } + return stringToReturn; + } } diff --git a/src/test/java/io/zipcoder/Problem6Test.java b/src/test/java/io/zipcoder/Problem6Test.java index d262e88..59fd364 100644 --- a/src/test/java/io/zipcoder/Problem6Test.java +++ b/src/test/java/io/zipcoder/Problem6Test.java @@ -1,4 +1,131 @@ package io.zipcoder; +import org.junit.Assert; +import org.junit.Test; + public class Problem6Test { + + Problem6 timeConerter = new Problem6(); + + @Test + public void amCheckerTest1(){ + boolean actual = timeConerter.amChecker("11:00am"); + Assert.assertTrue(actual); + } + + @Test + public void amCheckerTest2(){ + boolean actual = timeConerter.amChecker("11:00pm"); + Assert.assertFalse(actual); + } + + @Test + public void timeSplitterTest(){ + String[] expected = new String[2]; + expected[0] = "11"; + expected[1] = "30"; + String[] actual = timeConerter.timeSplitter("11:30pm"); + Assert.assertEquals(expected,actual); + } + + @Test + public void intParserTest(){ + int[] expected = new int[2]; + expected[0] = 11; + expected[1] = 30; + String[] testArray = new String[2]; + testArray[0] = "11"; + testArray[1] = "30"; + int[] actual = timeConerter.intParser(testArray); + Assert.assertEquals(actual[0],expected[0]); + Assert.assertEquals(actual[1], expected[1]); + } + + @Test + public void add12IfPMTest(){ + int[] testArray = new int[2]; + testArray[0] = 11; + testArray[1] = 30; + int[] actual = timeConerter.add12IfPM(testArray, false); + Assert.assertEquals(actual[0], 23); + } + + @Test + public void hourCheckerTest(){ + int[] testArray = new int[2]; + testArray[0] = 23; + testArray[1] = 30; + String actual = timeConerter.hourChecker(testArray); + String expected = "Twenty-Three Hundred"; + Assert.assertEquals(expected, actual); + } + + @Test + public void onesCheckerTest(){ + String actual = timeConerter.onesChecker("1"); + Assert.assertEquals(actual, "One"); + } + + @Test + public void tensCheckerTest(){ + String actual = timeConerter.tensChecker("3"); + Assert.assertEquals(actual, "Thirty"); + } + + @Test + public void minuteCheckerTest1(){ + String[] testArray = new String[2]; + testArray[0] = "11"; + testArray[1] = "02"; + String actual = timeConerter.minuteChecker(testArray); + Assert.assertEquals(actual, " And Two Hours"); + } + + @Test + public void minuteCheckerTest2(){ + String[] testArray = new String[2]; + testArray[0] = "11"; + testArray[1] = "00"; + String actual = timeConerter.minuteChecker(testArray); + Assert.assertEquals(actual, " Hours"); + } + + @Test + public void minuteCheckerTest3(){ + String[] testArray = new String[2]; + testArray[0] = "11"; + testArray[1] = "13"; + String actual = timeConerter.minuteChecker(testArray); + Assert.assertEquals(actual, " And Thirteen Hours"); + } + + @Test + public void minuteCheckerTest5(){ + String[] testArray = new String[2]; + testArray[0] = "11"; + testArray[1] = "26"; + String actual = timeConerter.minuteChecker(testArray); + Assert.assertEquals(actual, " And Twenty Six Hours"); + } + + @Test + public void timeConverterTest1(){ + String actual = timeConerter.timeConverter("11:59am"); + String expected = "Eleven Hundred And Fifty Nine Hours"; + Assert.assertEquals(expected,actual); + } + + @Test + public void timeConverterTest2(){ + String actual = timeConerter.timeConverter("12:00pm"); + String expected = "Twelve Hundred Hours"; + Assert.assertEquals(expected,actual); + } + + @Test + public void timeConverterTest3(){ + String actual = timeConerter.timeConverter("12:19am"); + String expected = "Zero Hundred And Nineteen Hours"; + Assert.assertEquals(expected,actual); + } }