\set hexagon '\'880326b885fffff\'' \set neighbor '\'880326b887fffff\'' \set pentagon '\'831c00fffffffff\'' \set uniedge 'h3_get_h3_unidirectional_edge(:hexagon, :neighbor)' SELECT :uniedge; h3_get_h3_unidirectional_edge ------------------------------- 1180326b885fffff (1 row) SELECT h3_h3_indexes_are_neighbors(:hexagon, :neighbor), TRUE expected; h3_h3_indexes_are_neighbors | expected -----------------------------+---------- t | t (1 row) SELECT h3_h3_indexes_are_neighbors(:hexagon, :hexagon), FALSE expected; h3_h3_indexes_are_neighbors | expected -----------------------------+---------- f | f (1 row) SELECT h3_h3_unidirectional_edge_is_valid(:uniedge), TRUE expected; h3_h3_unidirectional_edge_is_valid | expected ------------------------------------+---------- t | t (1 row) SELECT h3_h3_unidirectional_edge_is_valid(:hexagon), FALSE expected; h3_h3_unidirectional_edge_is_valid | expected ------------------------------------+---------- f | f (1 row) SELECT h3_get_origin_h3_index_from_unidirectional_edge(:uniedge), :hexagon expected; h3_get_origin_h3_index_from_unidirectional_edge | expected -------------------------------------------------+----------------- 880326b885fffff | 880326b885fffff (1 row) SELECT h3_get_destination_h3_index_from_unidirectional_edge(:uniedge), :neighbor expected; h3_get_destination_h3_index_from_unidirectional_edge | expected ------------------------------------------------------+----------------- 880326b887fffff | 880326b887fffff (1 row) SELECT h3_get_h3_indexes_from_unidirectional_edge(:uniedge), (:hexagon, :neighbor) expected; h3_get_h3_indexes_from_unidirectional_edge | expected --------------------------------------------+----------------------------------- (880326b885fffff,880326b887fffff) | (880326b885fffff,880326b887fffff) (1 row) SELECT array_length(array_agg(edge), 1), 6 expected FROM ( SELECT h3_get_h3_unidirectional_edges_from_hexagon(:hexagon) edge ) q; array_length | expected --------------+---------- 6 | 6 (1 row) SELECT array_length(array_agg(edge), 1), 5 expected FROM ( SELECT h3_get_h3_unidirectional_edges_from_hexagon(:pentagon) edge ) q; array_length | expected --------------+---------- 5 | 5 (1 row) SELECT h3_get_origin_h3_index_from_unidirectional_edge(h3_get_h3_unidirectional_edges_from_hexagon(:hexagon)), h3_get_destination_h3_index_from_unidirectional_edge(h3_get_h3_unidirectional_edges_from_hexagon(:hexagon)); h3_get_origin_h3_index_from_unidirectional_edge | h3_get_destination_h3_index_from_unidirectional_edge -------------------------------------------------+------------------------------------------------------ 880326b885fffff | 880326b887fffff 880326b885fffff | 880326b8a9fffff 880326b885fffff | 880326b8abfffff 880326b885fffff | 880326b88dfffff 880326b885fffff | 880326b881fffff 880326b885fffff | 880326b8e3fffff (6 rows) SELECT h3_get_unidirectional_edge_boundary(:uniedge); h3_get_unidirectional_edge_boundary --------------------------------------------------------------------------- ((89.5830164946548,64.7146398954916),(89.5790678021742,64.2872231517217)) (1 row)