Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merge from master #575

Merged
merged 112 commits into from
Dec 25, 2024
Merged

Merge from master #575

merged 112 commits into from
Dec 25, 2024

Conversation

ikostan
Copy link
Member

@ikostan ikostan commented Dec 25, 2024

Summary by Sourcery

Update documentation and tests for several 8 kyu katas.

Documentation:

  • Update the README file with a list of completed katas and their solutions.

Tests:

  • Update tests for "grasshopper_check_for_factor", "set_alarm", "third_angle_of_triangle", "century", "enumerable_magic_25", "counting_sheep", "will_there_be_enough_space", "greek_sort", "is_it_a_palindrome", "alternating_case", "my_head_is_at_the_wrong_end", "will_you_make_it", "keep_hydrated", "check_the_exam", "formatting_decimal_places_0", "find_the_first_non_consecutive_number", "logical_calculator", "grasshopper_summation", "the_feast_of_many_beasts", "count_the_monkeys", "convert_string_to_an_array", "well_of_ideas_easy_version", "wolf_in_sheep_clothing", "grasshopper_personalized_message", "grasshopper_messi_goals_function", "keep_up_the_hoop", "make_upper_case", "is_your_period_late", "terminal_game_move_function", "holiday_vi_shark_pontoon", "reversed_strings", "swap_values", "multiply", "remove_first_and_last_character", and "surface_area_and_volume_of_box". Add parameterization to improve test coverage.

kyu_8/make_upper_case/make_upper_case.py:10 in public function `make_upper_case`:
        D401: First line should be in imperative mood; try rephrasing (found 'Function')

        [Docstring] prescribes the function or method's effect as a command:
        ("Do this", "Return that"), not as a description; e.g. don't write
        "Returns the pathname ...".
kyu_8/will_there_be_enough_space/enough.py:10 in public function `enough`:
        D401: First line should be in imperative mood; try rephrasing (found 'The')

        [Docstring] prescribes the function or method's effect as a command:
        ("Do this", "Return that"), not as a description; e.g. don't write
        "Returns the pathname ...".
kyu_8/keep_up_the_hoop/hoop_count.py:1 at module level:
        D205: 1 blank line required between summary line and description (found 0)

        Multi-line docstrings consist of a summary line just like a one-line
        docstring, followed by a blank line, followed by a more elaborate
        description. The summary line may be used by automatic indexing tools;
        it is important that it fits on one line and is separated from the
        rest of the docstring by a blank line.

kyu_8/keep_up_the_hoop/hoop_count.py:1 at module level:
        D400: First line should end with a period (not 'p')

        The [first line of a] docstring is a phrase ending in a period.

kyu_8/keep_up_the_hoop/hoop_count.py:9 in public function `hoop_count`:
        D205: 1 blank line required between summary line and description (found 0)

        Multi-line docstrings consist of a summary line just like a one-line
        docstring, followed by a blank line, followed by a more elaborate
        description. The summary line may be used by automatic indexing tools;
        it is important that it fits on one line and is separated from the
        rest of the docstring by a blank line.

kyu_8/keep_up_the_hoop/hoop_count.py:9 in public function `hoop_count`:
        D400: First line should end with a period (not 'e')

        The [first line of a] docstring is a phrase ending in a period.

kyu_8/keep_up_the_hoop/hoop_count.py:9 in public function `hoop_count`:
        D401: First line should be in imperative mood; try rephrasing (found 'A')

        [Docstring] prescribes the function or method's effect as a command:
        ("Do this", "Return that"), not as a description; e.g. don't write
        "Returns the pathname ...".

kyu_8/keep_up_the_hoop/__init__.py:1 at module level:
        D104: Missing docstring in public package

        All modules should normally have docstrings.  [...] all functions and
        classes exported by a module should also have docstrings. Public
        methods (including the __init__ constructor) should also have
        docstrings.
        Note: Public (exported) definitions are either those with names listed
              in __all__ variable (if present), or those that do not start
              with a single underscore.

kyu_8/keep_up_the_hoop/test_hoop_count.py:1 at module level:
        D205: 1 blank line required between summary line and description (found 0)

        Multi-line docstrings consist of a summary line just like a one-line
        docstring, followed by a blank line, followed by a more elaborate
        description. The summary line may be used by automatic indexing tools;
        it is important that it fits on one line and is separated from the
        rest of the docstring by a blank line.

