Viikon 1 paikanpäällä tehtävien tehtävien mallivastaus - HY-TKTL/otm2014s GitHub Wiki

Lyyrakortti

public class LyyraKorttiTest {

    private LyyraKortti kortti;
    private 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());
    }
}

Ylhäältä rajoitettu laskuri

public class YlhaaltaRajoitettuLaskuriTest {

    // apumetodi
    private 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());
    }
}

Lukutilasto

public class LukutilastoTest {

    private Lukutilasto tilasto;
    private 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);
    }
}
⚠️ **GitHub.com Fallback** ⚠️