コード例 #1
0
ファイル: test_Stattext.py プロジェクト: reclaro/castel_old
class TestFrequentLetter(TestCase):
    def setUp(self):
        self.stattext = Stattext()

    def do_most_common_letter(self, text):
        file_content = io.StringIO(text)
        return self.stattext.most_common_letter(file_content)

    def test_ascii_count(self):
        text = "a"*2 + "b"*5
        result = self.do_most_common_letter(text)
        expected = "b"
        self.assertEqual(result, expected)

    def test_ascii_count_multi_line(self):
        text = "a"*2 + "b"*5 +"\n"+"a"*5
        result = self.do_most_common_letter(text)
        expected = "a"
        self.assertEqual(result, expected)

    def test_ignore_digits(self):
        text = "a1111\n232"
        result = self.do_most_common_letter(text)
        expected = "a"
        self.assertEqual(result, expected)

    def test_empty_file(self):
        text = ""
        result = self.do_most_common_letter(text)
        self.assertIsNone(result)

    def test_empty_line(self):
        text = "\n\n\n"
        result = self.do_most_common_letter(text)
        self.assertIsNone(result)

    def test_file_only_spaces(self):
        text = "   \n   \r\n"
        result = self.do_most_common_letter(text)
        self.assertIsNone(result)

    def test_ignore_punctuaction(self):
        text = "hello, world:\n?!:;.'"
        result = self.do_most_common_letter(text)
        expected = "l"
        self.assertEqual(result, expected)

    def test_upper_case_ignored(self):
        text = "BBb"
        result = self.do_most_common_letter(text)
        expected = "b"
        self.assertEqual(result, expected)

    def test_many_most_common_letter(self):
        text = "test is done"
        result = self.do_most_common_letter(text)
        expected = ['e','s','t']
        self.assertEqual(sorted(result.replace(" ","")), expected)

    def test_unicode_text(self):
        text = "Thíś íś ṕŕéttӳ fúń"
        result = self.do_most_common_letter(text)
        expected = "t"
        self.assertEqual(result, expected)