Skip to content

Deduplicate GNM edge list#46

Open
RobbieRao wants to merge 1 commit into
google:mainfrom
RobbieRao:agent/fix-edge-list-deduplication
Open

Deduplicate GNM edge list#46
RobbieRao wants to merge 1 commit into
google:mainfrom
RobbieRao:agent/fix-edge-list-deduplication

Conversation

@RobbieRao

Copy link
Copy Markdown

Summary

  • derive deduplication keys from canonicalized undirected edge endpoints
  • remove duplicate directed edges from GNM.edge_list
  • add a regression assertion that every returned directed edge is unique

Root cause

edge_list canonicalized each edge as (min(v1, v2), max(v1, v2)), but computed uniqueness keys from the original directed endpoints. Shared quad edges commonly appear with opposite winding, so (u, v) and (v, u) received different keys even though they represented the same undirected edge. Both copies were then expanded in both directions.

Impact

For GNM Head v3, edge_list shrinks from 141,296 rows to 70,946 rows while preserving the same adjacency. All 70,946 returned directed edges are unique.

Testing

  • python gnm/shape/gnm_numpy_test.py — 82 passed, 2 skipped
  • python gnm/shape/run_all_tests.py — 278 passed, 2 skipped
  • pylint gnm/shape/gnm_xnp.py gnm/shape/gnm_numpy_test.py

@google-cla

google-cla Bot commented Jul 23, 2026

Copy link
Copy Markdown

Thanks for your pull request! It looks like this may be your first contribution to a Google open source project. Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA).

View this failed invocation of the CLA check for more information.

For the most up to date status, view the checks section at the bottom of the pull request.

@RobbieRao

Copy link
Copy Markdown
Author

@googlebot rescan

@RobbieRao
RobbieRao marked this pull request as ready for review July 23, 2026 17:16
@RobbieRao
RobbieRao force-pushed the agent/fix-edge-list-deduplication branch from 79c8aab to e1a994f Compare July 23, 2026 17:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant