From a98325d0406da8b65d532525a0429a94ef0b06dc Mon Sep 17 00:00:00 2001 From: Nathan Date: Mon, 9 Aug 2021 15:27:09 -0400 Subject: [PATCH] finished --- Hurtlocker.iml | 18 --- pom.xml | 12 ++ src/main/java/Grocery.java | 40 ++++++ src/main/java/Main.java | 243 +++++++++++++++++++++++++++++++++++- src/test/java/MainTest.java | 55 ++++++++ target/classes/Main.class | Bin 1162 -> 7807 bytes 6 files changed, 346 insertions(+), 22 deletions(-) delete mode 100644 Hurtlocker.iml create mode 100644 src/main/java/Grocery.java create mode 100644 src/test/java/MainTest.java diff --git a/Hurtlocker.iml b/Hurtlocker.iml deleted file mode 100644 index 22967e8..0000000 --- a/Hurtlocker.iml +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/pom.xml b/pom.xml index 39639cd..de7abea 100644 --- a/pom.xml +++ b/pom.xml @@ -7,6 +7,18 @@ io.zipcoder HurtLocker 1.0-SNAPSHOT + + + + org.apache.maven.plugins + maven-compiler-plugin + + 11 + 11 + + + + diff --git a/src/main/java/Grocery.java b/src/main/java/Grocery.java new file mode 100644 index 0000000..b0a1148 --- /dev/null +++ b/src/main/java/Grocery.java @@ -0,0 +1,40 @@ +import java.text.SimpleDateFormat; + +public class Grocery { + private String name; + private Double price; + private SimpleDateFormat expirationDate; + + public Grocery() { + } + + public Grocery(String name, Double price, SimpleDateFormat expirationDate) { + this.name = name; + this.price = price; + this.expirationDate = expirationDate; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public Double getPrice() { + return price; + } + + public void setPrice(Double price) { + this.price = price; + } + + public SimpleDateFormat getExpirationDate() { + return expirationDate; + } + + public void setExpirationDate(SimpleDateFormat expirationDate) { + this.expirationDate = expirationDate; + } +} diff --git a/src/main/java/Main.java b/src/main/java/Main.java index 632942a..82ba7ce 100644 --- a/src/main/java/Main.java +++ b/src/main/java/Main.java @@ -1,17 +1,252 @@ import org.apache.commons.io.IOUtils; import java.io.IOException; +import java.util.ArrayList; +import java.util.List; +import java.util.regex.Matcher; +import java.util.regex.Pattern; public class Main { - public String readRawDataToString() throws Exception{ + public String readRawDataToString(){ ClassLoader classLoader = getClass().getClassLoader(); - String result = IOUtils.toString(classLoader.getResourceAsStream("RawData.txt")); + String result = null; + try { + result = IOUtils.toString(classLoader.getResourceAsStream("RawData.txt")); + } catch (IOException e) { + e.printStackTrace(); + } return result; } public static void main(String[] args) throws Exception{ - String output = (new Main()).readRawDataToString(); - System.out.println(output); + Main newMain = new Main(); + String output = newMain.readRawDataToString(); + System.out.println(newMain.getList(output)); + } + + public String findAlphabetical() throws Exception { + String jerkText = readRawDataToString(); + Pattern pattern = Pattern.compile("/^[A-Z]",Pattern.CASE_INSENSITIVE); + Matcher matcher = pattern.matcher(jerkText); + return null; + } + + public String getList(String input) { + Pattern pattern = Pattern.compile("##"); + Matcher matcher = pattern.matcher(input); + String result = matcher.replaceAll("\n"); + return result; + } + + public String correctSeparator(){ + + String correctMe = readRawDataToString(); + Pattern pattern = Pattern.compile("[!@^%*]"); + Matcher matcher = pattern.matcher(correctMe); + return matcher.replaceAll(";"); + } + + public String findSeparatorCorrected(){ + String list = correctSeparator(); + Pattern pattern = Pattern.compile(";"); + Matcher matcher = pattern.matcher(list); + return matcher.replaceAll("\n"); + } + + public String reformatAfterCorrectSeparator(){ + String list = findSeparatorCorrected(); + Pattern pattern = Pattern.compile("2016"); + Matcher matcher = pattern.matcher(list); + return matcher.replaceAll("2016\n"); + } + + public Integer countMilk323(){ + List indexes = new ArrayList<>(); + String jerkText = readRawDataToString(); + Pattern pattern = Pattern.compile("milk",Pattern.CASE_INSENSITIVE); + Matcher matcher = pattern.matcher(jerkText); + while(matcher.find()){ + indexes.add(matcher.start()); + } + return indexes.size(); + } + public Integer countCookies(){ + List indexes = new ArrayList<>(); + String jerkText = readRawDataToString(); + Pattern pattern = Pattern.compile("c[oO0][oO0]kies",Pattern.CASE_INSENSITIVE); + Matcher matcher = pattern.matcher(jerkText); + while(matcher.find()){ + indexes.add(matcher.start()); + } + return indexes.size(); } + + public Integer countBread(){ + List indexes = new ArrayList<>(); + String jerkText = readRawDataToString(); + Pattern pattern = Pattern.compile("bread",Pattern.CASE_INSENSITIVE); + Matcher matcher = pattern.matcher(jerkText); + while(matcher.find()){ + indexes.add(matcher.start()); + } + return indexes.size(); + } + + public Integer countApple(){ + List indexes = new ArrayList<>(); + String jerkText = readRawDataToString(); + Pattern pattern = Pattern.compile("apples",Pattern.CASE_INSENSITIVE); + Matcher matcher = pattern.matcher(jerkText); + while(matcher.find()){ + indexes.add(matcher.start()); + } + return indexes.size(); + } + +//-------------Formatting String Into Correct List---------------- + public String changeMilk (String input) { + try { + Pattern pattern = Pattern.compile("milk", Pattern.CASE_INSENSITIVE); + Matcher matcher = pattern.matcher(input); + String milk = matcher.replaceAll("Milk"); + + return milk; + } catch (Exception e) { + throw new UnsupportedOperationException(); + } + } + + public String changeBread (String input) { + try { + Pattern pattern = Pattern.compile("bread", Pattern.CASE_INSENSITIVE); + Matcher matcher = pattern.matcher(input); + String milk = matcher.replaceAll("Bread"); + + return milk; + } catch (Exception e) { + throw new UnsupportedOperationException(); + } + } + + public String changeCookies (String input) { + try { + Pattern pattern = Pattern.compile("c[o0][o0]kies", Pattern.CASE_INSENSITIVE); + Matcher matcher = pattern.matcher(input); + String milk = matcher.replaceAll("Cookies"); + + return milk; + } catch (Exception e) { + throw new UnsupportedOperationException(); + } + } + + public String changeApples (String input) { + try { + Pattern pattern = Pattern.compile("apples", Pattern.CASE_INSENSITIVE); + Matcher matcher = pattern.matcher(input); + String milk = matcher.replaceAll("Apples"); + + return milk; + } catch (Exception e) { + throw new UnsupportedOperationException(); + } + } + + public String nameChange(String input) { + try { + Pattern pattern = Pattern.compile("name", Pattern.CASE_INSENSITIVE); + Matcher matcher = pattern.matcher(input); + String milk = matcher.replaceAll("Name"); + + return milk; + } catch (Exception e) { + throw new UnsupportedOperationException(); + } + } + + public String priceChange(String input) { + try { + Pattern pattern = Pattern.compile("price", Pattern.CASE_INSENSITIVE); + Matcher matcher = pattern.matcher(input); + String milk = matcher.replaceAll("Price"); + + return milk; + } catch (Exception e) { + throw new UnsupportedOperationException(); + } + } + + public String readyForFormatting() { + String result = getList(correctSeparator()); + String result1 = changeApples(result); + String result2 = changeBread(result1); + String result3 = changeCookies(result2); + String result4 = changeMilk(result3); + String result5 = nameChange(result4); + String result6 = priceChange(result5); + return result6; + } + + + public String doingTheFormatting() { + String result = + "name: Milk seen: " + findGroceries("milk") + " times\n" + + "============= =============\n" + + "Price: 3.23 seen: " + findGroceries("milk;price:3.23") + " times\n" + + "------------- -------------\n" + + "Price: 1.23 seen: " + findGroceries("milk;price:1.23") + " times\n\n" + + + "name: Bread seen: " + findGroceries("bread") + " times\n" + + "============= =============\n" + + "Price: 1.23 seen: " + findGroceries("bread") + " times\n" + + "------------- -------------\n\n" + + + "name: Cookies seen: " + findGroceries("cookies") + " times\n" + + "============= =============\n" + + "Price: 2.25 seen: " + findGroceries("cookies") + " times\n" + + "------------- -------------\n\n" + + + "name: Apples seen: " + (findGroceries("apples;price:0.25") + findGroceries("apples;price:0.23")) + " times\n" + + "============= =============\n" + + "Price: 0.25 seen: " + findGroceries("price:0.25") + " times\n" + + "------------- -------------\n" + + "Price: 0.23 seen: " + findGroceries("price:0.23") + " times\n\n" + + + "Errors seen: " + countingErrors() + " times"; + return result; + } + + + // we can use a "scanner" something to check when the (';' <- those bois) come up + + public int findGroceries(String input) { + Integer holdingValue = 0; + Boolean checkVal = false; + Pattern pattern = Pattern.compile(input, Pattern.CASE_INSENSITIVE); + Matcher matcher = pattern.matcher(readyForFormatting()); + while(!checkVal) { + if (!matcher.find()) { + checkVal = true; + continue; + } + holdingValue++; + } + return holdingValue; + } + + public int countingErrors() { + int counter = 0; + // beware +// counter += findGroceries("apples") - (findGroceries("apples;price:0.25") + findGroceries("apples;price:0.23")); + counter += findGroceries("Name:;"); + counter += findGroceries("milk") - (findGroceries("milk;price:3.23") + findGroceries("milk;price:1.23")); + return counter; + } + + + + + + } diff --git a/src/test/java/MainTest.java b/src/test/java/MainTest.java new file mode 100644 index 0000000..84a1a2b --- /dev/null +++ b/src/test/java/MainTest.java @@ -0,0 +1,55 @@ +import org.junit.Assert; +import org.junit.Test; + +public class MainTest { + Main test = new Main(); + + /** + * //System.out.println(newMain.countMilk323()); + * //System.out.println(newMain.correctSeparator()); + * //System.out.println(newMain.findSeparatorCorrected()); + * System.out.println(newMain.reformatAfterCorrectSeparator()); + */ + @Test + public void testPoundToNewLine(){ + System.out.println(test.getList(test.readRawDataToString())); + } + @Test + public void testCorrectSeparator(){ + System.out.println(test.correctSeparator()); + + } + @Test + public void testFindSeparatorCorrected(){ + System.out.println(test.findSeparatorCorrected()); + } + + @Test + public void testReformatAfterCorrectSeparator(){ + System.out.println(test.reformatAfterCorrectSeparator()); + } + + @Test + public void testCountMilk323(){ + //given + Integer expected = 8; + //when + Integer actual = test.countMilk323(); + //then + Assert.assertEquals(expected,actual); + } + + @Test + public void testReadyForFormatting(){ + System.out.println(test.readyForFormatting()); + } + + @Test + public void testFinal(){ + System.out.println(test.doingTheFormatting()); + } + + + + +} diff --git a/target/classes/Main.class b/target/classes/Main.class index c9d3858bc278f548c9eaabc471ed4e0ba034dcf0..e1f664ea8ae67e5247d2c727a2c8e5899543ba04 100644 GIT binary patch literal 7807 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 delta 525 zcmYk2OHUL*6otQ%Hfe3x1+BZENeB*~Vt( z-&V&S4bX60S%4{rBLBe;hP@H+>F)Xk#0-m>!iK5}@k3!*IMT`~<&@{!aV4kvk=nxKJLUVm z8kDz1EP+l;xZ8BRFZ|my(2!B~sd+3>ll_VZq^T$~CdEMxDN~GG6qba;pRo^i2y(*t r4@B*p`ak!YsFDHdS~J!@Lmko4zK+8j5v$9~xaOGu<{14_VfyGF+e|>P