Skip to content

Commit

Permalink
Add and adjust tests
Browse files Browse the repository at this point in the history
  • Loading branch information
tammoippen committed Jan 22, 2018
1 parent 10c442c commit b55b723
Show file tree
Hide file tree
Showing 7 changed files with 916 additions and 553 deletions.
2 changes: 1 addition & 1 deletion setup.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import-order-style = google

[tool:pytest]
mock_use_standalone_module = true
mccabe-complexity = 10
mccabe-complexity = 12
addopts = --cov=plotille --flake8 --cov-report=term-missing --mccabe

[bdist_wheel]
Expand Down
59 changes: 59 additions & 0 deletions tests/test_datetime_formatter.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
# -*- coding: utf-8 -*-
from __future__ import absolute_import, division, print_function, unicode_literals

from datetime import datetime, timedelta

from plotille._input_formatter import _convert_datetime, _datetime_formatter
import pytest


@pytest.fixture()
def date():
return datetime(2018, 1, 21, 15, 3, 12, 1234)


@pytest.fixture()
def day():
return timedelta(days=1)


@pytest.fixture()
def hour():
return timedelta(hours=1)


def test_days(date, day):
assert ' 18-01-21' == _datetime_formatter(date, chars=9, delta=day*15)
assert '18-01-21 ' == _datetime_formatter(date, chars=9, delta=day*15, left=True)

assert ' 2018-01-21' == _datetime_formatter(date, chars=12, delta=day*15)
assert '2018-01-21 ' == _datetime_formatter(date, chars=12, delta=day*15, left=True)

with pytest.raises(ValueError):
_datetime_formatter(date, chars=7, delta=day*15)


def test_day_times(date, day):
assert ' 21T15:03' == _datetime_formatter(date, chars=9, delta=day*5)
assert '21T15:03 ' == _datetime_formatter(date, chars=9, delta=day*5, left=True)

assert ' 21T15:03:12' == _datetime_formatter(date, chars=12, delta=day*5)
assert '21T15:03:12 ' == _datetime_formatter(date, chars=12, delta=day*5, left=True)

with pytest.raises(ValueError):
_datetime_formatter(date, chars=7, delta=day*5)


def test_times(date, hour):
assert ' 15:03:12' == _datetime_formatter(date, chars=9, delta=hour*5)
assert '15:03:12 ' == _datetime_formatter(date, chars=9, delta=hour*5, left=True)

assert ' 15:03:12.001234' == _datetime_formatter(date, chars=16, delta=hour*5)
assert '15:03:12.001234 ' == _datetime_formatter(date, chars=16, delta=hour*5, left=True)

with pytest.raises(ValueError):
_datetime_formatter(date, chars=7, delta=hour*5)


def test_converter(date):
assert date.timestamp() == _convert_datetime(date)
670 changes: 335 additions & 335 deletions tests/test_examples.py

Large diffs are not rendered by default.

303 changes: 212 additions & 91 deletions tests/test_figure.py

Large diffs are not rendered by default.

51 changes: 51 additions & 0 deletions tests/test_input_formatter.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
# -*- coding: utf-8 -*-
from __future__ import absolute_import, division, print_function, unicode_literals

from datetime import datetime, timedelta

from plotille._input_formatter import InputFormatter


def test_defaults():
ipf = InputFormatter()

assert ' 1' == ipf.fmt(1, 0)
assert '1 ' == ipf.fmt(1, 0, left=True)

assert 1.0 == ipf.convert(1)

d = datetime(2018, 1, 21, 15, 3, 12, 1234)
t = timedelta(hours=1)

assert ' 15:03:12' == ipf.fmt(d, t)
assert '15:03:12 ' == ipf.fmt(d, t, left=True)

assert d.timestamp() == ipf.convert(d)

# no formatter available
assert 'None' == ipf.fmt(None, 0)
assert 'hello' == ipf.convert('hello')


