Skip to content

Automated testing to compare with networkx #10

Open
@eriknw

Description

@eriknw

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    testsUnit tests and/or continuous integration

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions