Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
chaco / scales / tests / test_formatters.py
Size: Mime:
import unittest

from chaco.scales.formatters import strftimeEx, TimeFormatter


#----------------------------------------------------------------
# strftimeEx tests
#----------------------------------------------------------------

class TestStrftimeEx(unittest.TestCase):

    def test_strftimeEx_01(self):
        t = 0.123
        fmt = "%(ms)"
        result = strftimeEx(fmt, t)
        self.assertEqual(result, "123")

    def test_strftimeEx_02(self):
        t = 0.123456
        fmt = "%(us)"
        result = strftimeEx(fmt, t)
        self.assertEqual(result, "456")

    def test_strftimeEx_03(self):
        t = 0.678910
        fmt = "%(ms)"
        # According to the code, the number that replaces (ms) is *rounded*,
        # so this formt should give "679".
        result = strftimeEx(fmt, t)
        self.assertEqual(result, "679")

    def test_strftimeEx_04(self):
        t = 0.678910
        fmt = "%(ms).%(us)ms"
        # According to the code, the number that replaces (ms) is *rounded*,
        # so this formt should give "679.910ms".  (See the next test case for the
        # correct way to do this.)
        result = strftimeEx(fmt, t)
        expected = "679.910ms"
        self.assertEqual(result, expected)

    def test_strftimeEx_04(self):
        t = 0.678910
        fmt = "%(ms_).%(us)ms"
        # The format "%(ms_)" uses floor().
        result = strftimeEx(fmt, t)
        expected = "678.910ms"
        self.assertEqual(result, expected)

    def test_strftimeEx_05(self):
        # Test rounding that affects the seconds.
        t = 7.9999999
        fmt = "%S %(ms_) %(us)"
        result = strftimeEx(fmt, t)
        expected = "08 000 000"
        self.assertEqual(result, expected)

    def test_strftimeEx_06(self):
        # Test rounding that affects the seconds.
        t = 7.9996
        fmt = "%S %(ms)"
        result = strftimeEx(fmt, t)
        expected = "08 000"
        self.assertEqual(result, expected)

    def test_strftimeEx_07(self):
        # Test rounding that affects the seconds.
        t = 7.9996
        fmt = "%S %(ms_)"
        result = strftimeEx(fmt, t)
        expected = "07 999"
        self.assertEqual(result, expected)

#----------------------------------------------------------------
# TimeFormatter tests
#----------------------------------------------------------------

class TestTimeFormatter(unittest.TestCase):

    def test_time_formatter_01(self):
        tf = TimeFormatter()
        ticks = [10.005, 10.0053, 10.0056]
        labels = tf.format(ticks, char_width=130)
        expected = ["5.000ms", "5.300ms", "5.600ms"]
        self.assertEqual(labels, expected)