From cfd567e6802a272098b12f50bae72542b5ed2f18 Mon Sep 17 00:00:00 2001 From: LinlyBoi Date: Sat, 29 Jan 2022 20:18:05 +0200 Subject: [PATCH] Negative powers --- src/MathRelated/PowerOfSquares.java | 1 + src/MathRelated/PowerOfSquaresTest.java | 4 +- src/Phonebook/PhoneNumber.java | 23 ++++++++++ src/Phonebook/Phonebook.java | 59 +++++++++++++++++++++++++ src/Phonebook/PhonebookTest.java | 39 ++++++++++++++++ src/Phonebook/YellowPages.java | 28 ++++++++++++ src/Phonebook/YellowPagesTest.java | 31 +++++++++++++ 7 files changed, 184 insertions(+), 1 deletion(-) create mode 100644 src/Phonebook/PhoneNumber.java create mode 100644 src/Phonebook/Phonebook.java create mode 100644 src/Phonebook/PhonebookTest.java create mode 100644 src/Phonebook/YellowPages.java create mode 100644 src/Phonebook/YellowPagesTest.java diff --git a/src/MathRelated/PowerOfSquares.java b/src/MathRelated/PowerOfSquares.java index 699dfa1..1630fbc 100644 --- a/src/MathRelated/PowerOfSquares.java +++ b/src/MathRelated/PowerOfSquares.java @@ -5,6 +5,7 @@ public class PowerOfSquares public double IntegerPower(int base, int power) { + if(power == 0) return 1; diff --git a/src/MathRelated/PowerOfSquaresTest.java b/src/MathRelated/PowerOfSquaresTest.java index dafd2ff..b28e71e 100644 --- a/src/MathRelated/PowerOfSquaresTest.java +++ b/src/MathRelated/PowerOfSquaresTest.java @@ -10,11 +10,13 @@ public class PowerOfSquaresTest extends PowerOfSquares @Test public void integerPower() { - System.out.println(IntegerPower(2,-1)); + assertEquals(27,IntegerPower(3,3)); assertEquals(4,IntegerPower(2,2)); assertEquals(1,IntegerPower(2,0)); assertEquals(0.5 , IntegerPower(2,-1)); + assertEquals(1,IntegerPower(2,2)*IntegerPower(2,-2)); + assertEquals(1,IntegerPower(10,10)*IntegerPower(10,-10),0.1); } diff --git a/src/Phonebook/PhoneNumber.java b/src/Phonebook/PhoneNumber.java new file mode 100644 index 0000000..721ceab --- /dev/null +++ b/src/Phonebook/PhoneNumber.java @@ -0,0 +1,23 @@ +package Phonebook; + +public class PhoneNumber +{ + String name; + String number; + public String getNumber() + { + return number; + } + + public String getName() + { + return name; + } + + PhoneNumber(String num, String name) + { + this.number = num; + this.name = name; + } + +} diff --git a/src/Phonebook/Phonebook.java b/src/Phonebook/Phonebook.java new file mode 100644 index 0000000..fbf80e7 --- /dev/null +++ b/src/Phonebook/Phonebook.java @@ -0,0 +1,59 @@ +package Phonebook; + + +import java.util.Stack; + +public class Phonebook +{ + public Stack Numbers = new Stack(); + + public boolean insert(String phoneNum, String name) + { + //check not start with 0 or 1 + if (phoneNum.charAt(0) == '0' || phoneNum.charAt(0) == '1') + return false; + + if (phoneNum.length() == 10) + return false; + + PhoneNumber[] listofNums = Numbers.toArray(new PhoneNumber[0]); + for (int i = 0; i < listofNums.length; i++) + { + + String check = listofNums[i].getNumber(); + if (phoneNum.equals(check)) + return false; + } + PhoneNumber toInsert = new PhoneNumber(phoneNum, name); + Numbers.push(toInsert); + return true; + + } + + public String getPhoneNumber(String name) + { + PhoneNumber[] listofNums = Numbers.toArray(new PhoneNumber[Numbers.size()]); + for (int i = 0; i < listofNums.length; i++) + { + + String check = listofNums[i].getName(); + if (name.equals(check)) + return listofNums[i].getNumber(); + } + return null; + } + + public String getName(String num) + { + PhoneNumber[] listofNums = Numbers.toArray(new PhoneNumber[Numbers.size()]); + for (int i = 0; i < listofNums.length; i++) + { + + String check = listofNums[i].getNumber(); + if (num.equals(check)) + return listofNums[i].getName(); + } + return null; + } +} + diff --git a/src/Phonebook/PhonebookTest.java b/src/Phonebook/PhonebookTest.java new file mode 100644 index 0000000..afd0b5b --- /dev/null +++ b/src/Phonebook/PhonebookTest.java @@ -0,0 +1,39 @@ +package Phonebook; + +import org.junit.Test; + +import static org.junit.Assert.*; + +public class PhonebookTest +{ + + @Test + public void insert() + { + PhoneNumber n1 = new PhoneNumber("81011111111","Medhat"); + Phonebook testBook = new Phonebook(); + assertTrue(testBook.insert(n1.getNumber(),n1.getNumber())); + assertFalse(testBook.insert("1000000","hmm")); + assertFalse(testBook.insert("000565656565656565656","Nm")); + assertFalse(testBook.insert("2310456789","Nope")); + assertFalse(testBook.insert(n1.getNumber(),n1.getNumber())); + } + + @Test + public void getPhoneNumber() + { + Phonebook testBook = new Phonebook(); + testBook.insert("71023748927398", "Jeff"); + String name = "Jeff"; + assertEquals(name, testBook.getName("71023748927398")); + + } + + @Test + public void getName() + { + Phonebook testBook = new Phonebook(); + testBook.insert("810789987","Hamada"); + assertEquals("810789987", testBook.getPhoneNumber("Hamada")); + } +} \ No newline at end of file diff --git a/src/Phonebook/YellowPages.java b/src/Phonebook/YellowPages.java new file mode 100644 index 0000000..a1f34eb --- /dev/null +++ b/src/Phonebook/YellowPages.java @@ -0,0 +1,28 @@ +package Phonebook; + +public class YellowPages extends Phonebook +{ + public int TotalNumbers() + { + return Numbers.size(); + } + public double percentage810() + { + double percentage; + double total = 0; + PhoneNumber[] listofNums = Numbers.toArray(new PhoneNumber[Numbers.size()]); + for (int i = 0; i < listofNums.length; i++) + { + String check = listofNums[i].getNumber(); + if (check.startsWith("810")) + total++; + } + double size = Numbers.size(); + percentage = 100*total/size; + + return percentage; + } + + + +} diff --git a/src/Phonebook/YellowPagesTest.java b/src/Phonebook/YellowPagesTest.java new file mode 100644 index 0000000..e7db63b --- /dev/null +++ b/src/Phonebook/YellowPagesTest.java @@ -0,0 +1,31 @@ +package Phonebook; + +import org.junit.Test; + +import static org.junit.Assert.*; + +public class YellowPagesTest +{ + + @Test + public void totalNumbers() + { + YellowPages testPage = new YellowPages(); + testPage.insert("8105464654654678","Jeff"); + testPage.insert("81078979878974","Jefferson"); + testPage.insert("8104654654654654","Jeffery"); + testPage.insert("81265464654654654","Jef"); + assertEquals(4,testPage.TotalNumbers()); + } + + @Test + public void percentage810() + { + YellowPages testPage = new YellowPages(); + testPage.insert("8105464654654678","Jeff"); + testPage.insert("81078979878974","Jefferson"); + testPage.insert("8104654654654654","Jeffery"); + testPage.insert("81265464654654654","Jef"); + assertEquals(75.0,testPage.percentage810(),0.1); + } +} \ No newline at end of file