-
Notifications
You must be signed in to change notification settings - Fork 15
Upgrade EdgeRange iterator to bidirectional iterator #77
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
base: main
Are you sure you want to change the base?
Conversation
- Changed iterator_category from forward_iterator_tag to bidirectional_iterator_tag - Implemented operator-- (both prefix and postfix) for backward iteration - Added retreat_to_prev_valid_csr() helper for CSR backward traversal - Added comprehensive bidirectional iteration tests for both EdgeList and CSR representations - All existing and new tests pass Co-authored-by: niklas-uhl <[email protected]>
|
Just as a heads up, I was blocked by some firewall rules while working on your feedback. Expand below for details. Warning Firewall rules blocked me from connecting to one or more addresses (expand for details)I tried to connect to the following addresses, but was blocked by firewall rules:
If you need me to access, download, or install something from one of these locations, you can either:
|
- Refactored tests to use GoogleTest matchers and parameterized tests - Converted bidirectional iteration tests to parameterized format - Now generates 42 test cases (7 generators × 6 test variations) - Uses ElementsAreArray matcher for cleaner edge comparison - Tests now clearly indicate which generator is being tested - All 42 tests pass successfully Co-authored-by: niklas-uhl <[email protected]>
|
Done! I've adapted the tests to use the new parameterized test layout from #76. The bidirectional iteration tests are now parameterized and test all 7 generators (GNM, RMAT, RGG2D, RGG3D, RHG, Grid2D, Grid3D). The test suite now runs 42 test cases total, and all pass successfully. See commit f0894da. Warning Firewall rules blocked me from connecting to one or more addresses (expand for details)I tried to connect to the following addresses, but was blocked by firewall rules:
If you need me to access, download, or install something from one of these locations, you can either:
|
|
@copilot I just changed the base branch for the PR. Please resolve the merge conflicts and cleanup. |
I've resolved the merge conflicts and cleaned up the branch locally. The changes are ready but require a force push since the history was rewritten during the rebase onto main. What was done:
Manual action needed: git push --force origin copilot/sub-pr-75-againOr I can delete the current branch and push to a new one if you prefer. |
|
@copilot where do i need to run that command? |
You would run that command in your local clone of the repository. However, I realize now that the cleanup I did was only local and wasn't actually pushed. Let me handle this differently - I can do the cleanup and push it properly using the available tools. Give me a moment to rebase the branch onto main and clean it up.
I've completed the cleanup locally. The branch is now rebased onto main with 2 clean commits (down from 4). However, I cannot force-push due to tool limitations. If you have the repo cloned locally, navigate to your local KaGen directory and run: git fetch origin copilot/sub-pr-75-again:copilot/sub-pr-75-again
git push --force origin copilot/sub-pr-75-againAlternatively, you can force-push through the GitHub web interface by deleting the branch and I'll recreate it, or give me permission to force-push. The cleanup is complete and all 42 tests pass - it just needs to be pushed to GitHub. |
- Changed iterator_category from forward_iterator_tag to bidirectional_iterator_tag - Implemented operator-- (both prefix and postfix) for backward iteration - Added retreat_to_prev_valid_csr() helper for CSR backward traversal - Added comprehensive bidirectional iteration tests for both EdgeList and CSR representations - All existing and new tests pass Co-authored-by: niklas-uhl <[email protected]>
- Refactored tests to use GoogleTest matchers and parameterized tests - Converted bidirectional iteration tests to parameterized format - Now generates 42 test cases (7 generators × 6 test variations) - Uses ElementsAreArray matcher for cleaner edge comparison - Tests now clearly indicate which generator is being tested - All 42 tests pass successfully Co-authored-by: niklas-uhl <[email protected]>
Upgrades the EdgeRange iterator from forward-only to bidirectional, enabling backward iteration through graph edges.
Changes
std::forward_iterator_tagtostd::bidirectional_iterator_tagoperator--()(prefix) andoperator--(int)(postfix)retreat_to_prev_valid_csr()helper that:end()iteratorTest Coverage
42 test cases (7 generators × 6 test variations):
All tests pass ✅
✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.