@ContinuousIntegrationTest(
      estimatedDuration = 50.0,
      categoriesOverride = IntegrationCategory.EXCLUDE)
  @Test(timeout = 300000)
  public void testWalkForwardsX() throws SimulationExceededMaximumTimeException {
    BambooTools.reportTestStartedMessage(simulationTestingParameters.getShowWindows());
    boolean success = drcSimulationTestHelper.simulateAndBlockAndCatchExceptions(1.0);
    assertTrue(success);

    double walkDistance = RandomTools.generateRandomDouble(new Random(), 1.0, 2.0);
    Vector2d walkDirection = new Vector2d(1, 0);
    double trajectoryTime = walkDistance / ASSUMED_WALKING_SPEED_mPerSec;

    WalkToGoalBehavior walkToGoalBehavior =
        testWalkToGoalBehavior(walkDistance, walkDirection, trajectoryTime);

    assertTrue(walkToGoalBehavior.isDone());

    BambooTools.reportTestFinishedMessage(simulationTestingParameters.getShowWindows());
  }
  @Ignore("Needs to be improved")
  @ContinuousIntegrationTest(estimatedDuration = 67.1)
  @Test(timeout = 340000)
  public void testMultiStepForwardAndContinueWalking()
      throws SimulationExceededMaximumTimeException, InterruptedException,
          ControllerFailureException {
    BambooTools.reportTestStartedMessage(simulationTestingParameters.getShowWindows());
    setupTest(getRobotModel());
    SimulationConstructionSet scs = drcFlatGroundWalkingTrack.getSimulationConstructionSet();
    setForwardPushParameters();
    Vector3d forceDirection = new Vector3d(1.0, 0.0, 0.0);
    blockingSimulationRunner = new BlockingSimulationRunner(scs, 1000.0);
    BooleanYoVariable walk =
        (BooleanYoVariable) scs.getVariable("ComponentBasedFootstepDataMessageGenerator", "walk");

    // disable walking
    walk.set(false);
    blockingSimulationRunner.simulateAndBlock(4.0);

    // push the robot
    pushRobotController.applyForceDelayed(
        pushCondition, PUSH_DELAY, forceDirection, forceMagnitude, forceDuration);

    // simulate for a little while longer
    blockingSimulationRunner.simulateAndBlock(forceDuration + 6.0);

    // re-enable walking
    walk.set(true);
    blockingSimulationRunner.simulateAndBlock(6.0);

    Point3d center = new Point3d(0.0, 0.0, 0.8882009563211146);
    Vector3d plusMinusVector =
        new Vector3d(Double.POSITIVE_INFINITY, Double.POSITIVE_INFINITY, 0.5);
    BoundingBox3d boundingBox =
        BoundingBox3d.createUsingCenterAndPlusMinusVector(center, plusMinusVector);
    DRCSimulationTestHelper.assertRobotsRootJointIsInBoundingBox(
        boundingBox, drcFlatGroundWalkingTrack.getDrcSimulation().getRobot());

    createVideo(scs);
    BambooTools.reportTestFinishedMessage(simulationTestingParameters.getShowWindows());
  }