/*
 * Created on 03.01.2005
 *
 * $Id: RouletteTest.java,v 1.1 2005/06/24 13:56:06 boehm Exp $
 */
package casino;

import junit.framework.TestCase;

/**
 * @author <a href="mailto:boehm@javatux.de">oliver</a>
 * @since 03.01.2005
 * @version $revision$
 */
public class RouletteTest extends TestCase {

    public static void main(String[] args) {
        junit.textui.TestRunner.run(RouletteTest.class);
    }
    
    private Roulette roulette = new Roulette();
    
    public final void testWerfeKugel() {
        int n = roulette.werfeKugel();
        assertTrue(n >= 0);
        assertTrue(n <= 36);
    }

    public final void testIsPair() {
        for (int i = 2; i <= 36; i +=2) {
            roulette.wurf = i;
            assertTrue(roulette.isPair());
            assertFalse(roulette.isImpair());
        }
    }

    public final void testIsImpair() {
        for (int i = 1; i <= 36; i +=2) {
            roulette.wurf = i;
            assertTrue(roulette.isImpair());
            assertFalse(roulette.isPair());
        }
    }

    public final void testIsManque() {
        for (int i = 1; i <= 18; i++) {
            roulette.wurf = i;
            assertTrue(roulette.isManque());
            assertFalse(roulette.isPasse());
        }
    }

    public final void testIsPasse() {
        for (int i = 19; i <= 36; i++) {
            roulette.wurf = i;
            assertTrue(roulette.isPasse());
            assertFalse(roulette.isManque());
        }
    }
    
    public final void testZero() {
        roulette.wurf = 0;
        assertFalse(roulette.isPair());
        assertFalse(roulette.isImpair());
        assertFalse(roulette.isManque());
        assertFalse(roulette.isPasse());
    }
    
    /**
     * Nach 100 Wuerfen muessten statistisch gesehen 49 mal Pair
     * und 3 mal die "0" auftreten.
     */
    public final void testStatisticOfPair() {
        int n = 0;
        for (int i = 0; i < 100; i++) {
            roulette.werfeKugel();
            if (roulette.isPair()) {
                n++;
            }
        }
        assertEquals(49, n);
    }

}
