From 30610368c26650897b416dec7dfb29bb183064f6 Mon Sep 17 00:00:00 2001 From: danylott Date: Wed, 5 Jan 2022 09:28:26 +0200 Subject: [PATCH] Create count_occurrences task --- README.md | 2 +- app/main.py | 20 +++++++++++++++++--- tests/test_main.py | 23 +++++++++++++++++++---- 3 files changed, 37 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index 5be5cadc..740f7b97 100644 --- a/README.md +++ b/README.md @@ -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) diff --git a/app/main.py b/app/main.py index 773a588b..4ccbb02b 100644 --- a/app/main.py +++ b/app/main.py @@ -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 diff --git a/tests/test_main.py b/tests/test_main.py index 6d8b3235..65a7fe09 100644 --- a/tests/test_main.py +++ b/tests/test_main.py @@ -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}'" + )