forked from mate-academy/py-count-occurrences
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
3 changed files
with
37 additions
and
8 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,4 @@ | ||
# Python boilerplate for GitHub tasks | ||
# Count Occurrences | ||
|
||
- Read [the guideline](https://github.com/mate-academy/py-task-guideline/blob/main/README.md) before start | ||
- Implement the task described [here](app/main.py) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,17 @@ | ||
# TODO: add initial code | ||
def hello_world(): | ||
return "Hello, world!" | ||
def count_occurrences(phrase: str, letter: str) -> int: | ||
""" | ||
Implement count_occurrences function: | ||
It takes a phrase and a letter and calculates the number of times | ||
the letter appears in the phrase. The function is case insensitive. | ||
count_occurrences("letter", "t") == 2 | ||
count_occurrences("abc", "a") == 1 | ||
count_occurrences("abc", "d") == 0 | ||
count_occurrences("ABC", "a") == 1 | ||
:param phrase: phrase to count in it | ||
:param letter: letter to find occurrences of it | ||
:return: count occurrences of letter in phrase | ||
""" | ||
# write your code here |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,6 +1,21 @@ | ||
# TODO: add tests | ||
from app.main import hello_world | ||
import pytest | ||
|
||
from app.main import count_occurrences | ||
|
||
def test_hello_world(): | ||
assert hello_world() == "Hello, world!" | ||
|
||
@pytest.mark.parametrize( | ||
"phrase,letter,count", | ||
[ | ||
("samsung", "a", 1), | ||
("samsung is gnusmas", "s", 5), | ||
("Samsung is gnusmas", "s", 5), | ||
("Abracadabra", "A", 5), | ||
("", "a", 0), | ||
("Samsung", "b", 0), | ||
] | ||
) | ||
def test_count_occurrences(phrase, letter, count): | ||
assert count_occurrences(phrase, letter) == count, ( | ||
f"Function 'count_occurrences' should return {count}, " | ||
f"when 'phrase'='{phrase}' and 'letter'='{letter}'" | ||
) |