GSoC 2026 Week 8 Report: Implementation of Make Biconnected Planar and Make Maximal Planar Algorithm to pgRouting

Mohit Rawat
Github id: Mohit242-bit

Mentors: @cvvergara, @robe
Organization: OSGeo / pgRouting
OSGeo Profile: OSGeo Profile Link
Project Wiki: Github Wiki Link
Repository: Repo Link

This is my eighth weekly report of Official coding period for GSoC 2026

Week 8 Report

What did I get done this week?(13th July - 19th July)

This week, I intentionally shifted my entire focus away from algorithm development to concentrate fully on rewriting and fixing the pgTAP tests. Ensuring the correctness and robustness of the testing framework for the planar algorithms is critical, so I completely rebuilt the edge cases testing suite for both makeBiconnectedPlanar and makeMaximalPlanar.

  • Edge Cases Validation: I rewrote the edge_cases.pg tests to accurately test 0-vertex, 1-vertex, and 2-vertex graphs.

  • Sample Data Alignment: Instead of using arbitrary mock data, I aligned the pgTAP queries to correctly pull from the standard pgRouting edges sample dataset (e.g., extracting specific edge IDs that accurately represent single-vertex self-loops and two-vertex path graphs).

What do I plan on doing next week? (20th July - 26th July)

Next week, I will shift my focus back to the documentation and i will continue writing and structuring the pgTAP test files to ensure comprehensive coverage of all remaining edge cases and standard scenarios for the planar family of functions.

  • Planar Family Documentation: I will create the planar-family.rst index page. I need to group all the planar functions (pgr_isPlanar, pgr_makeBiconnectedPlanar, and pgr_makeMaximalPlanar) so they appear correctly in the Table of Contents

  • Graphviz Visual Redraw: Finish redrawing the maximal_planar_sampledata diagram using Graphviz to explicitly reposition nodes so that zero edges cross, providing a true planar embedding visualization for the documentation.

Am I blocked on anything? No

References:

1] Link to detailed wiki page

2] Link to github repository

3] Link to pull requests : [1] and [2]