Open
Description
It would be super-duper handy to be able to automatically generate input graphs and node selection lists (i.e., masks) to run with both NetworkX and graphblas-algorithms
and compare results.
For example, it would be nice to cover:
- Graph and DiGraph
- With and w/o self-edges
- Symmetric and asymmetric DiGraph
- Purely structural (all edges 1)
- Edge values contain all combinations of {positive, 0, negative}, and with ints or floats
- Different edge densities, including full graph (w/ and w/o self-edges)
- Empty graph, only self-edges
- Some rows and/or columns are empty (i.e., no in-edges or out-edges or both)
- Perhaps some graphs with specific shapes: ring, tree, DAG, etc
- Bipartite graphs
- More than one groups of connected components (by construction)
- etc.
Perhaps we could leverage hypothesis
to help generate random inputs. I would be delighted if we began with a very small subset of the above.
CC @jim22k who has done similar work in the past. Having this functionality would be incredibly useful in making sure we match NetworkX. For one thing, it would help us determine what to do about self-edges, which may be poorly defined at times for NetworkX (I really don't know if it is or not), but should be well-defined for us: do what NetworkX does.