### Question:
Explode extends Visibility { public Explode() { setPropagation(new CircularPropagation()); } Explode();  Explode(Context context, AttributeSet attrs); @Override void captureStartValues(@NonNull TransitionValues transitionValues); @Override void captureEndValues(@NonNull TransitionValues transitionValues); @Override Animator onAppear(ViewGroup sceneRoot, View view,
            TransitionValues startValues, TransitionValues endValues); @Override Animator onDisappear(ViewGroup sceneRoot, View view,
            TransitionValues startValues, TransitionValues endValues);  }### Answer:
@Test public void testExplode() throws Throwable { enterScene(R.layout.scene10); final View redSquare = rule.getActivity().findViewById(R.id.redSquare); final View greenSquare = rule.getActivity().findViewById(R.id.greenSquare); final View blueSquare = rule.getActivity().findViewById(R.id.blueSquare); final View yellowSquare = rule.getActivity().findViewById(R.id.yellowSquare); rule.runOnUiThread(new Runnable() { @Override public void run() { TransitionManager.beginDelayedTransition(mRoot, mTransition); redSquare.setVisibility(View.INVISIBLE); greenSquare.setVisibility(View.INVISIBLE); blueSquare.setVisibility(View.INVISIBLE); yellowSquare.setVisibility(View.INVISIBLE); } }); waitForStart(); verify(mListener, never()).onTransitionEnd(any(Transition.class)); assertEquals(View.VISIBLE, redSquare.getVisibility()); assertEquals(View.VISIBLE, greenSquare.getVisibility()); assertEquals(View.VISIBLE, blueSquare.getVisibility()); assertEquals(View.VISIBLE, yellowSquare.getVisibility()); float redStartX = redSquare.getTranslationX(); float redStartY = redSquare.getTranslationY(); SystemClock.sleep(100); verifyTranslation(redSquare, true, true); verifyTranslation(greenSquare, false, true); verifyTranslation(blueSquare, false, false); verifyTranslation(yellowSquare, true, false); assertThat(redStartX, is(greaterThan(redSquare.getTranslationX()))); assertThat(redStartY, is(greaterThan(redSquare.getTranslationY()))); waitForEnd(); verifyNoTranslation(redSquare); verifyNoTranslation(greenSquare); verifyNoTranslation(blueSquare); verifyNoTranslation(yellowSquare); assertEquals(View.INVISIBLE, redSquare.getVisibility()); assertEquals(View.INVISIBLE, greenSquare.getVisibility()); assertEquals(View.INVISIBLE, blueSquare.getVisibility()); assertEquals(View.INVISIBLE, yellowSquare.getVisibility()); }