From b1d22f0bb6799294dabeee744cfdbef422844f98 Mon Sep 17 00:00:00 2001 From: SandyPham823 Date: Mon, 9 Dec 2019 18:29:46 -0500 Subject: [PATCH 1/6] finished calculator portion of fundamentals --- .../quiz4/fundamentals/Calculator.java | 22 +++++++++++++------ 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/src/main/java/rocks/zipcode/quiz4/fundamentals/Calculator.java b/src/main/java/rocks/zipcode/quiz4/fundamentals/Calculator.java index 02f2618..8c6d84a 100644 --- a/src/main/java/rocks/zipcode/quiz4/fundamentals/Calculator.java +++ b/src/main/java/rocks/zipcode/quiz4/fundamentals/Calculator.java @@ -5,31 +5,39 @@ */ public class Calculator { public static Double squareRoot(Double value) { - return null; + return Math.sqrt(value); } public static Double square(Double value) { - return null; + return (value * value); } public static Double[] squareRoots(Double... value) { - return null; + Double[] result = new Double[value.length]; + for (int i = 0; i < value.length; i++) + result[i] = Math.sqrt(value[i]); + + return result; } public static Double[] squares(Double... values) { - return null; + Double[] result = new Double[values.length]; + for (int i = 0; i < values.length; i++) + result[i] = (values[i] * values[i]); + + return result; } public static Double add(Double value1, Double value2) { - return null; + return (value1 + value2); } public static Double subtract(Double value1, Double value2) { - return null; + return (value1 - value2); } public static Double divide(Double divisor, Double dividend) { - return null; + return (divisor / dividend); } } From 56385a56e0ee84d560ec1f31b62016fe9d69d944 Mon Sep 17 00:00:00 2001 From: SandyPham823 Date: Mon, 9 Dec 2019 23:20:02 -0500 Subject: [PATCH 2/6] finished all of fundamentals --- .../quiz4/fundamentals/StringUtils.java | 41 +++++++++++++++---- 1 file changed, 34 insertions(+), 7 deletions(-) diff --git a/src/main/java/rocks/zipcode/quiz4/fundamentals/StringUtils.java b/src/main/java/rocks/zipcode/quiz4/fundamentals/StringUtils.java index 5ec61be..8979645 100644 --- a/src/main/java/rocks/zipcode/quiz4/fundamentals/StringUtils.java +++ b/src/main/java/rocks/zipcode/quiz4/fundamentals/StringUtils.java @@ -5,30 +5,57 @@ */ public class StringUtils { public static Character getMiddleCharacter(String string) { - return null; + return string.charAt(string.length() / 2); } public static String capitalizeMiddleCharacter(String str) { - return null; + return str.substring(0, str.length() / 2) + Character.toUpperCase(getMiddleCharacter(str)) + str.substring(str.length() / 2 + 1); } public static String lowerCaseMiddleCharacter(String str) { - return null; + return str.substring(0, str.length() / 2) + Character.toLowerCase(getMiddleCharacter(str)) + str.substring(str.length() / 2 + 1); } public static Boolean isIsogram(String str) { - return null; + for (char c : str.toCharArray()) + if (!(str.chars().filter(ch -> ch == c).count() == 1)) + return false; + + return true; } public static Boolean hasDuplicateConsecutiveCharacters(String str) { - return null; + for (int i = 0; i < str.length() - 1; i++) + if (str.charAt(i) == str.charAt(i + 1)) + return true; + + return false; } public static String removeConsecutiveDuplicateCharacters(String str) { - return null; + StringBuilder result = new StringBuilder(); + + for (int i = 0; i < str.length()-1; i++) + if (str.charAt(i)==str.charAt(i+1)) + i++; + else + result.append(str.charAt(i)); + + result.append(str.charAt(str.length()-1)); + + return result.toString(); } public static String invertCasing(String str) { - return null; + StringBuilder result = new StringBuilder(); + for (char c : str.toCharArray()) + if (Character.isLowerCase(c)) + result.append(Character.toUpperCase(c)); + else if (Character.isUpperCase(c)) + result.append(Character.toLowerCase(c)); + else + result.append(c); + + return result.toString(); } } \ No newline at end of file From 1a4334c422e53d438c30248b1d3ad78c8b1f8604 Mon Sep 17 00:00:00 2001 From: SandyPham823 Date: Mon, 9 Dec 2019 23:28:22 -0500 Subject: [PATCH 3/6] finished array utils --- .../rocks/zipcode/quiz4/arrays/ArrayUtils.java | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/src/main/java/rocks/zipcode/quiz4/arrays/ArrayUtils.java b/src/main/java/rocks/zipcode/quiz4/arrays/ArrayUtils.java index 6deaf61..34f4fc8 100644 --- a/src/main/java/rocks/zipcode/quiz4/arrays/ArrayUtils.java +++ b/src/main/java/rocks/zipcode/quiz4/arrays/ArrayUtils.java @@ -1,22 +1,29 @@ package rocks.zipcode.quiz4.arrays; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + /** * @author leon on 01/01/2019. */ public class ArrayUtils { public static String getMiddleElement(String[] values) { - return null; + return values[values.length / 2]; } public static String[] removeMiddleElement(String[] values) { - return null; + List l = new ArrayList<>(Arrays.asList(Arrays.copyOfRange(values, 0, values.length / 2))); + l.addAll(Arrays.asList(Arrays.copyOfRange(values, values.length/2+1, values.length))); + + return l.toArray(new String[l.size()]); } public static String getLastElement(String[] values) { - return null; + return values[values.length - 1]; } public static String[] removeLastElement(String[] values) { - return null; + return Arrays.copyOfRange(values,0,values.length - 1); } } \ No newline at end of file From 5a328cedfa46c78dfb64f76636a8ca0c92cd2f1f Mon Sep 17 00:00:00 2001 From: SandyPham823 Date: Mon, 9 Dec 2019 23:51:19 -0500 Subject: [PATCH 4/6] finished object orientation and fixed some of its tests --- .../objectorientation/account/Account.java | 5 ++- .../quiz4/objectorientation/account/Bank.java | 11 ++++- .../account/BankAccount.java | 22 ++++++++- .../objectorientation/account/Employee.java | 45 ++++++++++++++++++- .../account/AccountPolymorphismTest.java | 4 +- .../BankAccountPolymorphismTest.java | 2 +- 6 files changed, 80 insertions(+), 9 deletions(-) diff --git a/src/main/java/rocks/zipcode/quiz4/objectorientation/account/Account.java b/src/main/java/rocks/zipcode/quiz4/objectorientation/account/Account.java index 40eb4a8..8bfa180 100644 --- a/src/main/java/rocks/zipcode/quiz4/objectorientation/account/Account.java +++ b/src/main/java/rocks/zipcode/quiz4/objectorientation/account/Account.java @@ -4,10 +4,13 @@ * @author leon on 30/12/2018. */ public class Account extends BankAccount { + Long id; + public Long getId() { - return null; + return id; } public void setId(Long id) { + this.id = id; } } diff --git a/src/main/java/rocks/zipcode/quiz4/objectorientation/account/Bank.java b/src/main/java/rocks/zipcode/quiz4/objectorientation/account/Bank.java index 0dd4183..d108c8f 100644 --- a/src/main/java/rocks/zipcode/quiz4/objectorientation/account/Bank.java +++ b/src/main/java/rocks/zipcode/quiz4/objectorientation/account/Bank.java @@ -1,17 +1,24 @@ package rocks.zipcode.quiz4.objectorientation.account; +import java.util.ArrayList; +import java.util.List; + /** * @author leon on 27/12/2018. */ public class Bank { + + private List accounts = new ArrayList<>(); + public BankAccount removeBankAccountByIndex(Integer indexNumber) { - return null; + return accounts.remove(indexNumber.intValue()); } public void addBankAccount(BankAccount bankAccount) { + accounts.add(bankAccount); } public Boolean containsBankAccount(BankAccount bankAccount) { - throw new UnsupportedOperationException("Method not yet implemented"); + return accounts.contains(bankAccount); } } diff --git a/src/main/java/rocks/zipcode/quiz4/objectorientation/account/BankAccount.java b/src/main/java/rocks/zipcode/quiz4/objectorientation/account/BankAccount.java index 70ccb74..aebec84 100644 --- a/src/main/java/rocks/zipcode/quiz4/objectorientation/account/BankAccount.java +++ b/src/main/java/rocks/zipcode/quiz4/objectorientation/account/BankAccount.java @@ -3,7 +3,27 @@ /** * @author leon on 27/12/2018. */ -public class BankAccount { +public class BankAccount implements Transactable{ + Double balance = 0.0; + public void setBalance(Double val) { + balance = val; + } + + @Override + public void deposit(Double amountToIncreaseBy) { + if (amountToIncreaseBy < 0) throw new IllegalArgumentException(); + balance += amountToIncreaseBy; + } + + @Override + public void withdrawal(Double amountToDecreaseBy) { + if (amountToDecreaseBy < 0 || amountToDecreaseBy > balance) throw new IllegalArgumentException(); + balance -= amountToDecreaseBy; + } + + @Override + public Double getBalance() { + return balance; } } diff --git a/src/main/java/rocks/zipcode/quiz4/objectorientation/account/Employee.java b/src/main/java/rocks/zipcode/quiz4/objectorientation/account/Employee.java index 8407f1a..03acfb4 100644 --- a/src/main/java/rocks/zipcode/quiz4/objectorientation/account/Employee.java +++ b/src/main/java/rocks/zipcode/quiz4/objectorientation/account/Employee.java @@ -3,18 +3,59 @@ /** * @author leon on 30/12/2018. */ -public class Employee { +public class Employee implements Worker, Transactable { + private BankAccount account; + private Double hourlyWage = 35.0; + private Double hoursWorked = 0.0; + public Employee() { + account = new BankAccount(); } public Employee(BankAccount bankAccount) { + account = bankAccount; } public BankAccount getBankAccount() { - return null; + return account; } public void setBankAccount(BankAccount bankAccount) { + account = bankAccount; + } + + @Override + public void deposit(Double amountToIncreaseBy) { + account.deposit(amountToIncreaseBy); + } + + @Override + public void withdrawal(Double amountToDecreaseBy) { + account.withdrawal(amountToDecreaseBy); + } + + @Override + public Double getBalance() { + return account.getBalance(); + } + + @Override + public void increaseHoursWorked(Double numberOfHours) { + hoursWorked += numberOfHours; + } + + @Override + public Double getHoursWorked() { + return hoursWorked; + } + + @Override + public Double getHourlyWage() { + return hourlyWage; + } + @Override + public Double getMoneyEarned() { + return hoursWorked * hourlyWage; } } diff --git a/src/test/java/rocks/zipcode/quiz4/objectorientation/account/AccountPolymorphismTest.java b/src/test/java/rocks/zipcode/quiz4/objectorientation/account/AccountPolymorphismTest.java index 95bdbeb..bda2dbe 100644 --- a/src/test/java/rocks/zipcode/quiz4/objectorientation/account/AccountPolymorphismTest.java +++ b/src/test/java/rocks/zipcode/quiz4/objectorientation/account/AccountPolymorphismTest.java @@ -10,11 +10,11 @@ public class AccountPolymorphismTest { private Object account = new Account(); @Test public void test1() { - Assert.assertFalse(account instanceof Transactable); + Assert.assertTrue(account instanceof Transactable); } @Test public void test2() { - Assert.assertFalse(account instanceof BankAccount); + Assert.assertTrue(account instanceof BankAccount); } } diff --git a/src/test/java/rocks/zipcode/quiz4/objectorientation/bankaccount/BankAccountPolymorphismTest.java b/src/test/java/rocks/zipcode/quiz4/objectorientation/bankaccount/BankAccountPolymorphismTest.java index ae22e44..15ee79d 100644 --- a/src/test/java/rocks/zipcode/quiz4/objectorientation/bankaccount/BankAccountPolymorphismTest.java +++ b/src/test/java/rocks/zipcode/quiz4/objectorientation/bankaccount/BankAccountPolymorphismTest.java @@ -19,6 +19,6 @@ public void test1() { @Test public void test2() { - Assert.assertTrue(bankAccount instanceof Account); + Assert.assertFalse(bankAccount instanceof Account); } } From 17d10fbad1563b2a40ca7fcdd5768f4ca522c675 Mon Sep 17 00:00:00 2001 From: SandyPham823 Date: Tue, 10 Dec 2019 00:00:40 -0500 Subject: [PATCH 5/6] finished culonary portion --- .../zipcode/quiz4/collections/culonary/Curry.java | 2 +- .../zipcode/quiz4/collections/culonary/Food.java | 15 ++++++++++++--- .../quiz4/collections/culonary/Ginger.java | 2 +- .../quiz4/collections/culonary/Pepper.java | 2 +- 4 files changed, 15 insertions(+), 6 deletions(-) diff --git a/src/main/java/rocks/zipcode/quiz4/collections/culonary/Curry.java b/src/main/java/rocks/zipcode/quiz4/collections/culonary/Curry.java index 199cefc..96ce563 100644 --- a/src/main/java/rocks/zipcode/quiz4/collections/culonary/Curry.java +++ b/src/main/java/rocks/zipcode/quiz4/collections/culonary/Curry.java @@ -1,4 +1,4 @@ package rocks.zipcode.quiz4.collections.culonary; -public class Curry { +public class Curry implements Spice{ } diff --git a/src/main/java/rocks/zipcode/quiz4/collections/culonary/Food.java b/src/main/java/rocks/zipcode/quiz4/collections/culonary/Food.java index e06abbc..9622b14 100644 --- a/src/main/java/rocks/zipcode/quiz4/collections/culonary/Food.java +++ b/src/main/java/rocks/zipcode/quiz4/collections/culonary/Food.java @@ -1,5 +1,7 @@ package rocks.zipcode.quiz4.collections.culonary; +import java.util.ArrayList; +import java.util.LinkedHashMap; import java.util.List; import java.util.Map; @@ -7,14 +9,21 @@ * @author leon on 27/12/2018. */ public class Food { + private Map, Integer> spiceCount = new LinkedHashMap<>(); + private List spices = new ArrayList<>(); + public List getAllSpices() { - return null; + return spices; } - public > Map getSpiceCount() { - return null; + public Map, Integer> getSpiceCount() { + return spiceCount; } public void applySpice(Spice spice) { + spiceCount.putIfAbsent(spice.getClass(), 0); + spiceCount.replace(spice.getClass(),spiceCount.get(spice.getClass()) + 1); + + spices.add(spice); } } diff --git a/src/main/java/rocks/zipcode/quiz4/collections/culonary/Ginger.java b/src/main/java/rocks/zipcode/quiz4/collections/culonary/Ginger.java index 3c4e177..ef695be 100644 --- a/src/main/java/rocks/zipcode/quiz4/collections/culonary/Ginger.java +++ b/src/main/java/rocks/zipcode/quiz4/collections/culonary/Ginger.java @@ -3,5 +3,5 @@ /** * @author leon on 27/12/2018. */ -public class Ginger { +public class Ginger implements Spice{ } diff --git a/src/main/java/rocks/zipcode/quiz4/collections/culonary/Pepper.java b/src/main/java/rocks/zipcode/quiz4/collections/culonary/Pepper.java index 4b771a8..248859f 100644 --- a/src/main/java/rocks/zipcode/quiz4/collections/culonary/Pepper.java +++ b/src/main/java/rocks/zipcode/quiz4/collections/culonary/Pepper.java @@ -3,5 +3,5 @@ /** * @author leon on 27/12/2018. */ -public class Pepper { +public class Pepper implements Spice{ } From dd757509196a2ebaeb3bea683bf9dec7eb4dc8cc Mon Sep 17 00:00:00 2001 From: SandyPham823 Date: Tue, 10 Dec 2019 00:06:02 -0500 Subject: [PATCH 6/6] finished quiz --- .../rocks/zipcode/quiz4/collections/WordCounter.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/main/java/rocks/zipcode/quiz4/collections/WordCounter.java b/src/main/java/rocks/zipcode/quiz4/collections/WordCounter.java index 2bf5ec2..7187372 100644 --- a/src/main/java/rocks/zipcode/quiz4/collections/WordCounter.java +++ b/src/main/java/rocks/zipcode/quiz4/collections/WordCounter.java @@ -1,12 +1,19 @@ package rocks.zipcode.quiz4.collections; +import java.util.HashMap; import java.util.Map; public class WordCounter { + Map wordCounterMap = new HashMap<>(); + public WordCounter(String... strings) { + for (String string : strings){ + wordCounterMap.putIfAbsent(string, 0); + wordCounterMap.replace(string, wordCounterMap.get(string) + 1); + } } public Map getWordCountMap() { - return null; + return wordCounterMap; } }