Contributes to #9943: Add docstrings and doctests, fix is_safe logic, and improve code formatting - #12691
Contributes to #9943: Add docstrings and doctests, fix is_safe logic, and improve code formatting #12691akiels wants to merge 3 commits into
is_safe logic, and improve code formatting #12691Conversation
- Added descriptive docstrings for Matrix, is_safe, count_islands, and diffs methods - Added doctests covering both normal and edge cases for all methods - Improves didactic quality and test coverage
- Formatting code with pre-commit hooks (black, ruff) - Fixing typos - No functional changes
Previously, is_safe() could return the value of a cell (int 1 or 0), which caused test failures. This fix ensures that is_safe() returns True if the cell is safe to visit and False otherwise
|
@priya-sundaram-dev In the |
|
@cclauss Ran the 1. It violates its own and self.graph[i][j]Because 2. There's a latent consistency bug hiding behind that. So Bounds are fine, for what it's worth: the tl;dr: not an algorithm error, but a genuine return-type + seeding-consistency bug. |
|
@akiels and @priya-sundaram-dev can you please both EACH (separately) create a pull request that ensures that |
|
Done — opened #15363 with just the two-line `is_safe` fix ( |
Contributes to #9943
This PR improves the
count-islands-in-matriximplementation by:Adding docstrings and doctests for all methods (
Matrix,is_safe,diffs, andcount_islands)Applying code formatting for consistency and pre-commit compliance (e.g., removing trailing whitespace, fixing parentheses).
Fixing a logic bug in
is_safe:Previously,
is_safe()could returnintvalues 1 or 0 instead of expectedbooleanvalues (TrueorFalse).This was corrected by adding a condition to
self.graph[i][j], which ensures thatis_safe()doesn't return the value of a cell (intvalues 1 or 0) but instead returnsTrueif the cell has value 1 andFalseotherwise (value 0).Since this is a small logic fix, I include it in this PR along with the docs, tests, and formatting changes.
All changes pass local testing with
doctestand pre-commit hooks.These changes together improve the clarity, functionality, and test coverage of the implementation.
Thank you for reviewing!