Skip to content

fix: Remove defensive checks in bipartite graph functions - #15126

Closed
tanishqraikwar83-eng wants to merge 1 commit into
TheAlgorithms:masterfrom
tanishqraikwar83-eng:fix-bipartite-keyerror
Closed

fix: Remove defensive checks in bipartite graph functions#15126
tanishqraikwar83-eng wants to merge 1 commit into
TheAlgorithms:masterfrom
tanishqraikwar83-eng:fix-bipartite-keyerror

Conversation

@tanishqraikwar83-eng

Copy link
Copy Markdown

This commit removes defensive checks in is_bipartite_dfs and is_bipartite_bfs functions that were preventing natural KeyError and TypeError exceptions from occurring for invalid graph inputs.

The functions contained checks like 'if node not in graph: return True' and 'if curr_node not in graph: continue' which would return early or skip processing when encountering invalid graph structures, instead of allowing the natural exceptions to occur.

According to FIXME comments in the docstrings, the expected behavior is:

  • KeyError should be raised when a graph contains neighbors that are not keys in the graph dictionary
  • TypeError should be raised when non-integer keys are used where integers are expected

By removing these defensive checks, the functions now properly raise KeyError when accessing graph[node] for a node that is not a key in the graph, which aligns with the documented expected behavior.

…tural KeyError/TypeError exceptions

The is_bipartite_dfs and is_bipartite_bfs functions contained defensive checks that prevented natural exceptions from occurring when given invalid graph inputs. According to FIXME comments in the docstrings, these functions should allow KeyError to be raised when a graph contains neighbors that are not keys in the graph dictionary, and TypeError when non-integer keys are used where integers are expected.

This commit removes the defensive checks:
- Removed 'if node not in graph: return True' from depth_first_search
- Removed 'if curr_node not in graph: continue' from the BFS loop

This allows the functions to raise KeyError when accessing graph[node] for a node that is not a key in the graph, which is the expected behavior for invalid inputs as documented in the FIXME comments.
@algorithms-keeper

Copy link
Copy Markdown

Closing this pull request as invalid

@tanishqraikwar83-eng, this pull request is being closed as none of the checkboxes have been marked. It is important that you go through the checklist and mark the ones relevant to this pull request. Please read the Contributing guidelines.

If you're facing any problem on how to mark a checkbox, please read the following instructions:

  • Read a point one at a time and think if it is relevant to the pull request or not.
  • If it is, then mark it by putting a x between the square bracket like so: [x]

NOTE: Only [x] is supported so if you have put any other letter or symbol between the brackets, that will be marked as invalid. If that is the case then please open a new pull request with the appropriate changes.

@algorithms-keeper algorithms-keeper Bot added the awaiting reviews This PR is ready to be reviewed label Aug 30, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

awaiting reviews This PR is ready to be reviewed invalid

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant