def test_defaults(rows, columns, panelwidth, panelheight): """All default settings.""" l = PanelSizeLocator(rows, columns, panelwidth, panelheight) figwidth, figheight = l.figsize_in('mm') assert figwidth == panelwidth * columns assert figheight == panelheight * rows check_panels_in_figure(l)
def test_iterate_column_major(rows, columns): l = PanelSizeLocator(rows, columns, 1, 1) dx = 1. / columns dy = 1. / rows for n, pp in enumerate(l.panel_position_iterator(order='column')): assert almost_equal((n // rows) * dx, pp[0]) assert almost_equal(1 - (n % rows + 1) * dy, pp[1])
def test_default_positioning(rows, columns, panelwidth, panelheight, units): """Default positioning settings with specified units.""" l = PanelSizeLocator(rows, columns, panelwidth, panelheight, units=units) figwidth, figheight = l.figsize_in(units) assert l.rows == rows assert l.columns == columns assert figwidth == panelwidth * columns assert figheight == panelheight * rows check_panels_in_figure(l)
def test_with_vsep(rows, columns, panelwidth, panelheight, vsep, units): """Positioning with vertical separation.""" l = PanelSizeLocator(rows, columns, panelwidth, panelheight, vsep=vsep, units=units) figwidth, figheight = l.figsize_in(units) assert figwidth == columns * panelwidth assert figheight == vsep * (rows - 1) + rows * panelheight check_panels_in_figure(l)
def test_with_hsep(rows, columns, panelwidth, panelheight, hsep, units): """Positioning with horizontal separation.""" l = PanelSizeLocator(rows, columns, panelwidth, panelheight, hsep=hsep, units=units) figwidth, figheight = l.figsize_in(units) assert figwidth == hsep * (columns - 1) + columns * panelwidth assert figheight == rows * panelheight check_panels_in_figure(l)
def test_with_padtop(rows, columns, panelwidth, panelheight, padtop, units): """Positioning with top edge padding.""" l = PanelSizeLocator(rows, columns, panelwidth, panelheight, padtop=padtop, units=units) figwidth, figheight = l.figsize_in(units) assert figwidth == columns * panelwidth assert figheight == rows * panelheight + padtop check_panels_in_figure(l)
def test_with_padleft(rows, columns, panelwidth, panelheight, padleft, units): """Positioning with left side padding.""" l = PanelSizeLocator(rows, columns, panelwidth, panelheight, padleft=padleft, units=units) figwidth, figheight = l.figsize_in(units) assert figwidth == columns * panelwidth + padleft assert figheight == rows * panelheight check_panels_in_figure(l)
def test_with_pad(rows, columns, panelwidth, panelheight, padleft, padright, padtop, padbottom, units): """Positioning with padding on all sides.""" l = PanelSizeLocator(rows, columns, panelwidth, panelheight, padleft=padleft, padright=padright, padtop=padtop, padbottom=padbottom, units=units) figwidth, figheight = l.figsize_in(units) assert figwidth == padleft + columns * panelwidth + padright assert figheight == padtop + rows * panelheight + padbottom check_panels_in_figure(l)
def test_with_pad_and_sep(rows, columns, panelwidth, panelheight, hsep, vsep, padleft, padright, padtop, padbottom, units): """Positioning with both padding and separation.""" l = PanelSizeLocator(rows, columns, panelwidth, panelheight, hsep=hsep, vsep=vsep, padleft=padleft, padright=padright, padtop=padtop, padbottom=padbottom, units=units) figwidth, figheight = l.figsize_in(units) assert figwidth == (padleft + columns * panelwidth + (columns - 1) * hsep + padright) assert figheight == (padtop + rows * panelheight + (rows - 1) * vsep + padbottom) check_panels_in_figure(l)