Commit Graph

18 Commits

Author SHA1 Message Date
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
f0541c62aa graph/{multi,simple,testgraph}: extend edge testing
Fix bug found in weighted multigraphs found by addition of line and edge
testing breadth.
2019-02-10 06:51:37 +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