def test_register():
def bool_fmt(val, chars, delta, left=False):
res = str(val)

if left:
return res.ljust(chars)
else:
return res.rjust(chars)

def bool_cvt(val):
return int(val)

ipf = InputFormatter()
ipf.register_formatter(bool, bool_fmt)

assert ' True' == ipf.fmt(True, chars=6, delta=None)
assert 'True ' == ipf.fmt(True, chars=6, delta=None, left=True)

ipf.register_converter(bool, bool_cvt)

assert 1 == ipf.convert(True)
assert 0 == ipf.convert(False)
132 changes: 132 additions & 0 deletions tests/test_numberformats.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,132 @@
# -*- coding: utf-8 -*-
from __future__ import absolute_import, division, print_function, unicode_literals

from plotille._input_formatter import _num_formatter
import pytest


def test_small_int():
assert ' 13' == _num_formatter(13, chars=10, delta=0)
assert ' 13' == _num_formatter(13.0000, chars=10, delta=0)
assert '13 ' == _num_formatter(13, left=True, chars=10, delta=0)
assert ' 13' == _num_formatter(13, chars=6, delta=0)
assert '123456' == _num_formatter(123456, chars=6, delta=0)


def test_negative_int():
assert ' -13' == _num_formatter(-13, chars=10, delta=0)
assert ' -13' == _num_formatter(-13.0000, chars=10, delta=0)
assert '-13 ' == _num_formatter(-13, left=True, chars=10, delta=0)
assert ' -13' == _num_formatter(-13, chars=6, delta=0)
assert '-123456' == _num_formatter(-123456, chars=7, delta=0)


def test_large_int():
assert '1234567890' == _num_formatter(1234567890, chars=10, delta=0)
assert '1234567890' == _num_formatter(1234567890.0000, chars=10, delta=0)
assert '1234567890' == _num_formatter(1234567890, left=True, chars=10, delta=0)

assert '1.235e+09' == _num_formatter(1234567890, chars=9, delta=0) # round
assert '1.23e+09' == _num_formatter(1234567890, chars=8, delta=0)
assert '1.2e+09' == _num_formatter(1234567890, chars=7, delta=0)
assert ' 1e+09' == _num_formatter(1234567890, chars=6, delta=0)
assert '1e+09' == _num_formatter(1234567890, chars=5, delta=0)

with pytest.raises(ValueError):
_num_formatter(1234567890, chars=4, delta=0)


def test_large_neg_int():
assert '-234567890' == _num_formatter(-234567890, chars=10, delta=0)
assert '-234567890' == _num_formatter(-234567890.0000, chars=10, delta=0)
assert '-234567890' == _num_formatter(-234567890, left=True, chars=10, delta=0)

assert '-1.235e+09' == _num_formatter(-1234567890, chars=10, delta=0) # round
assert '-1.23e+09' == _num_formatter(-1234567890, chars=9, delta=0)
assert '-1.2e+09' == _num_formatter(-1234567890, chars=8, delta=0)
assert ' -1e+09' == _num_formatter(-1234567890, chars=7, delta=0)
assert '-1e+09' == _num_formatter(-1234567890, chars=6, delta=0)

with pytest.raises(ValueError):
_num_formatter(-1234567890, chars=5, delta=0)


def test_very_large_int():
assert '1.235e+123' == _num_formatter(1.234567890e123, chars=10, delta=0)
assert '1.235e+123' == _num_formatter(1.234567890e123, left=True, chars=10, delta=0)

assert '1.23e+123' == _num_formatter(1.234567890e123, chars=9, delta=0)
assert '1.2e+123' == _num_formatter(1.234567890e123, chars=8, delta=0)
assert ' 1e+123' == _num_formatter(1.234567890e123, chars=7, delta=0)
assert '1e+123' == _num_formatter(1.234567890e123, chars=6, delta=0)

with pytest.raises(ValueError):
_num_formatter(1.234567890e123, chars=5, delta=0)


def test_very_large_neg_int():
assert '-2.35e+123' == _num_formatter(-2.34567890e123, chars=10, delta=0)
assert '-2.35e+123' == _num_formatter(-2.34567890e123, left=True, chars=10, delta=0)

assert '-2.3e+123' == _num_formatter(-2.34567890e123, chars=9, delta=0)
assert ' -2e+123' == _num_formatter(-2.34567890e123, chars=8, delta=0)
assert '-2e+123' == _num_formatter(-2.34567890e123, chars=7, delta=0)

with pytest.raises(ValueError):
_num_formatter(-2.34567890e123, chars=6, delta=0)


def test_floats():
assert '1234.56000' == _num_formatter(1234.56, chars=10, delta=0)
assert '123400.560' == _num_formatter(123400.56, chars=10, delta=0)
assert '12340000.6' == _num_formatter(12340000.56, chars=10, delta=0) # round
assert ' 123400001' == _num_formatter(123400000.56, chars=10, delta=0)
assert '1234000001' == _num_formatter(1234000000.56, chars=10, delta=0)
assert '1.2340e+10' == _num_formatter(12340000004.56, chars=10, delta=0)


def test_neg_floats():
assert '-1234.5600' == _num_formatter(-1234.56, chars=10, delta=0)
assert '-123400.56' == _num_formatter(-123400.56, chars=10, delta=0)
assert ' -12340001' == _num_formatter(-12340000.56, chars=10, delta=0) # round
assert '-123400001' == _num_formatter(-123400000.56, chars=10, delta=0)
assert '-1.234e+09' == _num_formatter(-1234000004.56, chars=10, delta=0)


def test_small_floats():
assert '0.12345600' == _num_formatter(0.123456, chars=10, delta=0)
assert '0.01234560' == _num_formatter(0.0123456, chars=10, delta=0)
assert '0.00123456' == _num_formatter(0.00123456, chars=10, delta=0)
assert '0.00012346' == _num_formatter(0.000123456, chars=10, delta=0)
assert '1.2346e-05' == _num_formatter(0.0000123456, chars=10, delta=0)


def test_small_neg_floats():
assert '-0.1234560' == _num_formatter(-0.123456, chars=10, delta=0)
assert '-0.0123456' == _num_formatter(-0.0123456, chars=10, delta=0)
assert '-0.0012346' == _num_formatter(-0.00123456, chars=10, delta=0)
assert '-0.0001235' == _num_formatter(-0.000123456, chars=10, delta=0)
assert '-1.235e-05' == _num_formatter(-0.0000123456, chars=10, delta=0)


def test_edge():
assert ' 1' == _num_formatter(1.0, chars=10, delta=0)
assert ' -1' == _num_formatter(-1.0, chars=10, delta=0)
assert '1 ' == _num_formatter(1.0, left=True, chars=10, delta=0)
assert '-1 ' == _num_formatter(-1.0, left=True, chars=10, delta=0)

assert ' 0' == _num_formatter(0, chars=10, delta=0)
assert ' 0' == _num_formatter(0.0, chars=10, delta=0)
assert '0 ' == _num_formatter(-0, left=True, chars=10, delta=0)
assert '0 ' == _num_formatter(-0.0, left=True, chars=10, delta=0)

assert ' 0' == _num_formatter(1e-1234, chars=10, delta=0)
assert '0 ' == _num_formatter(-1e-1234, left=True, chars=10, delta=0)

assert ' inf' == _num_formatter(2.1e1234, chars=10, delta=0)
assert ' -inf' == _num_formatter(-2.1e1234, chars=10, delta=0)
assert 'inf ' == _num_formatter(2.1e1234, chars=10, left=True, delta=0)
assert '-inf ' == _num_formatter(-2.1e1234, chars=10, left=True, delta=0)

with pytest.raises(ValueError):
_num_formatter('hello', chars=10, delta=0)

0 comments on commit b55b723

Please sign in to comment.