Improve formating of size function and test it

This commit is contained in:
nemunaire 2015-09-06 13:09:56 +02:00
commit e837f9c8e5
2 changed files with 20 additions and 4 deletions

View file

@ -32,10 +32,9 @@ def size(size, unit=True):
units = ['B','KiB','MiB','GiB','TiB','PiB','EiB','ZiB','YiB']
p = math.floor(math.log(size, 2) / 10)
if unit:
return "%.3f %s" % (size / math.pow(1024,p), units[int(p)])
else:
return "%.3f" % (size / math.pow(1024,p))
s = size / math.pow(1024, p)
r = size % math.pow(1024, p)
return (("%.3f" if r else "%.0f") % s) + ((" " + units[int(p)]) if unit else "")
def word_distance(str1, str2):

View file

@ -4,6 +4,23 @@ from nemubot.tools.human import size, word_distance
class TestHuman(unittest.TestCase):
def test_size(self):
self.assertEqual(size(42), "42 B")
self.assertEqual(size(42, False), "42")
self.assertEqual(size(1023), "1023 B")
self.assertEqual(size(1024), "1 KiB")
self.assertEqual(size(1024, False), "1")
self.assertEqual(size(1025), "1.001 KiB")
self.assertEqual(size(1025, False), "1.001")
self.assertEqual(size(1024000), "1000 KiB")
self.assertEqual(size(1024000, False), "1000")
self.assertEqual(size(1024 * 1024), "1 MiB")
self.assertEqual(size(1024 * 1024, False), "1")
self.assertEqual(size(1024 * 1024 * 1024), "1 GiB")
self.assertEqual(size(1024 * 1024 * 1024, False), "1")
self.assertEqual(size(1024 * 1024 * 1024 * 1024), "1 TiB")
self.assertEqual(size(1024 * 1024 * 1024 * 1024, False), "1")
def test_Levenshtein(self):
self.assertEqual(word_distance("", "a"), 1)
self.assertEqual(word_distance("a", ""), 1)