Пример #1
0
  @Override
  public void onTurnEnded(TurnEndedEvent event) {
    super.onTurnEnded(event);
    turnNumber = event.getTurnSnapshot().getTurn();

    IRobotSnapshot rate = event.getTurnSnapshot().getRobots()[0];

    // Test turnRate
    if (turnNumber == 10) {
      Assert.assertNear(Math.PI / 4, normalRelativeAngle(rate.getBodyHeading() - originalHeading));
    }
    if (turnNumber == 20) {
      Assert.assertNear(-Math.PI / 4, normalRelativeAngle(rate.getBodyHeading() - originalHeading));
    }
    if (turnNumber == 25) {
      // Test that turnRate was set to zero
      Assert.assertNear(-Math.PI / 4, normalRelativeAngle(rate.getBodyHeading() - originalHeading));

      // Test velocityRate
      double theta = rate.getBodyHeading();
      double deltaX = rate.getX() - originalX;
      double distanceTravelled = deltaX / Math.sin(theta);

      Assert.assertNear(9, distanceTravelled);
    }
    if (turnNumber == 35) {
      double theta = rate.getBodyHeading();
      double deltaX = rate.getX() - originalX;
      double distanceTravelled = deltaX / Math.sin(theta);

      Assert.assertNear(-35, distanceTravelled);
      originalGunHeading = rate.getGunHeading();
    }
    if (turnNumber == 45) {
      // Test that velocityRate was set to zero
      double theta = rate.getBodyHeading();
      double deltaX = rate.getX() - originalX;
      double distanceTravelled = deltaX / Math.sin(theta);

      Assert.assertNear(-47, distanceTravelled);

      // test gunRotationRate
      Assert.assertNear(
          Math.PI / 2, normalRelativeAngle(rate.getGunHeading() - originalGunHeading));
    }
    if (turnNumber == 55) {
      Assert.assertNear(
          Math.PI / 4, normalRelativeAngle(rate.getGunHeading() - originalGunHeading));
      originalRadarHeading = rate.getRadarHeading();
    }

    if (turnNumber == 65) {
      // test that gunRotationRate was set to zero
      Assert.assertNear(
          Math.PI / 4, normalRelativeAngle(rate.getGunHeading() - originalGunHeading));

      // test radarRotationRate
      Assert.assertNear(
          Math.PI / 2, normalRelativeAngle(rate.getRadarHeading() - originalRadarHeading));
    }
    if (turnNumber == 75) {
      Assert.assertNear(
          Math.PI / 4, normalRelativeAngle(rate.getRadarHeading() - originalRadarHeading));
    }
    if (turnNumber == 76) {
      // test that radarRotationRate was set to zero
      Assert.assertNear(
          Math.PI / 4, normalRelativeAngle(rate.getRadarHeading() - originalRadarHeading));
    }
  }