text: from unittest import SkipTest
  
  from param import concrete_descendents
  
  from holoviews.core.options import Store
  from holoviews.element.comparison import ComparisonTestCase
  import pyviz_comms as comms
  
  try:
      from holoviews.plotting.mpl.element import ElementPlot
      import matplotlib.pyplot as plt
      mpl_renderer = Store.renderers['matplotlib']
  except:
      mpl_renderer = None
  
  from .. import option_intersections
  
  
  class TestPlotDefinitions(ComparisonTestCase):
  
      known_clashes = [(('Arrow',), {'fontsize'})]
  
      def test_matplotlib_plot_definitions(self):
          self.assertEqual(option_intersections('matplotlib'), self.known_clashes)
  
  
  class TestMPLPlot(ComparisonTestCase):
  
      def setUp(self):
          self.previous_backend = Store.current_backend
          self.comm_manager = mpl_renderer.comm_manager
          mpl_renderer.comm_manager = comms.CommManager
          if not mpl_renderer:
              raise SkipTest("Matplotlib required to test plot instantiation")
          Store.current_backend = 'matplotlib'
          self._padding = {}
          for plot in concrete_descendents(ElementPlot).values():
              self._padding[plot] = plot.padding
              plot.padding = 0
  
      def tearDown(self):
          Store.current_backend = self.previous_backend
          mpl_renderer.comm_manager = self.comm_manager
          plt.close(plt.gcf())
          for plot, padding in self._padding.items():
              plot.padding = padding
  