warrence
dfa8f8f0df
Add EntityMap::extend and deprecate VertexMap/EdgeMap::sync
2026-07-27 08:56:58 +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
3fa4b66981
Fix IncidenceCursor for AppendGraph and Graph, and add tests
2026-07-17 22:06:28 +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
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
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
warrence
384dca2d20
Fix inconsistent local var name in test function
2026-05-13 10:58:47 +02:00
warrence
340fde2133
Add Graph::raw_incidences() iterator as a wrapper for step_incidence()
2026-05-13 10:32:37 +02:00
warrence
6191def324
Fix format
2026-05-13 10:30:36 +02:00
warrence
ff148532ab
Move maps tests to integration tests
2026-05-12 18:32:45 +02:00
warrence
f1d5ccafd2
Add len() for VertexMap and EdgeMap
2026-05-12 18:26:52 +02:00
warrence
be63527478
Add incident vertices to edges return value in make_test_graph() fixture
2026-05-12 13:55:04 +02:00
warrence
ac688b4fc0
Extracted some assert code for GraphTopology::incidences into new fn
2026-05-12 13:39:13 +02:00
warrence
f45fc98afc
Add GraphTopology::incident_vertices and tests
2026-05-12 13:37:27 +02:00
warrence
85e25ef0ca
Refactor Graph iterator structs into private method used with std::iter::from_fn()
2026-05-08 20:48:43 +02:00
warrence
2eb054eb0c
Refactor AppendGraph iterators into one RawIncidenceIterator
2026-05-08 20:40:20 +02:00
warrence
0f5f0d67d2
Update Dijkstra's to use incidences instead of neighbors, and with it custom edge weights
2026-05-08 13:16:23 +02:00
warrence
0bcd270d12
Add GraphTopology::incidences(), update and add related tests
2026-05-08 13:12:23 +02:00
warrence
d3fcd690a5
Remove deprecated From<Vertex> for usize implementation
2026-05-08 12:57:16 +02:00
warrence
4e47573290
Renamed the private graph iterators to attune for upcoming changes
2026-05-07 18:01:16 +02:00
warrence
a7be995e34
Change "neighbor" terminology to "adjacent vertex" throughout the code
2026-05-07 17:34:20 +02:00
warrence
726e7691ea
Add weight parameter for Dijkstra's algorithm, add unweighted variants (unused)
2026-05-07 17:15:34 +02:00
warrence
6fe3acb306
Add EdgeMap and private generic EntityMap, update tests
2026-05-07 16:03:17 +02:00
warrence
e074fdf944
Move edge_count() in method order
2026-05-07 11:38:15 +02:00
warrence
016cece626
Update VertexMap tests to validate both graph models
2026-05-07 00:12:06 +02:00
warrence
7f91743b02
Add VertexMap tests for Graph (vertex deletion)
2026-05-06 23:37:48 +02:00
warrence
166b91cdd2
Update Dijkstra's algorithm to use VertexMap
2026-05-06 20:28:53 +02:00
warrence
f40c03b113
Add VertexMap to attach data to vertices
2026-05-06 20:28:00 +02:00
warrence
6e9867a65e
Add GraphTopology::edges() and tests
2026-05-05 22:54:33 +02:00
warrence
c589095737
Add test for GraphTopology::vertices() after delete
2026-05-05 22:52:07 +02:00
warrence
18245b9955
Add Copy and Eq traits to GraphTopology::Edge
2026-05-05 22:37:32 +02:00
warrence
feaca335b1
Add loops and multi-edges to the test graph, fix neighbors() test
2026-05-05 19:21:48 +02:00
warrence
8324f93ebd
Add graph topology test helper macros to deduplicate test code
2026-04-30 17:41:53 +02:00
warrence
09c5850ff3
Add Graph::delete_vertex() implementation
2026-04-29 20:50:19 +02:00
warrence
b3dc0ea666
Add test for Graph vertex deletion with loop
2026-04-29 20:49:34 +02:00
warrence
5b0d6ca1ad
Fix Graph::delete_edge() for paired index with loops
...
- Add new tests for this case
- Fix double list traversal for loop deletions
- Rename Graph::delete_incidence() to update_incidence_list(), and its arguments and local vars
2026-04-29 18:24:10 +02:00
warrence
2793f8af8a
Add Graph::delete_edge() implementation
2026-04-28 17:39:32 +02:00
warrence
ceedea6a0f
Fix formatting
2026-04-28 17:38:41 +02:00
warrence
8e0b3325f5
Update and adds tests for Graph edge deletion
2026-04-28 17:36:38 +02:00
warrence
f075501828
Add comments for AppendGraph and Graph add_incidence()
2026-04-28 17:35:00 +02:00
warrence
0ae4d486cb
Add and update todos
2026-04-28 17:29:54 +02:00
warrence
a8168b35e4
Add unit tests for GraphTopologyDeletion for Graph
2026-04-23 22:50:11 +02:00
warrence
0a30307a0d
Update todos
2026-04-23 22:49:12 +02:00
warrence
37a911dce0
Change GraphTopology implementation for Graph with generational arena
2026-04-23 18:25:23 +02:00
warrence
67e16f50cd
Fix same issues in Graph draft as well
2026-04-23 18:23:54 +02:00
warrence
02cd1a0dea
Fix several minor issues in AppendGraph::are_adjacent(), unit tests, and formatting
2026-04-23 18:18:36 +02:00
warrence
6180786e33
Fix AppendGraph unit tests
2026-04-23 18:13:10 +02:00
warrence
eabde7d635
Add Default implementation for AppendGraph
2026-04-23 18:10:43 +02:00
warrence
b54800c1be
Add new GraphTopologyDeletion trait for Graph to implement
2026-04-22 16:33:33 +02:00
warrence
8126352c9b
Add Graph as a straight copy of AppendGraph
2026-04-22 16:33:05 +02:00
warrence
d0cbebcae0
Fix formatting
2026-04-22 16:32:17 +02:00
warrence
ee26b7a3e0
Move AppendGraph to its own module
2026-04-22 16:31:17 +02:00
warrence
a939f9b889
Add Dijkstra variant without returning predecessors
2026-04-22 15:50:45 +02:00
warrence
a250bde626
Add DijkstraResult return type instead of unnamed tuple
2026-04-22 14:49:07 +02:00
warrence
41f2332735
Add test for add_edge() return value
2026-04-22 14:36:41 +02:00
warrence
ab830ed221
Rename Graph to AppendGraph for future other graph models
2026-04-22 14:31:11 +02:00
warrence
9088dd4683
Add edge return type to GraphTopology::add_edge()
...
There is currently no use for the return type, but it will come.
2026-04-22 14:28:21 +02:00
warrence
da9ba7b0ad
Add GraphTopology trait and use it to interface graph model with algorithm
2026-04-22 14:26:35 +02:00
warrence
489ed6d506
Combine next_incidences and incidence_vertices of Graph into one, and rename incidence_headers to vertices
2026-03-19 21:21:52 +01:00
warrence
c5a0f2a3f6
Add tests for loops and multiple edges
2025-11-03 14:03:21 +01:00
warrence
3565b6b548
Remove pub from structs and fields that should have been private
...
Graph fields can now be private because of the new iterators Graph::vertices()
and Graph::neighbors(). Without them there was no way to access vertices and
incidences without the public Graph fields.
2025-10-25 01:23:05 +02:00
warrence
5ad480b379
Add tests for Dijkstra's algorithm on trivial graphs
2025-10-25 01:15:16 +02:00
warrence
64d0302d64
Update Dijkstra's algorithm to use Graph::neighbors() iterator
2025-10-25 01:03:02 +02:00
warrence
149db22fe8
Add todo
2025-10-25 00:57:29 +02:00