from common import *

from trezor import strings


class TestStrings(unittest.TestCase):

    def test_format_amount(self):
        VECTORS = [
            (123456, 3, "123.456"),
            (4242, 7, "0.0004242"),
            (-123456, 3, "-123.456"),
            (-4242, 7, "-0.0004242"),
        ]
        for v in VECTORS:
            self.assertEqual(strings.format_amount(v[0], v[1]), v[2])

    def test_format_plural(self):
        VECTORS = [
            ("We need {count} more {plural}", 3, "share", "We need 3 more shares"),
            ("We need {count} more {plural}", 1, "share", "We need 1 more share"),
            ("We need {count} more {plural}", 1, "candy", "We need 1 more candy"),
            ("We need {count} more {plural}", 7, "candy", "We need 7 more candies"),
            ("We need {count} more {plural}", 1, "hash", "We need 1 more hash"),
            ("We need {count} more {plural}", 2, "hash", "We need 2 more hashes"),
            ("We need {count} more {plural}", 1, "fuzz", "We need 1 more fuzz"),
            ("We need {count} more {plural}", 2, "fuzz", "We need 2 more fuzzes"),
        ]
        for v in VECTORS:
            self.assertEqual(strings.format_plural(v[0], v[1], v[2]), v[3])

        with self.assertRaises(ValueError):
            strings.format_plural("Hello", 1, "share")


if __name__ == '__main__':
    unittest.main()