kyu_8/keep_up_the_hoop/test_hoop_count.py:1 at module level:
        D400: First line should end with a period (not 'p')

        The [first line of a] docstring is a phrase ending in a period.

kyu_8/keep_up_the_hoop/test_hoop_count.py:28 in public class `HoopCountTestCase`:
        D200: One-line docstring should fit on one line with quotes (found 3)

        The closing quotes are on the same line as the opening quotes.
        This looks better for one-liners.

kyu_8/keep_up_the_hoop/test_hoop_count.py:28 in public class `HoopCountTestCase`:
        D400: First line should end with a period (not 'n')

        The [first line of a] docstring is a phrase ending in a period.

kyu_8/keep_up_the_hoop/test_hoop_count.py:33 in public method `test_hoop_count_positive`:
        D400: First line should end with a period (not ')')

        The [first line of a] docstring is a phrase ending in a period.

kyu_8/keep_up_the_hoop/test_hoop_count.py:66 in public method `test_hoop_count_negative`:
        D205: 1 blank line required between summary line and description (found 0)

        Multi-line docstrings consist of a summary line just like a one-line
        docstring, followed by a blank line, followed by a more elaborate
        description. The summary line may be used by automatic indexing tools;
        it is important that it fits on one line and is separated from the
        rest of the docstring by a blank line.

kyu_8/keep_up_the_hoop/test_hoop_count.py:66 in public method `test_hoop_count_negative`:
        D400: First line should end with a period (not ')')

        The [first line of a] docstring is a phrase ending in a period.
kyu_8/logical_calculator/test_logical_calculator.py:1 at module level:
        D205: 1 blank line required between summary line and description (found 0)

        Multi-line docstrings consist of a summary line just like a one-line
        docstring, followed by a blank line, followed by a more elaborate
        description. The summary line may be used by automatic indexing tools;
        it is important that it fits on one line and is separated from the
        rest of the docstring by a blank line.

kyu_8/logical_calculator/test_logical_calculator.py:1 at module level:
        D400: First line should end with a period (not 'r')

        The [first line of a] docstring is a phrase ending in a period.

kyu_8/logical_calculator/test_logical_calculator.py:30 in public class `LogicalCalculatorTestCase`:
        D200: One-line docstring should fit on one line with quotes (found 3)

        The closing quotes are on the same line as the opening quotes.
        This looks better for one-liners.

kyu_8/logical_calculator/test_logical_calculator.py:30 in public class `LogicalCalculatorTestCase`:
        D400: First line should end with a period (not 'n')

        The [first line of a] docstring is a phrase ending in a period.

kyu_8/logical_calculator/test_logical_calculator.py:35 in public method `test_logical_calc_and`:
        D205: 1 blank line required between summary line and description (found 0)

        Multi-line docstrings consist of a summary line just like a one-line
        docstring, followed by a blank line, followed by a more elaborate
        description. The summary line may be used by automatic indexing tools;
        it is important that it fits on one line and is separated from the
        rest of the docstring by a blank line.

kyu_8/logical_calculator/test_logical_calculator.py:35 in public method `test_logical_calc_and`:
        D400: First line should end with a period (not 'l')

        The [first line of a] docstring is a phrase ending in a period.

kyu_8/logical_calculator/test_logical_calculator.py:99 in public method `test_logical_calc_or`:
        D205: 1 blank line required between summary line and description (found 0)

        Multi-line docstrings consist of a summary line just like a one-line
        docstring, followed by a blank line, followed by a more elaborate
        description. The summary line may be used by automatic indexing tools;
        it is important that it fits on one line and is separated from the
        rest of the docstring by a blank line.

kyu_8/logical_calculator/test_logical_calculator.py:99 in public method `test_logical_calc_or`:
        D400: First line should end with a period (not 'e')

        The [first line of a] docstring is a phrase ending in a period.

kyu_8/logical_calculator/test_logical_calculator.py:157 in public method `test_logical_calc_xor`:
        D205: 1 blank line required between summary line and description (found 0)

        Multi-line docstrings consist of a summary line just like a one-line
        docstring, followed by a blank line, followed by a more elaborate
        description. The summary line may be used by automatic indexing tools;
        it is important that it fits on one line and is separated from the
        rest of the docstring by a blank line.

