### Question:
MoveGestureDetector extends ProgressiveGesture<MoveGestureDetector.OnMoveGestureListener> { @Override protected boolean analyzeMovement() { super.analyzeMovement(); updateMoveDistancesObjects(); if (isInProgress()) { PointF currentFocalPoint = getFocalPoint(); lastDistanceX = previousFocalPoint.x - currentFocalPoint.x; lastDistanceY = previousFocalPoint.y - currentFocalPoint.y; previousFocalPoint = currentFocalPoint; if (resetFocal) { resetFocal = false; return listener.onMove(this, 0, 0); } return listener.onMove(this, lastDistanceX, lastDistanceY); } else if (canExecute(GESTURE_TYPE_MOVE)) { if (listener.onMoveBegin(this)) { gestureStarted(); previousFocalPoint = getFocalPoint(); resetFocal = false; return true; } } return false; } MoveGestureDetector(Context context, AndroidGesturesManager gesturesManager); float getMoveThreshold(); void setMoveThreshold(float moveThreshold); @Nullable RectF getMoveThresholdRect(); void setMoveThresholdRect(@Nullable RectF moveThresholdRect); void setMoveThresholdResource(@DimenRes int moveThresholdDimen); float getLastDistanceX(); float getLastDistanceY(); MoveDistancesObject getMoveObject(int pointerIndex);  }### Answer:
@Test public void analyzeMovementTest() { doReturn(true).when(listener).onMoveBegin(gestureDetector); doReturn(true).when(gestureDetector).checkAnyMoveAboveThreshold(); gestureDetector.analyzeMovement(); gestureDetector.analyzeMovement(); gestureDetector.gestureStopped(); verify(listener, times(1)).onMoveBegin(gestureDetector); verify(listener, times(1)).onMove(gestureDetector, 0, 0); verify(listener, times(1)).onMoveEnd( gestureDetector, gestureDetector.velocityX, gestureDetector.velocityY); }