Commit Graph

116 Commits

Author SHA1 Message Date
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 dd0399dcdd Merge pull request 'Add prelude' (#4) from feature/prelude into main
Reviewed-on: #4
0.2.1
2026-07-07 11:45:41 +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 4b3586b1eb Merge pull request 'Type additions and renames' (#3) from dev into main
Reviewed-on: #3
0.2.0
2026-07-06 19:13:13 +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 4f08eb453f Merge pull request 'Initial release' (#1) from dev into main
Reviewed-on: #1
0.1.0
2026-06-30 10:26:49 +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