[[oktatas:programozás:feladatok:speciális| < Speciális]]
====== Java tesztes feladatok ======
===== Szimpla =====
==== Feladat 0001 ====
Adott a következő jUnit alapú teszt:
import org.junit.Test;
import static org.junit.Assert.*;
public class TesttomegTeszt {
@Test
public void tesztSzamitTerulet() {
assertEquals(29, Testtomeg.szamitIndex(95, 1.80), 0);
assertEquals(28, Testtomeg.szamitIndex(90, 1.80), 0);
assertEquals(26, Testtomeg.szamitIndex(85, 1.80), 0);
assertEquals(28, Testtomeg.szamitIndex(85, 1.75), 0);
assertEquals(21, Testtomeg.szamitIndex(50, 1.55), 0);
}
}
Feladatunk, hogy számoljuk ki a testtömegindexet, a következő képlet alapján:
testtomegindex = tomeg / magassag^2
Írjon metódust, amely teljesíti a fenti tesztet.
==== Feladat 0002 ====
Adott a következő egységteszt, amely az alapszabadságot számító
metódust tesztel, amelynek neve alapSzabadsag(). Az alapSzabadsag()
metódusnak vissza kell adnia szabadnapot. Bemenő paraméter életkor.
Írjon metódust, amely teljesíti a tesztet.
import org.junit.Test;
import static org.junit.Assert.*;
public class Program01Teszt {
@Test
public void testAlapSzabadsag() {
assertEquals(21, Program01.alapSzabadsag(25), 0);
assertEquals(22, Program01.alapSzabadsag(28), 0);
assertEquals(23, Program01.alapSzabadsag(32), 0);
assertEquals(24, Program01.alapSzabadsag(34), 0);
assertEquals(25, Program01.alapSzabadsag(36), 0);
assertEquals(26, Program01.alapSzabadsag(38), 0);
assertEquals(27, Program01.alapSzabadsag(40), 0);
assertEquals(28, Program01.alapSzabadsag(42), 0);
assertEquals(29, Program01.alapSzabadsag(44), 0);
assertEquals(30, Program01.alapSzabadsag(45), 0);
assertEquals(30, Program01.alapSzabadsag(46), 0);
assertEquals(30, Program01.alapSzabadsag(50), 0);
}
}
Az alapszabadság meghatározása:
* 25 életévtől 21 nap
* 28 életévtől 22 nap
* 31 életévtől 23 nap
* 33 életévtől 24 nap
* 35 életévtől 25 nap
* 37 életévtől 26 nap
* 39 életévtől 27 nap
* 41 életévtől 28 nap
* 43 életévtől 29 nap
* 45 életévtől 30 nap
==== Feladat 0003 ====
Írjon metódust, amely teljesíti a következő tesztet:
import org.junit.Test;
import static org.junit.Assert.*;
public class Program01Test {
@Test
public void testCaesarCode() {
assertEquals("de", Program01.caesarCode("ab", 3));
assertEquals("ef", Program01.caesarCode("bc", 3));
assertEquals("d", Program01.caesarCode("a", 3));
assertEquals("c", Program01.caesarCode("z", 3));
assertEquals("hi", Program01.caesarCode("ab", 7));
}
}
A caesarCode() metódus egy Caesar-kódoló. Egy szöveg minden betűjét eltolja az adott számú értékkel.
A példában 3-mal toltuk el karaktereket. Az "a" helyet például "d"-t kapunk.
A "b" helyett "e"-t kapunk, stb. Csak az angol ábécével kell dolgoznunk.
Ha az ábécé végén járunk, például "z" betűt kell kódolni, akkor
az ábécé elejéről folytatjuk, tehát "z" esetén "c"-t kell kapnunk.
==== Feladat 0004 ====
Adott a következő teszt:
import org.junit.Test;
import static org.junit.Assert.*;
public class Program01Test {
@Test
public void testMethod() {
assertTrue(Program01.isOdd(3));
assertTrue(Program01.isOdd(5));
assertTrue(Program01.isOdd(15));
assertTrue(Program01.isOdd(-1));
assertTrue(Program01.isOdd(-3));
assertFalse(Program01.isOdd(2));
assertFalse(Program01.isOdd(4));
assertFalse(Program01.isOdd(100));
assertFalse(Program01.isOdd(-100));
}
}
Írjon metódust, amely teljesíti a tesztet.
Az isOdd() metódus megvizsgálja a paraméterként kapott egész számot, hogy páratlan-e.
Ha páratlan, akkor visszaad egy "true" értéket. Ellenkező esetben "false" értékkel tér
vissza.
===== Kivételkezelést is követelő =====
==== Feladat 0501 ====
A következő teszt egy olyan programhoz készült, amely téglalap
területének számítását fogja elvégezni. Írja meg azt a programot,
amely teljesíti a tesztet.
import org.junit.Test;
import static org.junit.Assert.*;
public class TeglalapTeszt {
@Test
public void tesztSzamitTerulet() {
assertEquals(1050, Teglalap.szamitTerulet(30, 35), 0);
assertEquals(1800, Teglalap.szamitTerulet(40, 45), 0);
}
@Test(expected = IllegalArgumentException.class)
public void tesztExceptionSzamitTerulet() {
Teglalap.szamitTerulet(0, 35);
}
}