viikon 1 mallivastaukset - mluukkai/OTM2012 GitHub Wiki
public class LyyraKorttiTest {
LyyraKortti kortti;
static double ERROR = 0.001;
@Before
public void setUp() {
kortti = new LyyraKortti(10);
}
@Test
public void konstruktoriAsettaaSaldonOikein() {
String vastaus = kortti.toString();
assertEquals("Kortilla on rahaa 10.0 euroa", vastaus);
}
@Test
public void syoEdullisestiVahentaaSaldoaOikein() {
kortti.syoEdullisesti();
assertEquals("Kortilla on rahaa 7.5 euroa", kortti.toString());
}
@Test
public void syoMaukkaastiVahentaaSaldoaOikein() {
kortti.syoMaukkaasti();
assertEquals("Kortilla on rahaa 6.0 euroa", kortti.toString());
}
@Test
public void syoEdullisestiEiVieSaldoaNegatiiviseksi() {
kortti.syoMaukkaasti();
kortti.syoMaukkaasti();
// nyt kortin saldo on 2
kortti.syoEdullisesti();
assertEquals("Kortilla on rahaa 2.0 euroa", kortti.toString());
}
@Test
public void kortilleVoiLadataRahaa() {
kortti.lataaRahaa(25);
assertEquals("Kortilla on rahaa 35.0 euroa", kortti.toString());
}
@Test
public void kortinSaldoEiYlitaMaksimiarvoa() {
kortti.lataaRahaa(200);
assertEquals("Kortilla on rahaa 150.0 euroa", kortti.toString());
}
@Test
public void maukkaastiSyominenEiVieSaldoaNegatiiviseksi() {
for (int i = 0; i < 3; i++) {
kortti.syoMaukkaasti();
}
assertEquals("Kortilla on rahaa 2.0 euroa", kortti.toString());
}
@Test
public void negatiivisenSummanLataamienEiMuutaSaldoa() {
kortti.lataaRahaa(-5);
assertEquals("Kortilla on rahaa 10.0 euroa", kortti.toString());
}
@Test
public void voiOstaaEdullisenLounaanKunJuuriTarpeeksiRahaa() {
kortti = new LyyraKortti(2.5);
kortti.syoEdullisesti();
assertEquals("Kortilla on rahaa 0.0 euroa", kortti.toString());
}
@Test
public void voiOstaaMaukkaastiKunJuuriTarpeeksiRahaa() {
kortti = new LyyraKortti(4);
kortti.syoMaukkaasti();
assertEquals("Kortilla on rahaa 0.0 euroa", kortti.toString());
}
}
h2. Yläältärajoitetun laskurin testit
public class YlhaaltaRajoitettuLaskuriTest {
// apumetodi
public void eteneNKertaa(YlhaaltaRajoitettuLaskuri laskuri, int n) {
for (int i = 0; i < n; i++) {
laskuri.seuraava();
}
}
@Before
public void setUp() {
this.laskuri = new YlhaaltaRajoitettuLaskuri(15);
}
@Test
public void laskurinArvoOnAluksiNolla() {
assertEquals(0, laskuri.arvo());
}
@Test
public void laskurinArvoKasvaaYhdellaEdetessaKerran() {
laskuri.seuraava();
assertEquals(1, laskuri.arvo());
}
@Test
public void laskurinArvoOnKaksiKunSeEteneeKahdesti() {
laskuri.seuraava();
laskuri.seuraava();
assertEquals(2, laskuri.arvo());
}
@Test
public void laskurinArvoOn14KunSitaKasvatetaan14Kertaa() {
eteneNKertaa(laskuri, 14);
assertEquals(14, laskuri.arvo());
}
@Test
public void laskurinArvoOnYlarajaJosLaskuriaKasvatetaanYlarajanMontaKertaa() {
eteneNKertaa(laskuri, 15);
assertEquals(15, laskuri.arvo());
}
@Test
public void laskurinArvoOnNollaJosLaskuriaKasvatetaanYlarajanJalkeenKerran() {
eteneNKertaa(laskuri, 16);
assertEquals(0, laskuri.arvo());
}
@Test
public void laskurinArvoOnYksiJosLaskuriaKasvatetaanYlarajanJalkeenKaksiKertaa() {
eteneNKertaa(laskuri, 17);
assertEquals(1, laskuri.arvo());
}
@Test
public void asetaArvoAsettaaArvonKunNolla() {
// asetetaan jokin muu arvo kuin nolla jotta nahdaan ett�a arvo oikeasti vaihtuu
laskuri.asetaArvo(5);
laskuri.asetaArvo(0);
assertEquals(0, laskuri.arvo());
}
@Test
public void asetaArvoAsettaaArvonKunArvoOnVahemmanKuinYlaraja() {
laskuri.asetaArvo(10);
assertEquals(10, laskuri.arvo());
}
@Test
public void asetaArvoAsettaaArvonKunYlaraja() {
laskuri.asetaArvo(15);
assertEquals(15, laskuri.arvo());
}
@Test
public void laskurinArvoEiMuutuKunAsetetaanNegatiivinenArvo() {
// kasvatetaan yhdell�a ett�a n�ahdaa��n ettei arvoa aseteta nollaksi
laskuri.seuraava();
laskuri.asetaArvo(-5);
assertEquals(1, laskuri.arvo());
}
@Test
public void laskurinArvoEiMuutuKunAsetetaanYlarajaPlusYksi() {
laskuri.asetaArvo(16);
assertEquals(0, laskuri.arvo());
}
@Test
public void laskurinArvoEiMuutuKunAsetetaanSelvastiYlarajaaSuurempiArvo() {
laskuri.asetaArvo(50);
assertEquals(0, laskuri.arvo());
}
@Test
public void toStringTuottaaEtunollanKunArvoNolla() {
assertEquals("00", laskuri.toString());
}
@Test
public void toStringTuottaaEtunollanKunLaskurinArvoOnYksi() {
laskuri.seuraava();
assertEquals("01", laskuri.toString());
}
@Test
public void toStringTuottaaEtunollanKunLaskurinArvo9() {
laskuri.asetaArvo(9);
assertEquals("09", laskuri.toString());
}
@Test
public void toStringEiTuotaEtunollaaKunArvo10() {
laskuri.asetaArvo(10);
assertEquals("10", laskuri.toString());
}
@Test
public void toStringEiTuotaEtunollaaKunArvo11() {
laskuri.asetaArvo(11);
assertEquals("11", laskuri.toString());
}
}
public class LukutilastoTest {
Lukutilasto tilasto;
public static final double VIRHE = 0.001;
@Before
public void setUp() {
tilasto = new Lukutilasto();
}
@Test
public void lukujenMaaraAluksiNolla() {
assertEquals(0, tilasto.haeLukujenMaara());
}
@Test
public void summaAluksiNolla() {
assertEquals(0, tilasto.summa());
}
@Test
public void keskiarvoAluksiNolla() {
assertEquals(0, tilasto.keskiarvo(), VIRHE);
}
@Test
public void lukujenMaaraKasvaaYhdellaKunLisataanYksiLuku() {
tilasto.lisaaLuku(5);
assertEquals(1, tilasto.haeLukujenMaara());
}
@Test
public void lukujenMaaraKasvaaKahdellaKunLisataanKaksiLukua() {
tilasto.lisaaLuku(5);
tilasto.lisaaLuku(5);
assertEquals(2, tilasto.haeLukujenMaara());
}
@Test
public void summaKasvaaLuvullaKunLisataanLuku() {
tilasto.lisaaLuku(5);
assertEquals(5, tilasto.summa());
}
@Test
public void summaKasvaaLuvuillaKunLisataanKaksiLukua() {
tilasto.lisaaLuku(5);
tilasto.lisaaLuku(2);
assertEquals(7, tilasto.summa());
}
@Test
public void summaVaheneeJosLisataanNegatiivinenLuku() {
tilasto.lisaaLuku(5);
tilasto.lisaaLuku(-2);
assertEquals(3, tilasto.summa());
}
@Test
public void keskiarvoPalauttaaLuvunKunVainYksiLuku() {
tilasto.lisaaLuku(5);
assertEquals(5, tilasto.keskiarvo(), VIRHE);
}
@Test
public void keskiarvoPalauttaaLisatynLuvunJosVainMontaSamaa() {
tilasto.lisaaLuku(2);
tilasto.lisaaLuku(2);
tilasto.lisaaLuku(2);
assertEquals(2, tilasto.keskiarvo(), VIRHE);
}
@Test
public void keskiarvoJakaaOikeinKahdenLuvunSumman() {
tilasto.lisaaLuku(5);
tilasto.lisaaLuku(10);
assertEquals(7.5, tilasto.keskiarvo(), VIRHE);
}
@Test
public void keskiarvoJakaaOikeinKahdellaNegatiivisellaLuvulla() {
tilasto.lisaaLuku(-5);
tilasto.lisaaLuku(-10);
assertEquals(-7.5, tilasto.keskiarvo(), VIRHE);
}
@Test
public void keskiarvoJakaaOikeinYhdellaNegatiivisellaJaYhdellaPositiivisellaLuvulla() {
tilasto.lisaaLuku(5);
tilasto.lisaaLuku(-5);
assertEquals(0, tilasto.keskiarvo(), VIRHE);
}
}