Skip to content

Commit

Permalink
Create count_occurrences task
Browse files Browse the repository at this point in the history
  • Loading branch information
danylott committed Jan 5, 2022
1 parent 38aa2bb commit 3061036
Show file tree
Hide file tree
Showing 3 changed files with 37 additions and 8 deletions.
2 changes: 1 addition & 1 deletion README.md
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)
20 changes: 17 additions & 3 deletions app/main.py
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
23 changes: 19 additions & 4 deletions tests/test_main.py
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}'"
)

0 comments on commit 3061036

Please sign in to comment.