Домашни > Bang the ranga! > Решения > Решението на Катерина Коцева

Резултати
3 точки от тестове
-1 точки от учител

2 точки общо

10 успешни теста
0 неуспешни теста
Код
Скрий всички коментари

 1import tempfile
 2import unittest
 3import os
 4from bangaranga import does_the_banga_rang, TheBangaDoesNotRangError
 5
 6class TestDoesTheBangaRang(unittest.TestCase):
 7    def setUp(self):
 8        self.temp_dir = tempfile.TemporaryDirectory()
 9
10    def tearDown(self):
11        self.temp_dir.cleanup()
12
13    def create_file(self, content):
14        file_path = os.path.join(self.temp_dir.name, "bangaranga_input.txt")
15        with open(file_path, "w") as test_file:
16            test_file.write(content)
17
18        return file_path
19
20    def test_returns_zero_when_there_is_no_bangaranga_word(self):
21        file_name = self.create_file("Does the banga rang?")
22        self.assertEqual(does_the_banga_rang(file_name), 0)
23
24    def test_returns_one_when_there_is_one_whole_bangaranga_word(self):
25        file_name = self.create_file("let's bangaranga")
26        self.assertEqual(does_the_banga_rang(file_name), 1)
27
28    def test_returns_two_when_concatenate_two_words_in_one(self):
29        file_name = self.create_file("banga is ranga")
30        self.assertEqual(does_the_banga_rang(file_name), 2)
31
32    def test_returns_three_when_concatenate_three_words_in_one(self):
33        file_name = self.create_file("bang a small ranga")
34        self.assertEqual(does_the_banga_rang(file_name), 3)
35
36    def test_returns_zero_when_bangaranga_is_part_of_another_word(self):
37        file_name = self.create_file("letsbangarangatonight")
38        self.assertEqual(does_the_banga_rang(file_name), 0)
39
40    def test_checks_if_input_is_case_insensitive(self):
41        file_name = self.create_file("BANGARANGA")
42        self.assertEqual(does_the_banga_rang(file_name), 1)
43
44    def test_checks_if_words_are_in_correct_order(self):
45        file_name = self.create_file("ranga is banga")
46        self.assertEqual(does_the_banga_rang(file_name), 0)
47
48    def test_checks_if_return_minimal_count_of_bangaranga_words(self):
49        file_name = self.create_file("bang a banga ranga bangaranga")
50        self.assertEqual(does_the_banga_rang(file_name), 1)
51
52    def test_returns_custom_error_when_file_cannot_be_read(self):
53        file_error = os.path.join(self.temp_dir.name, "file_error.txt")
54        with self.assertRaises(TheBangaDoesNotRangError):
55            does_the_banga_rang(file_error)
56
57if __name__ == "__main__":
58    unittest.main()

..........
----------------------------------------------------------------------
Ran 10 tests in 0.125s

OK

Дискусия
История

f1import tempfilef1import tempfile
2import unittest2import unittest
3import os3import os
4from bangaranga import does_the_banga_rang, TheBangaDoesNotRangError4from bangaranga import does_the_banga_rang, TheBangaDoesNotRangError
55
6class TestDoesTheBangaRang(unittest.TestCase):6class TestDoesTheBangaRang(unittest.TestCase):
7    def setUp(self):7    def setUp(self):
8        self.temp_dir = tempfile.TemporaryDirectory()8        self.temp_dir = tempfile.TemporaryDirectory()
99
10    def tearDown(self):10    def tearDown(self):
11        self.temp_dir.cleanup()11        self.temp_dir.cleanup()
1212
13    def create_file(self, content):13    def create_file(self, content):
14        file_path = os.path.join(self.temp_dir.name, "bangaranga_input.txt")14        file_path = os.path.join(self.temp_dir.name, "bangaranga_input.txt")
15        with open(file_path, "w") as test_file:15        with open(file_path, "w") as test_file:
16            test_file.write(content)16            test_file.write(content)
1717
18        return file_path18        return file_path
1919
20    def test_returns_zero_when_there_is_no_bangaranga_word(self):20    def test_returns_zero_when_there_is_no_bangaranga_word(self):
21        file_name = self.create_file("Does the banga rang?")21        file_name = self.create_file("Does the banga rang?")
22        self.assertEqual(does_the_banga_rang(file_name), 0)22        self.assertEqual(does_the_banga_rang(file_name), 0)
2323
24    def test_returns_one_when_there_is_one_whole_bangaranga_word(self):24    def test_returns_one_when_there_is_one_whole_bangaranga_word(self):
25        file_name = self.create_file("let's bangaranga")25        file_name = self.create_file("let's bangaranga")
26        self.assertEqual(does_the_banga_rang(file_name), 1)26        self.assertEqual(does_the_banga_rang(file_name), 1)
2727
28    def test_returns_two_when_concatenate_two_words_in_one(self):28    def test_returns_two_when_concatenate_two_words_in_one(self):
29        file_name = self.create_file("banga is ranga")29        file_name = self.create_file("banga is ranga")
30        self.assertEqual(does_the_banga_rang(file_name), 2)30        self.assertEqual(does_the_banga_rang(file_name), 2)
3131
32    def test_returns_three_when_concatenate_three_words_in_one(self):32    def test_returns_three_when_concatenate_three_words_in_one(self):
33        file_name = self.create_file("bang a small ranga")33        file_name = self.create_file("bang a small ranga")
34        self.assertEqual(does_the_banga_rang(file_name), 3)34        self.assertEqual(does_the_banga_rang(file_name), 3)
3535
tt36    def test_returns_zero_when_bangaranga_is_part_of_another_word(self):
37        file_name = self.create_file("letsbangarangatonight")
38        self.assertEqual(does_the_banga_rang(file_name), 0)
39 
36    def test_checks_if_input_is_case_insensitive(self):40    def test_checks_if_input_is_case_insensitive(self):
37        file_name = self.create_file("BANGARANGA")41        file_name = self.create_file("BANGARANGA")
38        self.assertEqual(does_the_banga_rang(file_name), 1)42        self.assertEqual(does_the_banga_rang(file_name), 1)
3943
40    def test_checks_if_words_are_in_correct_order(self):44    def test_checks_if_words_are_in_correct_order(self):
41        file_name = self.create_file("ranga is banga")45        file_name = self.create_file("ranga is banga")
42        self.assertEqual(does_the_banga_rang(file_name), 0)46        self.assertEqual(does_the_banga_rang(file_name), 0)
4347
44    def test_checks_if_return_minimal_count_of_bangaranga_words(self):48    def test_checks_if_return_minimal_count_of_bangaranga_words(self):
45        file_name = self.create_file("bang a banga ranga bangaranga")49        file_name = self.create_file("bang a banga ranga bangaranga")
46        self.assertEqual(does_the_banga_rang(file_name), 1)50        self.assertEqual(does_the_banga_rang(file_name), 1)
4751
48    def test_returns_custom_error_when_file_cannot_be_read(self):52    def test_returns_custom_error_when_file_cannot_be_read(self):
49        file_error = os.path.join(self.temp_dir.name, "file_error.txt")53        file_error = os.path.join(self.temp_dir.name, "file_error.txt")
50        with self.assertRaises(TheBangaDoesNotRangError):54        with self.assertRaises(TheBangaDoesNotRangError):
51            does_the_banga_rang(file_error)55            does_the_banga_rang(file_error)
5256
53if __name__ == "__main__":57if __name__ == "__main__":
54    unittest.main()58    unittest.main()
Legends
Colors
 Added 
Changed
Deleted
Links
(f)irst change
(n)ext change
(t)op