kyu_8/logical_calculator/test_logical_calculator.py:157 in public method `test_logical_calc_xor`:
        D400: First line should end with a period (not 'a')

        The [first line of a] docstring is a phrase ending in a period.

kyu_8/logical_calculator/__init__.py:1 at module level:
        D104: Missing docstring in public package

        All modules should normally have docstrings.  [...] all functions and
        classes exported by a module should also have docstrings. Public
        methods (including the __init__ constructor) should also have
        docstrings.
        Note: Public (exported) definitions are either those with names listed
              in __all__ variable (if present), or those that do not start
              with a single underscore.

kyu_8/logical_calculator/logical_calculator.py:1 at module level:
        D205: 1 blank line required between summary line and description (found 0)

        Multi-line docstrings consist of a summary line just like a one-line
        docstring, followed by a blank line, followed by a more elaborate
        description. The summary line may be used by automatic indexing tools;
        it is important that it fits on one line and is separated from the
        rest of the docstring by a blank line.

kyu_8/logical_calculator/logical_calculator.py:1 at module level:
        D400: First line should end with a period (not 'r')

        The [first line of a] docstring is a phrase ending in a period.

kyu_8/logical_calculator/logical_calculator.py:9 in public function `logical_calc`:
        D401: First line should be in imperative mood (perhaps 'Calculate', not 'Calculates')

        [Docstring] prescribes the function or method's effect as a command:
        ("Do this", "Return that"), not as a description; e.g. don't write
        "Returns the pathname ...".
kyu_8/is_your_period_late/__init__.py:1 at module level:
        D104: Missing docstring in public package

        All modules should normally have docstrings.  [...] all functions and
        classes exported by a module should also have docstrings. Public
        methods (including the __init__ constructor) should also have
        docstrings.
        Note: Public (exported) definitions are either those with names listed
              in __all__ variable (if present), or those that do not start
              with a single underscore.

kyu_8/is_your_period_late/test_is_your_period_late.py:1 at module level:
        D205: 1 blank line required between summary line and description (found 0)

        Multi-line docstrings consist of a summary line just like a one-line
        docstring, followed by a blank line, followed by a more elaborate
        description. The summary line may be used by automatic indexing tools;
        it is important that it fits on one line and is separated from the
        rest of the docstring by a blank line.

kyu_8/is_your_period_late/test_is_your_period_late.py:1 at module level:
        D400: First line should end with a period (not 'e')

        The [first line of a] docstring is a phrase ending in a period.

kyu_8/is_your_period_late/test_is_your_period_late.py:30 in public class `PeriodIsLateTestCase`:
        D200: One-line docstring should fit on one line with quotes (found 3)

        The closing quotes are on the same line as the opening quotes.
        This looks better for one-liners.

kyu_8/is_your_period_late/test_is_your_period_late.py:30 in public class `PeriodIsLateTestCase`:
        D400: First line should end with a period (not 'n')

        The [first line of a] docstring is a phrase ending in a period.

kyu_8/is_your_period_late/test_is_your_period_late.py:35 in public method `test_period_is_late_positive`:
        D205: 1 blank line required between summary line and description (found 0)

        Multi-line docstrings consist of a summary line just like a one-line
        docstring, followed by a blank line, followed by a more elaborate
        description. The summary line may be used by automatic indexing tools;
        it is important that it fits on one line and is separated from the
        rest of the docstring by a blank line.

kyu_8/is_your_period_late/test_is_your_period_late.py:35 in public method `test_period_is_late_positive`:
        D400: First line should end with a period (not 's')

        The [first line of a] docstring is a phrase ending in a period.

kyu_8/is_your_period_late/test_is_your_period_late.py:98 in public method `test_period_is_late_negative`:
        D205: 1 blank line required between summary line and description (found 0)

        Multi-line docstrings consist of a summary line just like a one-line
        docstring, followed by a blank line, followed by a more elaborate
        description. The summary line may be used by automatic indexing tools;
        it is important that it fits on one line and is separated from the
        rest of the docstring by a blank line.

