Venn2 :: Functional Tests

NB: The code in this notebook is invoked from within the functional_test.py test suite.


In [1]:
from matplotlib_venn import venn2
from tests.utils import verify_diagram

In [2]:
# The "usual" case
v = venn2((1, 1, 1))
test_points = {'11': [(0, 0), (-0.2, 0), (0.2, 0), (0, 0.3), (0, -0.3)],
               '10': [(-0.4, 0), (-0.6, 0), (-0.4, 0.3), (-0.4, -0.3), (-0.2, 0.3), (-0.2, -0.3)],
               '01': [(0.4, 0), (0.6, 0), (0.4, 0.3), (0.4, -0.3), (0.2, 0.3), (0.2, -0.3)]}
verify_diagram(v, test_points)



In [3]:
# The 0-0-0 case
v = venn2((0, 0, 0))
test_points = {'11': None,
               '10': [v.centers[0,:]],
               '01': [v.centers[1,:]]}
verify_diagram(v, test_points)


c:\users\konstantin\desktop\current\workspace\ipy\pythonstuff\matplotlib-venn\matplotlib_venn\_venn2.py:48: UserWarning: Both circles have zero area
  warnings.warn("Both circles have zero area")

In [4]:
# The intersection-only case
v = venn2((0, 0, 1))
test_points = {'10': [], '01': [],
               '11': [(i*0.25, 0) for i in range(-2, 3)] + [(0, i*0.25) for i in range(-2, 3)]}
verify_diagram(v, test_points)



In [5]:
# The one set-only case
v = venn2((0, 1, 0))
test_points = {'10': [v.centers[0,:]], '11': None,
               '01': [(i*0.25, 0) for i in range(-2, 3)] + [(0, i*0.25) for i in range(-2, 3)],
               '': [(-0.7, 0)]}
verify_diagram(v, test_points)



In [6]:
# Same as above, reversed
v = venn2((1, 0, 0))
test_points = {'01': [v.centers[1,:]], '11': None,
               '10': [(i*0.25, 0) for i in range(-2, 3)] + [(0, i*0.25) for i in range(-2, 3)],
               '': [(0.7, 0)]}
verify_diagram(v, test_points)



In [7]:
# One set completely inside the other
v = venn2((0, 1, 1))
test_points = {'10': [],
               '11': [(-0.5, 0), (-0.25, 0), (0, 0), (0.25, 0), (-0.25, 0.3), (-0.25, -0.3), (0, -0.3), (0, 0.3)],
               '01': [(0.3, 0), (0.5, 0), (0, 0.5), (0, -0.5), (0.25, 0.3), (0.25, -0.3)],
               '': [(-0.6, 0), (0.7, 0)]}
verify_diagram(v, test_points)



In [8]:
# Same as above, reversed
v = venn2((1, 0, 1))
test_points = {'01': [],
               '11': [(0.5, 0), (0.25, 0), (0, 0), (-0.25, 0), (0.25, 0.3), (0.25, -0.3), (0, -0.3), (0, 0.3)],
               '10': [(-0.3, 0), (-0.5, 0), (0, 0.5), (0, -0.5), (-0.25, 0.3), (-0.25, -0.3)],
               '': [(0.6, 0), (-0.7, 0)]}
verify_diagram(v, test_points)



In [9]:
# Two separate sets
v = venn2((1, 1, 0))
test_points = {'10': [(-0.3, 0), (-0.6, 0), (-0.9, 0), (-0.6, 0.3), (-0.6, -0.3)],
               '11': None,
               '01': [(0.3, 0), (0.6, 0), (0.9, 0), (0.6, 0.3), (0.6, -0.3)],
               '': [(0, 0), (-1.1, 0), (1.1, 0)]}
verify_diagram(v, test_points)