Dan Kortschak
5ed7775611
graph/{iterator,multi}: use map iterators for lines and weighted lines
2021-06-25 08:14:19 +09:30
Dan Kortschak
0fb53cb2a5
graph/multi: use more efficient and correct direction dedup logic
...
Also add test case to testgraph corpus.
2021-06-23 21:00:45 +09:30
Dan Kortschak
82cfcc5c1f
graph/multi: use correct test for empty iterator
2021-06-23 21:00:45 +09:30
Dan Kortschak
a6ddba7f8d
graph/{multi,simple,testgraph}: add support for ID-specified node addition
2021-03-16 09:37:18 +10:30
Dan Kortschak
9076f1c7d1
graph/set/uid: make uid package publicly available
2021-01-07 07:24:35 +10:30
Dan Kortschak
84c458a64e
graph/{multi,testgraph}: make line ID allocation per node pair
2020-12-19 21:14:24 +10:30
Dan Kortschak
a961bdeed7
graph/multi: use lazy edge-based node iterator for From, To and Nodes methods
2020-07-02 07:47:46 +09:30
Dan Kortschak
e532b71013
graph/{multi,simple}: don't return pointer values from NewEdge/NewLine
2019-11-28 21:55:09 +10:30
Dan Kortschak
e51f19f66e
all: gofmt -s
2019-09-08 18:45:57 +09:30
Dan Kortschak
e8e4638a21
graph/multi: don't allocate line maps before they are needed
2019-08-03 07:06:15 +09:30
Dan Kortschak
761876748e
graph: make edges and lines reversible
2019-03-13 07:14:55 +10:30
Dan Kortschak
8e5c62bb4c
graph/multi: wire up node and line addition and deletion tests
...
Fix failing case for RemoveLine in the undirected types.
2019-02-01 08:51:46 +10:30
Dan Kortschak
14c7f9569f
graph: add Empty universal iterator for empty returns
2018-12-22 09:59:24 +10:30
Dan Kortschak
48288cca5b
graph/{multi,simple}: harmonise code order
...
Previously there was an attempt to maintain some kind of semantic ordering,
but given the needed complexity of the API this has become untenable. So
just order according to the Godoc — alphabetical for exported methods and
functions. For unexported functions, use judgement.
One method, Has on multi.DirectedGraph, that should not have been present is
deleted.
2018-11-08 07:11:52 +10:30
Dan Kortschak
de98af5d4b
graph/multi: clean up missed changes and bugs
2018-10-12 20:36:12 +10:30
Dan Kortschak
969ecdd209
graph: remove Has method from Graph and Multigraph
2018-10-12 17:57:01 +10:30
Dan Kortschak
46d85b5bdf
graph: avoid issues around graph node retrieval subtleties
...
With the approach to graph node mutation on edge setting the previously
existed there was an issue that the edge last used connect a pair of
nodes could result in a difference in the nodes being returned by a node
query compared to the same node associated with edges returned from an
edge query.
This change avoids dealing with that by making it implementation
dependent and stating this, and by making all the node-storing graphs
we provide mutate the nodes when edges are set.
2018-09-29 19:26:44 +09:30
Dan Kortschak
72366fbe54
graph/{multi,simple}: ensure implementations satisfy the interfaces they target
2018-09-23 19:12:43 +09:30
Dan Kortschak
b73a2c92ff
graph: add node, edge and line iterators
2018-09-23 09:25:56 +09:30
Dan Kortschak
32a6369498
graph: use int64 for edge and line removal
2018-05-07 19:11:10 +09:30
Dan Kortschak
a1b5d898fe
graph: use int64 for node removal
2018-05-07 19:11:10 +09:30
Dan Kortschak
6b03bc22e1
graph: use int64 for node retrieval
2018-03-24 09:21:44 +10:30
kortschak
34369ddb26
multi: new package implementing multigraph API
2018-01-19 21:59:01 +10:30