kyu_8/is_your_period_late/test_is_your_period_late.py:98 in public method `test_period_is_late_negative`:
        D400: First line should end with a period (not 's')

        The [first line of a] docstring is a phrase ending in a period.

kyu_8/is_your_period_late/is_your_period_late.py:1 at module level:
        D205: 1 blank line required between summary line and description (found 0)

        Multi-line docstrings consist of a summary line just like a one-line
        docstring, followed by a blank line, followed by a more elaborate
        description. The summary line may be used by automatic indexing tools;
        it is important that it fits on one line and is separated from the
        rest of the docstring by a blank line.

kyu_8/is_your_period_late/is_your_period_late.py:1 at module level:
        D400: First line should end with a period (not 'e')

        The [first line of a] docstring is a phrase ending in a period.
kyu_8/set_alarm/test_set_alarm.py:31 in public class `SetAlarmTestCase`:
        D200: One-line docstring should fit on one line with quotes (found 3)

        The closing quotes are on the same line as the opening quotes.
        This looks better for one-liners.

kyu_8/set_alarm/test_set_alarm.py:31 in public class `SetAlarmTestCase`:
        D400: First line should end with a period (not 'n')

        The [first line of a] docstring is a phrase ending in a period.

kyu_8/set_alarm/test_set_alarm.py:49 in public method `test_set_alarm`:
        D412: No blank lines allowed between a section header and its content ('Examples')
kyu_8/set_alarm/test_set_alarm.py:47 in public method `test_set_alarm`:
        D412: No blank lines allowed between a section header and its content ('Examples')
kyu_8/logical_calculator/logical_calculator.py:10 in public function `logical_calc`:
        D401: First line should be in imperative mood (perhaps 'Calculate', not 'Calculates')

        [Docstring] prescribes the function or method's effect as a command:
        ("Do this", "Return that"), not as a description; e.g. don't write
        "Returns the pathname ...".
kyu_8/check_the_exam/check_exam.py:37 in public function `char_processor`:
        D401: First line should be in imperative mood (perhaps 'Process', not 'Processing')

        [Docstring] prescribes the function or method's effect as a command:
        ("Do this", "Return that"), not as a description; e.g. don't write
        "Returns the pathname ...".
kyu_8/well_of_ideas_easy_version/well_of_ideas_easy_version.py:12 in public function `well`:
        D400: First line should end with a period (not 'n')

        The [first line of a] docstring is a phrase ending in a period.
kyu_8/greek_sort/evaluator.py:10 in public function `evaluator`:
        D401: First line should be in imperative mood (perhaps 'Evaluate', not 'evaluator')

        [Docstring] prescribes the function or method's effect as a command:
        ("Do this", "Return that"), not as a description; e.g. don't write
        "Returns the pathname ...".
Merge pull request #572 from iKostanOrg/master
./kyu_8/closest_elevator/closest_elevator.py:8:1: E302 expected 2 blank lines, found 1
def elevator(left: int, right: int, call: int) -> str:
./kyu_8/enumerable_magic_25/test_take.py:65:27: E127 continuation line over-indented for visual indent
                          n=n,
                          ^
./kyu_8/enumerable_magic_25/test_take.py:66:27: E127 continuation line over-indented for visual indent
                          expected=expected,
                          ^
./kyu_8/enumerable_magic_25/test_take.py:67:27: E127 continuation line over-indented for visual indent
                          result=actual_result)
Error: kyu_8/closest_elevator/README.md:21 MD040/fenced-code-language Fenced code blocks should have a language specified [Context: "```"] https://github.com/DavidAnson/markdownlint/blob/v0.36.1/doc/md040.md
@github-advanced-security
Copy link

This pull request sets up GitHub code scanning for this repository. Once the scans have completed and the checks have passed, the analysis results for this pull request branch will appear on this overview. Once you merge this pull request, the 'Security' tab will show more code scanning analysis results (for example, for the default branch). Depending on your configuration and choice of analysis tool, future pull requests will be annotated with code scanning analysis results. For more information about GitHub code scanning, check out the documentation.

Copy link
Contributor

sourcery-ai bot commented Dec 25, 2024

Reviewer's Guide by Sourcery

This pull request introduces several improvements to the test suites, enhancing their readability, structure, and efficiency. It also adds a new kata and updates the README file.

