Skip to content

Automated testing to compare with networkx #10

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.

Activity

eriknw commented on May 23, 2022

@eriknw
MemberAuthor
changed the title [-]Warm fuzzies: automated testing to compare with networkx[/-] [+]Automated testing to compare with networkx[/+] on Jun 8, 2022
added
testsUnit tests and/or continuous integration
on Jun 15, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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