Negative powers

This commit is contained in:
LinlyBoi
2022-01-29 20:18:05 +02:00
parent 9aaca7c080
commit cfd567e680
7 changed files with 184 additions and 1 deletions

View File

@@ -5,6 +5,7 @@ public class PowerOfSquares
public double IntegerPower(int base, int power) public double IntegerPower(int base, int power)
{ {
if(power == 0) if(power == 0)
return 1; return 1;

View File

@@ -10,11 +10,13 @@ public class PowerOfSquaresTest extends PowerOfSquares
@Test @Test
public void integerPower() public void integerPower()
{ {
System.out.println(IntegerPower(2,-1));
assertEquals(27,IntegerPower(3,3)); assertEquals(27,IntegerPower(3,3));
assertEquals(4,IntegerPower(2,2)); assertEquals(4,IntegerPower(2,2));
assertEquals(1,IntegerPower(2,0)); assertEquals(1,IntegerPower(2,0));
assertEquals(0.5 , IntegerPower(2,-1)); assertEquals(0.5 , IntegerPower(2,-1));
assertEquals(1,IntegerPower(2,2)*IntegerPower(2,-2));
assertEquals(1,IntegerPower(10,10)*IntegerPower(10,-10),0.1);
} }

View File

@@ -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;
}
}

View File

@@ -0,0 +1,59 @@
package Phonebook;
import java.util.Stack;
public class Phonebook
{
public Stack<PhoneNumber> Numbers = new Stack<PhoneNumber>();
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;
}
}

View File

@@ -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"));
}
}

View File

@@ -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;
}
}

View File

@@ -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);
}
}