### Question:
BandSelectionHelper implements OnItemTouchListener { @VisibleForTesting boolean shouldStop(@NonNull MotionEvent e) { return isActive() && (MotionEvents.isActionUp(e) || MotionEvents.isActionPointerUp(e) || MotionEvents.isActionCancel(e)); } BandSelectionHelper(
            @NonNull BandHost host,
            @NonNull AutoScroller scroller,
            @NonNull ItemKeyProvider<K> keyProvider,
            @NonNull SelectionTracker<K> selectionTracker,
            @NonNull BandPredicate bandPredicate,
            @NonNull FocusDelegate<K> focusDelegate,
            @NonNull OperationMonitor lock); @Override boolean onInterceptTouchEvent(@NonNull RecyclerView unused, @NonNull MotionEvent e); @Override void onTouchEvent(@NonNull RecyclerView unused, @NonNull MotionEvent e); @Override void onRequestDisallowInterceptTouchEvent(boolean disallowIntercept);  }### Answer:
@Test public void testGoodStop() { mIsActive = true; assertTrue(mBandController.shouldStop(mStopEvent)); }
@Test public void testGoodStop_PointerUp() { mIsActive = true; assertTrue(mBandController .shouldStop(mStopBuilder.action(MotionEvent.ACTION_POINTER_UP).build())); }
@Test public void testGoodStop_Cancel() { mIsActive = true; assertTrue(mBandController .shouldStop(mStopBuilder.action(MotionEvent.ACTION_CANCEL).build())); }
@Test public void testBadStop_NotActive() { assertFalse(mBandController.shouldStop(mStopEvent)); }
@Test public void testBadStop_Move() { mIsActive = true; assertFalse(mBandController.shouldStop( mStopBuilder.action(MotionEvent.ACTION_MOVE).touch().build())); }
@Test public void testBadStop_Down() { mIsActive = true; assertFalse(mBandController.shouldStop( mStopBuilder.action(MotionEvent.ACTION_DOWN).touch().build())); }