Class diagram showing the new elevator kata structure

classDiagram
      class elevator {
        +elevator(left: int, right: int, call: int) str
      }
      note for elevator "New kata added for finding closest elevator"
Loading

State diagram showing elevator decision logic

stateDiagram-v2
      [*] --> CheckElevators
      CheckElevators --> BothEqual: left == right == call
      CheckElevators --> CompareDistance: left != right or call != left/right
      BothEqual --> ReturnRight: Always choose right
      CompareDistance --> ReturnLeft: left == call OR abs(call-left) < abs(call-right)
      CompareDistance --> ReturnRight: Otherwise
      ReturnLeft --> [*]
      ReturnRight --> [*]
Loading

File-Level Changes

Change Details Files
Improved test suite readability and efficiency by using parameterized tests and descriptive messages.
  • Used parameterized tests with @parameterized.expand to cover multiple test cases concisely.
  • Added descriptive messages to test cases for better understanding of test scenarios.
  • Improved test descriptions with more context and examples.
  • Removed redundant tests and improved overall test structure.
  • Added docstrings to test functions to explain their purpose and usage.
  • Used allure annotations to enhance test reporting and organization.
kyu_8/grasshopper_check_for_factor/test_check_for_factor.py
kyu_8/set_alarm/test_set_alarm.py
kyu_8/third_angle_of_triangle/test_third_angle_of_triangle.py
kyu_8/century_from_year/test_century.py
kyu_8/enumerable_magic_25/test_take.py
kyu_8/counting_sheep/test_counting_sheep.py
kyu_8/will_there_be_enough_space/test_enough.py
kyu_8/greek_sort/test_greek_comparator.py
kyu_8/is_it_a_palindrome/test_is_palindrome.py
kyu_8/alternating_case/test_alternating_case.py
kyu_8/my_head_is_at_the_wrong_end/test_fix_the_meerkat.py
kyu_8/will_you_make_it/test_zero_fuel.py
kyu_8/keep_hydrated/test_keep_hydrated.py
kyu_8/check_the_exam/test_check_exam.py
kyu_8/formatting_decimal_places_0/test_two_decimal_places.py
kyu_8/find_the_first_non_consecutive_number/test_first_non_consecutive.py
kyu_8/logical_calculator/test_logical_calculator.py
kyu_8/grasshopper_summation/test_summation.py
kyu_8/the_feast_of_many_beasts/test_feast.py
kyu_8/count_the_monkeys/test_monkey_count.py
kyu_8/convert_string_to_an_array/test_string_to_array.py
kyu_8/well_of_ideas_easy_version/test_well_of_ideas_easy_version.py
kyu_8/wolf_in_sheep_clothing/test_wolf_in_sheep_clothing.py
kyu_8/grasshopper_personalized_message/test_grasshopper_personalized_message.py
kyu_8/grasshopper_messi_goals_function/test_grasshopper_messi_goals_function.py
kyu_8/keep_up_the_hoop/test_hoop_count.py
kyu_8/make_upper_case/test_make_upper_case.py
kyu_8/is_your_period_late/test_is_your_period_late.py
kyu_8/terminal_game_move_function/test_terminal_game_move_function.py
kyu_8/holiday_vi_shark_pontoon/test_shark.py
kyu_8/reversed_strings/test_reversed_strings.py
Added a new kata and updated the README file.
  • Added 'Closest elevator' kata implementation.
  • Included tests for the new kata.
  • Updated the README file with information about the new kata and its solution.
kyu_8/README.md
kyu_8/closest_elevator/test_closest_elevator.py
kyu_8/closest_elevator/README.md
kyu_8/closest_elevator/closest_elevator.py
kyu_8/closest_elevator/__init__.py
kyu_8/__init__.py
Updated docstrings and comments for clarity and consistency.
  • Improved clarity and consistency of docstrings across multiple files.
  • Updated comments to reflect the changes made in the code.
  • Fixed typos and grammatical errors in docstrings and comments.
