Skip to content

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

Closed
tanishqraikwar83-eng wants to merge 1 commit into
TheAlgorithms:masterfrom
tanishqraikwar83-eng:fix/bipartite-defensive-checks-removal
Closed

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

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.

Fixes #15127

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_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.

Fixes TheAlgorithms#15127
@algorithms-keeper algorithms-keeper Bot added the awaiting reviews This PR is ready to be reviewed label Sep 6, 2026
@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 closed this Sep 6, 2026
@algorithms-keeper algorithms-keeper Bot removed the awaiting reviews This PR is ready to be reviewed label Sep 6, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant