Commit Graph
100 Commits
Author SHA1 Message Date
warrence 3478274959 Add From and FromGraph implementations for Graph and AppendGraph 2026-09-28 23:58:30 +02:00
warrence a9190f88db Add From and FromGraph tests for FrozenGraph and for GraphTopologyAddition
The new tests are analogous to the existing Clone tests. Currently, only FrozenGraph implements From and FromGraph, but not GraphTopologyAddition, so the tests relying on GraphTopologyAddition are currently unused.
2026-09-25 08:41:10 +02:00
warrence d438a4288a Extract asserts from Clone tests to be reusable 2026-09-25 08:36:30 +02:00
warrence 0dea90ceff Update Dijkstra's algorithm to take any weights that satisfy the new Weight trait 2026-09-25 08:32:56 +02:00
warrence 64c48287a7 Fix ElementMap capacity in FrozenGraph::edge_map 2026-09-19 18:07:33 +02:00
warrence 345dbc0d5d Add ElementMap::map 2026-09-19 17:59:27 +02:00
warrence 038e984c97 Add FromGraph trait, and add implementation for FrozenGraph 2026-09-19 17:53:44 +02:00
warrence e593298eba Add Clone to graph models, and tests 2026-09-19 17:19:47 +02:00
warrence 4c6a8a43e4 Refactor tests: use MakeTestGraph in model-specific tests, deconstruct vertex arrays where useful, adjust local variable names 2026-09-04 09:28:00 +02:00
warrence 016d127bd1 Update comment for pub, hidden Graph structs 2026-09-04 08:16:09 +02:00
warrence 8c3c6abc78 Updated todos 2026-09-03 20:40:43 +02:00
warrence 3ad448974e Add new assert helper function for GraphTopologyDeletion tests 2026-09-03 20:40:15 +02:00
warrence 1209d75e15 Use non-zero edge indices to reduce size of structs with Option fields 2026-09-03 20:28:41 +02:00
warrence c25a8a4fc1 Add FrozenGraph tests 2026-09-03 19:49:45 +02:00
warrence 73af8a16ca Add algorithms::bfs_find_path 2026-09-03 09:43:45 +02:00
warrence a8b6f7591c Move common test helpers to fixtures module 2026-09-03 09:10:03 +02:00
warrence 8a1d491943 Format test code 2026-09-03 09:06:22 +02:00
warrence 5825ef3b47 Change all graph tests to pub to avoid unused-warnings 2026-09-02 09:30:37 +02:00
warrence 0ff830ef48 Refactor graph trait tests to minimize macro code, and split into separate files per macro
The tests only declare a list of tests in the macro, no longer the test functions themselves. This allows better tooling support (e.g. IDE and rustfmt).
2026-08-31 19:49:42 +02:00
warrence df5170f2f5 Refactor algorithm tests to minimize macro code, and move into tests/
The tests only declare a list of tests in the macro, no longer the test functions themselves. This allows better tooling support (e.g. IDE and rustfmt).
2026-08-31 19:44:55 +02:00
warrence 6d3a206995 Hide mod testing from documentation 2026-08-31 19:44:05 +02:00
warrence 95601a7a5a Add todos 2026-08-29 22:39:45 +02:00
warrence 7fbd5eed9d Refactor graph creation in all tests into new internal MakeTestGraph trait
This large refactor allows future re-use of the existing tests for `FrozenGraph`, which does not implement `GraphTopologyAddition`, but instead has to convert from a different graph which does.

- Fix tests for `GraphTopologyDeletion` hard-coding Graph instead of using the trait.
- Fix some tests silently depending on macro call site uses.
- Change `GraphTopologyAddition` tests to use `Default::default` instead of `new`.
- Add new tests for `GraphTopology::vertex_map` and `edge_map` that also depend on `GraphTopologyAddition`, removing these dependencies from the existing tests.
- Add new test macro `graph_topology_addition_deletion_tests` for tests that need deletion and addition.
2026-08-29 22:38:27 +02:00
warrence 1185e3b667 Add Default trait to GraphTopologyAddition 2026-08-27 20:11:54 +02:00
warrence cbabb8f960 Remove unnecessary doc link path parts 2026-08-27 20:11:03 +02:00
warrence a89086253a Add FrozenGraph (without tests) 2026-08-17 10:25:52 +02:00
warrence 5085b7795b Remove local vars in AppendGraph::incident_vertices and construct result directly 2026-08-17 10:20:53 +02:00
warrence cd1d2cddee Move related tests into new testing macro for GraphTopologyAddition 2026-08-17 10:19:22 +02:00
warrence 3d99501d4b Fix inline documentation after recent changes 2026-08-17 10:16:54 +02:00
warrence b4374174a9 Add reserve_vertices and reserve_edges to GraphTopologyAddition 2026-08-07 19:01:03 +02:00
warrence 59d9c2b8a7 Add ElementMap::reserve to replace ElementMap::expand, update tests
ElementMap tests are now self contained unit tests, without any graph context. The only exception is the repurposed test "reused_slot_returns_old_value", which is not suited for GraphTopologyDeletion, but actually specific for Graph.
2026-08-06 23:06:52 +02:00
warrence a7346bd782 Rename EntityMap to ElementMap (tests not yet updated) 2026-08-06 23:01:10 +02:00
warrence 7d8c9aaa10 Add link in lib module doc 2026-08-06 20:54:42 +02:00
warrence 10d0c382cc Add GraphTopologyAddition trait from GraphTopology
Move capacity and add methods from GraphTopology trait to new GraphTopologyAddition trait
2026-08-06 14:17:21 +02:00
warrence 2851cf60fd Add Incidence struct for GraphTopology to use 2026-08-06 09:57:51 +02:00
warrence 110e6310aa Use PriorityQueue for Dijkstra's, requires Hash for Vertex 2026-08-06 09:44:28 +02:00
warrence 53a6bed932 Add todos 2026-07-31 10:24:51 +02:00
warrence afaf161344 Rename 'weight' parameter in Dijkstra's algorithm to 'weights' 2026-07-31 10:23:47 +02:00
warrence 0169343ac8 Merge branch 'main' into release-0.3.0 2026-07-31 10:16:03 +02:00
warrence b752e3f9d4 Update package version 2026-07-31 09:34:13 +02:00
warrence 1b79809e2f Remove deprecated method calls from map tests 2026-07-31 09:33:26 +02:00
warrence 242aba09e8 Rename VertexMap/EdgeMap::extend to "expand"
This avoids the naming conflict with e.g. Vec::extend
2026-07-31 09:32:52 +02:00
warrence 1b8df19d00 Remove tests for deprecated VertexMap/EdgeMap::sync 2026-07-31 09:31:21 +02:00
warrence 517b83b328 Add warning for missing docs 2026-07-31 08:50:19 +02:00
warrence dd4e959554 Merge branch 'docs' into release-0.2.4 2026-07-31 08:44:10 +02:00
warrence cf1dafceb7 Add remaining docs for algorithms module 2026-07-28 22:57:55 +02:00
warrence 9a1e2faa9a Allow missing docs on deprecated maps methods 2026-07-28 22:56:51 +02:00
warrence 08b2c4db65 Add documentation for Dijkstra's algorithm, and rearrange related functions 2026-07-27 09:58:41 +02:00
warrence dfa8f8f0df Add EntityMap::extend and deprecate VertexMap/EdgeMap::sync 2026-07-27 08:56:58 +02:00
warrence 43c4ba45a2 Add documentation for maps module 2026-07-27 08:47:19 +02:00
warrence 99bab32f8c Add module level documentation for prelude, models, and testing 2026-07-24 20:57:19 +02:00
warrence 6e80b2fc9a Update traits module documentation 2026-07-24 20:56:39 +02:00
warrence b5cc3b1c3f Add documentation for Graph 2026-07-24 20:55:41 +02:00
warrence 21e79c660f Update documentation for AppendGraph 2026-07-24 20:55:01 +02:00
warrence 399b36bb16 Add documentation for Graph and AppendGraph EntityMap types 2026-07-24 10:13:15 +02:00
warrence 9f76ce4ce3 Fix vertex_capacity and edge_capacity in AppendGraph
Fix AppendGraph::vertex_capacity and AppendGraph::edge_capacity to use the actual capacity of the underlying Vecs.
2026-07-24 10:09:37 +02:00
warrence d9dc102993 Add documentation for models::append_graph module 2026-07-24 10:06:43 +02:00
warrence 3708c1e0d1 Fix formatting 2026-07-22 13:45:46 +02:00
warrence 9608796f23 Move dfs_find_path tests into dfs_testing 2026-07-22 13:44:32 +02:00
warrence c253e4a840 Add tests for GraphTopology::vertex_map and edge_map 2026-07-22 13:31:15 +02:00
warrence d711e68577 Replace VertexMap and EdgeMap with now public EntityMap 2026-07-22 13:30:09 +02:00
warrence 8db7a86187 Add Petersen graph generator 2026-07-18 23:38:08 +02:00
warrence 3fa4b66981 Fix IncidenceCursor for AppendGraph and Graph, and add tests 2026-07-17 22:06:28 +02:00
warrence ad9850800d Update IncidenceCursor trait doc with note on Copy 2026-07-17 11:30:45 +02:00
warrence a14202effc Merge branch 'main' into release-0.3.0 2026-07-17 11:29:41 +02:00
warrence 8f9f0bf4c8 Add language tag to readme example code for syntax highlighting 2026-07-17 11:21:31 +02:00
warrence e8568a084a Fix doc example for early doc release 2026-07-17 11:15:12 +02:00
warrence e6b08d9148 Remove doc warnings for early doc release 2026-07-17 11:13:31 +02:00
warrence b62c263b08 Update package version 2026-07-17 11:12:21 +02:00
warrence 7345684f00 Add documentation for traits module 2026-07-17 11:04:08 +02:00
warrence 2c53d92943 Fix readme typo 2026-07-17 11:00:02 +02:00
warrence 913a9e0baa Fix AppendGraph::capacity to actually use the underlying vec's capacity 2026-07-17 09:54:16 +02:00
warrence 8c6c98859c Add Copy to IncidenceCursor trait 2026-07-17 09:53:05 +02:00
warrence 24c08438d6 Add IncidenceCursor to prelude 2026-07-17 09:52:35 +02:00
warrence bf6a7142f3 Fix readme typo 2026-07-17 09:50:43 +02:00
warrence c131f520f4 Add crate doc front-page, and update readme 2026-07-14 20:01:08 +02:00
warrence b6c27ea605 Merge branch 'main' into docs 2026-07-14 09:54:17 +02:00
warrence 2f549cc506 Update package version 2026-07-13 10:49:25 +02:00
warrence cf31ee2f01 Replace VertexMap/EdgeMap.len with capacity
Rename EdgeMap.len to capacity.
Add VertexMap.capacity and EdgeMap.capacity.
Deprecate VertexMap.len and EdgeMap.len.
2026-07-13 10:48:16 +02:00
warrence e58261ba47 Add BfsImplResult and DfsImplResult as named return structs 2026-07-10 13:12:30 +02:00
warrence fb9dfe8280 Renamed len() to capacity() in EntityMap, VertexMap, and EdgeMap
len() is generally expected to describe the number of elements in a collection,
but in this case elements beyond len() are accessible without restriction.
capacity() is a better name because it describes data storage size.
2026-07-10 11:58:45 +02:00
warrence 818b37ec15 Add linter warning for missing docs 2026-07-10 10:18:39 +02:00
warrence 3c4391ac1d Update package version 2026-07-07 11:44:57 +02:00
warrence bbd9506bbc Add prelude module for common traits 2026-07-07 11:44:17 +02:00
warrence c8dda39b98 Update package version 2026-07-06 18:50:22 +02:00
warrence 1446103d34 Add concrete type aliases of VertexMap and EdgeMap for Graph and AppendGraph 2026-07-06 18:49:02 +02:00
warrence 266dee783b Rename append_graph::Incidence to Edge to unify public naming 2026-07-06 17:52:42 +02:00
warrence e3a24894f6 Changed graph::Vertex and graph::Edge to be public to simplify Graph usage 2026-07-06 17:51:15 +02:00
warrence 6d2d1de8ea Hide testing macros from docs 2026-07-03 22:49:14 +02:00
warrence 2d400628f7 Re-publish AppendGraph and Graph in models 2026-07-03 21:49:28 +02:00
warrence 6a0c426c77 Rename find_path* algorithms to dfs_find_path* 2026-07-03 21:43:55 +02:00
warrence db79da7301 Update cargo package metadata 2026-06-30 10:23:27 +02:00
warrence 6b742a53f5 Update cargo package metadata 2026-06-30 10:21:05 +02:00
warrence fb64e370dc Update readme and license information 2026-06-29 21:04:48 +02:00
warrence 21c95b4796 Add find_path algorithm and tests 2026-06-29 21:03:10 +02:00
warrence f009a86f1e Add GraphTopology.incidence_cursor() for certain use-cases where the iterator is problematic
Also add raw_incidences() and step_incidence() to AppendGraph analogously to
Graph, which allows to remove RawIncidenceIterator and simplify its call sites.
2026-06-26 23:36:41 +02:00
warrence c197766229 Fix formatting 2026-06-26 15:38:49 +02:00
warrence c147ed4974 Update breadth-first search tests 2026-06-26 15:35:23 +02:00
warrence 135f256141 Add depth-first search algorithms and tests 2026-06-26 15:34:42 +02:00
warrence 91ac925417 Add breadth-first search algorithms and tests 2026-06-25 21:56:22 +02:00