Skip to content
Snippets Groups Projects
Commit 1b2d356e authored by Iiris Saresma's avatar Iiris Saresma
Browse files

valmista

parent d7be1945
No related branches found
No related tags found
No related merge requests found
Pipeline #76099 passed
Showing with 93 additions and 15 deletions
package fi.utu.tech.ooj.exercise1.teht2;
import java.util.ArrayList;
public class Calculator {
static String neg = "";
public static float avg(int[] nums) throws EmptyArrayException {
int sum = 0;
if (nums == null || nums.length == 0)
throw new EmptyArrayException();
ArrayList<Integer> kopio = new ArrayList<>();
for (int i=0; i< nums.length ; i++) {
if (nums[i] >= 0) {
kopio.add(nums[i]);
} else {
neg = neg + "Antamasi taulukon " + (i+1)
+ ". luku " + nums[i] + " on virheellinen \n";
}
}
if (kopio.size() == nums.length) {
for (int n : nums) sum += n;
return sum / nums.length;
} else {
return (float) -2.0;
}
}
public static void tulostus() {
System.out.println(neg);
}
}
......@@ -2,4 +2,5 @@ package fi.utu.tech.ooj.exercise1.teht2;
public class EmptyArrayException extends Exception{
}
......@@ -9,12 +9,15 @@ public class Teht1 {
Float result = -1f;
try {
result = Calculator.avg(nums);
if (result == -2) {
Calculator.tulostus();
}
}
catch(EmptyArrayException e) {
System.out.println("Oho, tapahtui hassuja");
}
//Tulostetaan info-rivi, jotta suoritusta on helpompi seurata
System.out.println("Tehtävä 1 suoritus päättyi");
System.out.println("Tehtävän 1 suoritus päättyi");
}
}
......@@ -3,8 +3,8 @@ package fi.utu.tech.ooj.exercise1.teht3;
public class DensityCalculator {
/*
* Alkuehto: TODO: määritä tähän alkuehto
* Loppuehto: TODO: määritä tähän loppuehto
* Alkuehto: massa>0, tilavuus>0
* Loppuehto: RESULT=massa/tilavuus ja RESULT > 0
*/
public static Double laskeTiheys(Double massa, Double tilavuus) {
return (massa / tilavuus);
......@@ -14,15 +14,13 @@ public class DensityCalculator {
/*
* Alkuehto: true
* Loppuehto: palautusarvo on (massa / tilavuus) ja palautusarvo > 0 ja palautusarvo < 250
* Poikkeukset: Nostaa poikkeuksen IllegalArgumentException, jos... [TODO: täydennä ehto]
* Poikkeukset: Nostaa poikkeuksen IllegalArgumentException, jos massa tai tilavuus ei-positiivisia tai tiheys on liian suuri.
*/
public static Double laskeTiheysTotaalisesti(Double massa, Double tilavuus) throws IllegalArgumentException{
/* TODO: Toteuta rutiini niin, että loppuehto pitää paikkansa ja poikkeus nostetaan tarvittaessa.
Huom. alla oleva return null on lisätty, jotta harjoitustyöpohja toimii myös
ennen kuin tehtävä on tehty.
*/
return null;
if (massa <= 0 || tilavuus <= 0 || massa/tilavuus >= 250) throw new IllegalArgumentException();
return (massa/tilavuus);
}
......
package fi.utu.tech.ooj.exercise1.teht3;
public class IllegalArgumentException extends Exception{
}
......@@ -7,10 +7,15 @@ public class Teht2 {
System.out.println("Esimerkkilasku:");
Double massa = 10.4;
Double massa = 1.4;
Double tilavuus = 2.0;
Double tiheys = DensityCalculator.laskeTiheys(massa, tilavuus);
try {
Double tiheys = DensityCalculator.laskeTiheysTotaalisesti(massa, tilavuus);
System.out.println("Testiajon tulos: massa " + massa + " tilavuus " + tilavuus + " tiheys " + tiheys);
}
catch (IllegalArgumentException e) {
System.out.println("Annoit ei-positiivisia tai liian suuria lukuja");
}
//Tulostetaan info-rivi, jotta suoritusta on helpompi seurata
System.out.println("Tehtävä 2 suoritus päättyi");
......
......@@ -14,6 +14,7 @@ public class Sorter {
}
}
public static void selectionSort(int[] arr) {
int n = arr.length;
......
package fi.utu.tech.ooj.exercise1.teht4;
// import fi.utu.tech.ooj.exercise1.teht3.IllegalArgumentException;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.*;
class FactorialTest {
@Test
void calculateFactorial() {
assertEquals(0, Factorial.calculateFactorial(0));
assertEquals(4*3*2*1, Factorial.calculateFactorial(4));
assertThrows(IllegalArgumentException.class, () -> Factorial.calculateFactorial(-1));
}
}
\ No newline at end of file
package fi.utu.tech.ooj.exercise1.teht4;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.*;
class SorterTest {
@Test
void bubbleSort() {
int[] testi = new int[]{2, 5, 3, 4, 1};
int[] oikea = new int[] {5, 4, 3, 2, 1};
Sorter.bubbleSort(testi);
assertArrayEquals(oikea, testi);
}
// rutiini on hidas mikäli taulukko on suuri
@Test
void selectionSort() {
int[] testi = new int[]{2, 5, 3, 4, 1};
int[] oikea = new int[] {1, 2, 3, 4, 5};
Sorter.selectionSort(testi);
assertArrayEquals(oikea, testi);
}
// työläs suuremmilla taulukoilla
}
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment