2018-07-16 06:38:57 +00:00
|
|
|
from unittest.mock import patch
|
|
|
|
|
|
|
|
import pytest
|
|
|
|
|
|
|
|
from ovgenpy.renderer import RendererConfig, MatplotlibRenderer
|
|
|
|
|
|
|
|
|
|
|
|
WIDTH = 640
|
|
|
|
HEIGHT = 360
|
|
|
|
|
|
|
|
def test_config():
|
|
|
|
with pytest.raises(ValueError):
|
|
|
|
RendererConfig(WIDTH, HEIGHT, nrows=1, ncols=1)
|
|
|
|
|
|
|
|
one_col = RendererConfig(WIDTH, HEIGHT, ncols=1)
|
|
|
|
assert one_col
|
|
|
|
|
|
|
|
one_row = RendererConfig(WIDTH, HEIGHT, nrows=1)
|
|
|
|
assert one_row
|
|
|
|
|
|
|
|
default = RendererConfig(WIDTH, HEIGHT)
|
|
|
|
assert default.ncols == 1 # Should default to single-column layout
|
|
|
|
assert default.nrows is None
|
|
|
|
|
|
|
|
|
|
|
|
@patch("ovgenpy.renderer.plt.show")
|
|
|
|
def test_renderer(mock_show):
|
|
|
|
"""
|
|
|
|
TODO check image output using:
|
|
|
|
https://matplotlib.org/devel/testing.html#writing-an-image-comparison-test
|
|
|
|
|
|
|
|
https://stackoverflow.com/a/27950953
|
|
|
|
"[I]mage comparison tests end up bring more trouble than they are worth"
|
|
|
|
"""
|
|
|
|
|
|
|
|
# 2 columns
|
|
|
|
cfg = RendererConfig(WIDTH, HEIGHT, ncols=2)
|
|
|
|
nplots = 16
|
|
|
|
|
|
|
|
r = MatplotlibRenderer(cfg, nplots)
|
|
|
|
|
|
|
|
# 2 columns, 8 rows
|
|
|
|
assert r.ncols == 2
|
|
|
|
assert r.nrows == 8
|
2018-07-22 09:06:10 +00:00
|
|
|
|
|
|
|
|
|
|
|
# TODO: test get_frame()
|
|
|
|
# (integration test) ensure rendering to output works
|