viikon 1 mallivastaukset - mluukkai/OTM2012 GitHub Wiki

Lyyrakortin testit

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

Lukutilaston testit

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