File: C:/Users/fred/anaconda3/Lib/site-packages/holoviews/tests/element/test_comparisoncomposite.py
"""
Test cases for the Comparisons class over the composite types:
Layout (the + operator)
Overlay (the * operator)
HoloMaps are not tested in this file.
"""
from holoviews import Element
from holoviews.element.comparison import ComparisonTestCase
class CompositeComparisonTestCase(ComparisonTestCase):
def setUp(self):
self.el1 = Element('data1')
self.el2 = Element('data2')
self.el3 = Element('data3')
self.el4 = Element('data5', group='ValB')
self.el5 = Element('data6', label='LabelA')
#========================#
# Tests for layout trees #
#========================#
def test_layouttree_comparison_equal(self):
t1 = self.el1 + self.el2
t2 = self.el1 + self.el2
self.assertEqual(t1, t2)
def test_layouttree_comparison_equal_large(self):
t1 = self.el1 + self.el2 + self.el4 + self.el5
t2 = self.el1 + self.el2 + self.el4 + self.el5
self.assertEqual(t1, t2)
def test_layouttree_comparison_unequal_data(self):
t1 = self.el1 + self.el2
t2 = self.el1 + self.el3
try:
self.assertEqual(t1, t2)
except AssertionError as e:
self.assertEqual(str(e),"'data2' != 'data3'")
def test_layouttree_comparison_unequal_paths(self):
t1 = self.el1 + self.el2
t2 = self.el1 + self.el2.relabel(group='ValA')
try:
self.assertEqual(t1, t2)
except AssertionError as e:
self.assertEqual(str(e), 'Layouts have mismatched paths.')
def test_layouttree_comparison_unequal_sizes(self):
t1 = self.el1 + self.el2
t2 = self.el1 + self.el2 + self.el3
try:
self.assertEqual(t1, t2)
except AssertionError as e:
self.assertEqual(str(e), 'Layouts have mismatched path counts.')
#=============================#
# Matching tests for Overlays #
#=============================#
def test_overlay_comparison_equal(self):
t1 = self.el1 * self.el2
t2 = self.el1 * self.el2
self.assertEqual(t1, t2)
def test_overlay_comparison_equal_large(self):
t1 = self.el1 * self.el2 * self.el3 * self.el4
t2 = self.el1 * self.el2 * self.el3 * self.el4
self.assertEqual(t1, t2)
def test_overlay_comparison_unequal_data(self):
t1 = self.el1 * self.el2
t2 = self.el1 * self.el3
try:
self.assertEqual(t1, t2)
except AssertionError as e:
self.assertEqual(str(e),"'data2' != 'data3'")
def test_overlay_comparison_unequal_paths(self):
t1 = self.el1 * self.el2
t2 = self.el1 * self.el2.relabel(group='ValA')
try:
self.assertEqual(t1, t2)
except AssertionError as e:
self.assertEqual(str(e), 'Overlays have mismatched paths.')
def test_overlay_comparison_unequal_sizes(self):
t1 = self.el1 * self.el2
t2 = self.el1 * self.el2 * self.el3
try:
self.assertEqual(t1, t2)
except AssertionError as e:
self.assertEqual(str(e), 'Overlays have mismatched path counts.')
#==================================#
# Mixed composite comparison tests #
#==================================#
def test_composite_comparison_equal(self):
t1 = (self.el1 * self.el2) + (self.el1 * self.el2)
t2 = (self.el1 * self.el2) + (self.el1 * self.el2)
self.assertEqual(t1, t2)
def test_composite_unequal_data(self):
t1 = (self.el1 * self.el2) + (self.el1 * self.el2)
t2 = (self.el1 * self.el2) + (self.el1 * self.el3)
try:
self.assertEqual(t1, t2)
except AssertionError as e:
self.assertEqual(str(e), "'data2' != 'data3'")
def test_composite_unequal_paths_outer(self):
t1 = (self.el1 * self.el2) + (self.el1 * self.el2).relabel(group='ValA')
t2 = (self.el1 * self.el2) + (self.el1 * self.el3)
try:
self.assertEqual(t1, t2)
except AssertionError as e:
self.assertEqual(str(e), 'Layouts have mismatched paths.')
def test_composite_unequal_paths_inner(self):
t1 = (self.el1 * self.el2) + (self.el1 * self.el2.relabel(group='ValA'))
t2 = (self.el1 * self.el2) + (self.el1 * self.el3)
try:
self.assertEqual(t1, t2)
except AssertionError as e:
self.assertEqual(str(e), 'Overlays have mismatched paths.')
def test_composite_unequal_sizes(self):
t1 = (self.el1 * self.el2) + (self.el1 * self.el2) + self.el3
t2 = (self.el1 * self.el2) + (self.el1 * self.el2)
try:
self.assertEqual(t1, t2)
except AssertionError as e:
self.assertEqual(str(e), 'Layouts have mismatched path counts.')