/******************************************************************************* * Copyright (c) 2001, 2010 Mathew A. Nelson and Robocode contributors * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://robocode.sourceforge.net/license/epl-v10.html * * Contributors: * Flemming N. Larsen * - Initial implementation *******************************************************************************/ package net.sf.robocode.test.robotscs; import net.sf.robocode.test.helpers.Assert; import net.sf.robocode.test.helpers.RobocodeTestBed; import robocode.control.events.TurnEndedEvent; import robocode.util.Utils; /** * @author Flemming N. Larsen (original) */ public class TestMaxVelocity extends RobocodeTestBed { @Override public String getRobotNames() { return "tested.robotscs.MaxVelocity,SampleCs.Target"; } @Override public String getInitialPositions() { return "(50,50,0), (600,50,0)"; // Make sure the robots do not collide! } @Override public void onTurnEnded(TurnEndedEvent event) { super.onTurnEnded(event); final int time = (int) event.getTurnSnapshot().getTurn(); final double velocity = event.getTurnSnapshot().getRobots()[0].getVelocity(); switch (time) { case 10: case 20: case 100: Assert.assertTrue(Utils.isNear(velocity, 8)); break; case 32: case 40: case 120: Assert.assertTrue(Utils.isNear(velocity, -8)); break; case 50: case 60: Assert.assertTrue(Utils.isNear(velocity, 4.2)); break; case 70: case 80: Assert.assertTrue(Utils.isNear(velocity, -4.2)); break; case 130: case 140: Assert.assertTrue(Utils.isNear(velocity, 2)); break; case 150: case 160: Assert.assertTrue(Utils.isNear(velocity, -2)); break; case 170: case 180: case 190: case 199: Assert.assertTrue(Utils.isNear(velocity, 0)); break; } } }