Package games.stendhal.common

Source Code of games.stendhal.common.DirectionTest

/* $Id: DirectionTest.java,v 1.7 2010/09/19 02:37:46 nhnb Exp $ */
/***************************************************************************
*                   (C) Copyright 2003-2010 - Stendhal                    *
***************************************************************************
***************************************************************************
*                                                                         *
*   This program is free software; you can redistribute it and/or modify  *
*   it under the terms of the GNU General Public License as published by  *
*   the Free Software Foundation; either version 2 of the License, or     *
*   (at your option) any later version.                                   *
*                                                                         *
***************************************************************************/
package games.stendhal.common;

import static org.hamcrest.Matchers.is;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertSame;
import static org.junit.Assert.assertThat;

import java.util.BitSet;

import org.junit.Test;

public class DirectionTest {

  /**
   * Tests for build.
   */
  @Test
  public final void testBuild() {
    assertSame(Direction.STOP, Direction.build(0));
    assertSame(Direction.UP, Direction.build(1));
    assertSame(Direction.RIGHT, Direction.build(2));
    assertSame(Direction.DOWN, Direction.build(3));
    assertSame(Direction.LEFT, Direction.build(4));
  }

  /**
   * Tests for getdx.
   */
  @Test
  public final void testGetdx() {
    assertEquals(0, Direction.STOP.getdx());
    assertEquals(0, Direction.UP.getdx());
    assertEquals(0, Direction.DOWN.getdx());

    assertEquals(1, Direction.RIGHT.getdx());
    assertEquals(-1, Direction.LEFT.getdx());
  }

  /**
   * Tests for getdy.
   */
  @Test
  public final void testGetdy() {
    assertEquals(0, Direction.STOP.getdy());
    assertEquals(0, Direction.RIGHT.getdy());
    assertEquals(0, Direction.LEFT.getdy());

    assertEquals(-1, Direction.UP.getdy());
    assertEquals(1, Direction.DOWN.getdy());
  }

  /**
   * Tests for get.
   */
  @Test
  public final void testGet() {
    assertEquals(0, Direction.STOP.get());
    assertEquals(1, Direction.UP.get());
    assertEquals(2, Direction.RIGHT.get());
    assertEquals(3, Direction.DOWN.get());
    assertEquals(4, Direction.LEFT.get());
  }

  /**
   * Tests for oppositeDirection.
   */
  @Test
  public final void testOppositeDirection() {
    assertEquals(Direction.UP, Direction.DOWN.oppositeDirection());
    assertEquals(Direction.DOWN, Direction.UP.oppositeDirection());
    assertEquals(Direction.LEFT, Direction.RIGHT.oppositeDirection());
    assertEquals(Direction.RIGHT, Direction.LEFT.oppositeDirection());
    assertEquals(Direction.STOP, Direction.STOP.oppositeDirection());
    assertEquals(Direction.UP, Direction.UP.oppositeDirection()
        .oppositeDirection());
  }
  /**
   * Tests for nextDirection.
   */
  @Test
  public final void testNextDirection() {
    assertEquals(Direction.LEFT, Direction.STOP.nextDirection());
    assertEquals(Direction.LEFT, Direction.DOWN.nextDirection());
    assertEquals(Direction.UP, Direction.LEFT.nextDirection());
    assertEquals(Direction.RIGHT, Direction.UP.nextDirection());
    assertEquals(Direction.DOWN, Direction.RIGHT.nextDirection());
  }

  /**
   * Tests for rand.
   */
  @Test(timeout = 10000)
  public final void testRand() {

    BitSet gotcha = new BitSet(5);
    gotcha.set(0);
    assertThat(gotcha.cardinality(), is(1));
    gotcha.set(2);
    assertThat(gotcha.cardinality(), is(2));
    gotcha.set(1);
    assertThat(gotcha.cardinality(), is(3));
    gotcha.set(3);
    assertThat(gotcha.cardinality(), is(4));
    gotcha.set(4);
    assertThat(gotcha.cardinality(), is(5));

    gotcha = new BitSet(5);
    int val;
    while (gotcha.cardinality() < 4) {
      val = Direction.rand().get();
      gotcha.set(val);
    }

    assertFalse(gotcha.get(0));
  }
 
 

}
TOP

Related Classes of games.stendhal.common.DirectionTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.