pygo/gomill/gomill_tests/utils_tests.py

64 lines
2.1 KiB
Python
Raw Normal View History

"""Tests for utils.py."""
from gomill_tests import gomill_test_support
from gomill import utils
def make_tests(suite):
suite.addTests(gomill_test_support.make_simple_tests(globals()))
def test_format_float(tc):
ff = utils.format_float
tc.assertEqual(ff(1), "1")
tc.assertEqual(ff(1.0), "1")
tc.assertEqual(ff(1.5), "1.5")
def test_format_percent(tc):
pct = utils.format_percent
tc.assertEqual(pct(1, 1), "100.00%")
tc.assertEqual(pct(1, 2), "50.00%")
tc.assertEqual(pct(1.0, 2.0), "50.00%")
tc.assertEqual(pct(1, 3), "33.33%")
tc.assertEqual(pct(0, 3), "0.00%")
tc.assertEqual(pct(2, 0), "??")
tc.assertEqual(pct(0, 0), "--")
def test_sanitise_utf8(tc):
su = utils.sanitise_utf8
tc.assertIsNone(su(None))
tc.assertEqual(su(""), "")
tc.assertEqual(su("hello world"), "hello world")
s = u"test \N{POUND SIGN}".encode("utf-8")
tc.assertIs(su(s), s)
tc.assertEqual(su(u"test \N{POUND SIGN}".encode("latin1")), "test ?")
def test_isinf(tc):
tc.assertIs(utils.isinf(0), False)
tc.assertIs(utils.isinf(0.0), False)
tc.assertIs(utils.isinf(3), False)
tc.assertIs(utils.isinf(3.0), False)
tc.assertIs(utils.isinf(1e300), False)
tc.assertIs(utils.isinf(1e400), True)
tc.assertIs(utils.isinf(-1e300), False)
tc.assertIs(utils.isinf(-1e400), True)
tc.assertIs(utils.isinf(1e-300), False)
tc.assertIs(utils.isinf(1e-400), False)
tc.assertIs(utils.isinf(float("inf")), True)
tc.assertIs(utils.isinf(float("-inf")), True)
tc.assertIs(utils.isinf(float("NaN")), False)
def test_nan(tc):
tc.assertIs(utils.isnan(0), False)
tc.assertIs(utils.isnan(0.0), False)
tc.assertIs(utils.isnan(1e300), False)
tc.assertIs(utils.isnan(1e400), False)
tc.assertIs(utils.isnan(-1e300), False)
tc.assertIs(utils.isnan(-1e400), False)
tc.assertIs(utils.isnan(1e-300), False)
tc.assertIs(utils.isnan(1e-400), False)
tc.assertIs(utils.isnan(float("inf")), False)
tc.assertIs(utils.isnan(float("-inf")), False)
tc.assertIs(utils.isnan(float("NaN")), True)