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

    def do_count_words(self, text):
        file_content = io.StringIO(text)
        return self.stattext._count_words(file_content)        

    def test_count_on_single_line(self):
        text = "This is a test"
        result = self.do_count_words(text)
        expected = 4
        self.assertEqual(result, expected)

    def test_count_on_multi_line(self):
        text = "This is a\n test"
        result = self.do_count_words(text)
        expected = 4
        self.assertEqual(result, expected)

    def test_count_number_as_word(self):
        text = "The 4 is counted as a word"
        result = self.do_count_words(text)
        expected = 7
        self.assertEqual(result, expected)

    def test_ignore_double_spaces(self):
        text = "this text  has \n spaces"
        result = self.do_count_words(text)
        expected = 4
        self.assertEqual(result, expected)

    def test_words_with_single_quote(self):
        text = "it's a quote"
        result = self.do_count_words(text)
        expected = 3
        self.assertEqual(result, expected)

    def test_words_with_hyphen(self):
        text = "single-word"
        result = self.do_count_words(text)
        expected = 1
        self.assertEqual(result, expected)

    def test_empty_file(self):
        text = ""
        result = self.do_count_words(text)
        expected = 0
        self.assertEqual(result, expected)

    def test_empty_line(self):
        text = "\n"
        result = self.do_count_words(text)
        expected = 0
        self.assertEqual(result, expected)

    def test_space(self):
        text = " "
        result = self.do_count_words(text)
        expected = 0
        self.assertEqual(result, expected)

    def test_ignore_punctuaction(self):
        text = "this is awesome !!!"
        result = self.do_count_words(text)
        expected = 3
        self.assertEqual(result, expected)

    def test_unicode(self):
        text = "Thíś íś ṕŕéttӳ fúń.\n And more, fun here"
        result = self.do_count_words(text)
        expected = 8
        self.assertEqual(result, expected)

    def test_dots_word(self):
        text = "...just saying"
        result = self.do_count_words(text)
        expected = 2
        self.assertEqual(result, expected)

    def test_only_signs(self):
        text = "... ,, : !! \'"
        result = self.do_count_words(text)
        expected = 0
        self.assertEqual(result, expected)