41 lines
1.7 KiB
Python
41 lines
1.7 KiB
Python
import unittest
|
|
|
|
from nemubot.tools.human import guess, 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)
|
|
self.assertEqual(word_distance("a", "a"), 0)
|
|
self.assertEqual(word_distance("a", "b"), 1)
|
|
self.assertEqual(word_distance("aa", "ba"), 1)
|
|
self.assertEqual(word_distance("ba", "ab"), 1)
|
|
self.assertEqual(word_distance("long", "short"), 4)
|
|
self.assertEqual(word_distance("long", "short"), word_distance("short", "long"))
|
|
|
|
def test_guess(self):
|
|
self.assertListEqual([g for g in guess("drunk", ["eat", "drink"])], ["drink"])
|
|
self.assertListEqual([g for g in guess("drunk", ["long", "short"])], [])
|
|
|
|
|
|
if __name__ == '__main__':
|
|
unittest.main()
|