kyu_8/set_alarm/set_alarm.py
kyu_8/multiply/multiply.py
kyu_8/alternating_case/alternating_case.py
kyu_8/counting_sheep/counting_sheep.py
kyu_8/remove_first_and_last_character/test_remove_char.py
kyu_8/swap_values/test_swap_values.py
kyu_8/grasshopper_summation/summation.py
kyu_8/multiply/test_multiply.py
kyu_8/my_head_is_at_the_wrong_end/fix_the_meerkat.py
kyu_8/remove_string_spaces/test_remove_string_spaces.py
kyu_8/terminal_game_move_function/terminal_game_move_function.py
README.md
kyu_8/remove_first_and_last_character/remove_char.py
kyu_8/surface_area_and_volume_of_box/test_get_size.py
kyu_8/will_you_make_it/zero_fuel.py
kyu_8/check_the_exam/check_exam.py
kyu_8/greek_sort/evaluator.py
kyu_8/keep_up_the_hoop/hoop_count.py
kyu_8/well_of_ideas_easy_version/well_of_ideas_easy_version.py
kyu_8/convert_string_to_an_array/string_to_array.py
kyu_8/enumerable_magic_25/take.py
kyu_8/grasshopper_personalized_message/grasshopper_personalized_message.py
kyu_8/greek_sort/greek_comparator.py
kyu_8/is_it_a_palindrome/is_palindrome.py
kyu_8/remove_string_spaces/remove_string_spaces.py
kyu_8/surface_area_and_volume_of_box/get_size.py
kyu_8/the_feast_of_many_beasts/feast.py
kyu_8/century_from_year/century.py
kyu_8/grasshopper_check_for_factor/check_for_factor.py
kyu_8/holiday_vi_shark_pontoon/shark.py
kyu_8/make_upper_case/make_upper_case.py
kyu_8/reversed_strings/reversed_strings.py
kyu_8/swap_values/swap_values.py
kyu_8/will_there_be_enough_space/enough.py
kyu_8/wolf_in_sheep_clothing/wolf_in_sheep_clothing.py
kyu_8/count_the_monkeys/monkey_count.py
kyu_8/formatting_decimal_places_0/two_decimal_places.py
kyu_8/grasshopper_messi_goals_function/messi_goals_function.py
kyu_8/keep_hydrated/keep_hydrated.py
kyu_8/logical_calculator/logical_calculator.py
kyu_8/third_angle_of_triangle/third_angle_of_triangle.py
kyu_8/find_the_first_non_consecutive_number/first_non_consecutive.py
kyu_8/is_your_period_late/is_your_period_late.py

Tips and commands

Interacting with Sourcery

  • Trigger a new review: Comment @sourcery-ai review on the pull request.
  • Continue discussions: Reply directly to Sourcery's review comments.
  • Generate a GitHub issue from a review comment: Ask Sourcery to create an
    issue from a review comment by replying to it.
  • Generate a pull request title: Write @sourcery-ai anywhere in the pull
    request title to generate a title at any time.
  • Generate a pull request summary: Write @sourcery-ai summary anywhere in
    the pull request body to generate a PR summary at any time. You can also use
    this command to specify where the summary should be inserted.

Customizing Your Experience

Access your dashboard to:

  • Enable or disable review features such as the Sourcery-generated pull request
    summary, the reviewer's guide, and others.
  • Change the review language.
  • Add, remove or edit custom review instructions.
  • Adjust other review settings.

Getting Help

@ikostan ikostan merged commit c5f9151 into kyu7 Dec 25, 2024
35 of 38 checks passed
Copy link
Contributor

@sourcery-ai sourcery-ai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hey @ikostan - I've reviewed your changes and they look great!

Here's what I looked at during the review
  • 🟢 General issues: all looks good
  • 🟢 Security: all looks good
  • 🟡 Testing: 1 issue found
  • 🟢 Complexity: all looks good
  • 🟢 Documentation: all looks good

Sourcery is free for open source - if you like our reviews please consider sharing them ✨
Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.

Comment on lines -63 to -65
count_sheeps(lst),
count_sheep(lst),
f"There are 17 sheep in total, "
f"not {count_sheeps(lst)}")
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

issue (testing): Typo in function name.

The function name in the tests is count_sheeps, but the actual function name in the code is count_sheep. Please correct the typo in the tests.

ikostan added a commit that referenced this pull request Dec 25, 2024
Merge pull request #575 from iKostanOrg/master
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant