Commit Graph
100 Commits
Author SHA1 Message Date
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
warrence e299012948 Move the disconnected test graph to the more general graph_topology_test_fixtures macro 2026-06-25 20:17:55 +02:00
warrence 3adfb4b9eb Add todo for custom weight type for Dijkstra's algorithm 2026-05-18 16:15:46 +02:00
warrence ce692cb0b2 Add trait imports to test functions, making macros self-contained 2026-05-18 15:55:56 +02:00
warrence 465a383683 Add tests for Dijkstra's algorithm with edge weights 2026-05-18 12:48:12 +02:00
warrence 25b5d7864a Refactor Dijkstra test assertions into new functions 2026-05-18 12:45:28 +02:00
warrence 13daf20e1c Update test names for Dijkstra's algorithm to match the tested functions
This should have happened when the functions were renamed with the introduction of custom edge weights
2026-05-13 14:04:07 +02:00
warrence 600664acb6 Update tests for Dijkstra's algorithm to test both graph models
Use the already established macro pattern, move actual tests to a new file in src/testing.
Use the make_test_graph() function from the graph topology tests instead of duplicating it for the Dijkstra tests.
2026-05-13 14:02:07 +02:00
warrence e479074151 Remove todo, proposed change would not affect callers 2026-05-13 12:18:27 +02:00
warrence aaa1b34db3 Add todo that was accidentally removed 2026-05-13 12:16:10 +02:00
warrence f862ac55ec Add GraphTopology::incident_edges() and tests 2026-05-13 10:59:38 +02:00