differt-core 0.0.14__tar.gz → 0.0.16__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (54) hide show
  1. {differt_core-0.0.14 → differt_core-0.0.16}/Cargo.lock +1 -1
  2. {differt_core-0.0.14 → differt_core-0.0.16}/PKG-INFO +1 -1
  3. {differt_core-0.0.14 → differt_core-0.0.16}/differt-core/Cargo.toml +1 -1
  4. {differt_core-0.0.14 → differt_core-0.0.16}/differt-core/src/rt/graph.rs +36 -0
  5. {differt_core-0.0.14 → differt_core-0.0.16}/Cargo.toml +0 -0
  6. {differt_core-0.0.14 → differt_core-0.0.16}/differt-core/LICENSE.md +0 -0
  7. {differt_core-0.0.14 → differt_core-0.0.16}/differt-core/README.md +0 -0
  8. {differt_core-0.0.14 → differt_core-0.0.16}/differt-core/benches/bench_main.rs +0 -0
  9. {differt_core-0.0.14 → differt_core-0.0.16}/differt-core/benches/benchmarks/graph_iterators.rs +0 -0
  10. {differt_core-0.0.14 → differt_core-0.0.16}/differt-core/benches/benchmarks/mod.rs +0 -0
  11. {differt_core-0.0.14 → differt_core-0.0.16}/differt-core/python/differt_core/__init__.py +0 -0
  12. {differt_core-0.0.14 → differt_core-0.0.16}/differt-core/python/differt_core/_lowlevel/__init__.pyi +0 -0
  13. {differt_core-0.0.14 → differt_core-0.0.16}/differt-core/python/differt_core/_lowlevel/geometry/triangle_mesh.pyi +0 -0
  14. {differt_core-0.0.14 → differt_core-0.0.16}/differt-core/python/differt_core/_lowlevel/rt/__init__.pyi +0 -0
  15. {differt_core-0.0.14 → differt_core-0.0.16}/differt-core/python/differt_core/_lowlevel/rt/graph.pyi +0 -0
  16. {differt_core-0.0.14 → differt_core-0.0.16}/differt-core/python/differt_core/_lowlevel/scene/sionna.pyi +0 -0
  17. {differt_core-0.0.14 → differt_core-0.0.16}/differt-core/python/differt_core/_lowlevel/scene/triangle_scene.pyi +0 -0
  18. {differt_core-0.0.14 → differt_core-0.0.16}/differt-core/python/differt_core/geometry/__init__.py +0 -0
  19. {differt_core-0.0.14 → differt_core-0.0.16}/differt-core/python/differt_core/geometry/triangle_mesh.py +0 -0
  20. {differt_core-0.0.14 → differt_core-0.0.16}/differt-core/python/differt_core/py.typed +0 -0
  21. {differt_core-0.0.14 → differt_core-0.0.16}/differt-core/python/differt_core/rt/__init__.py +0 -0
  22. {differt_core-0.0.14 → differt_core-0.0.16}/differt-core/python/differt_core/rt/graph.py +0 -0
  23. {differt_core-0.0.14 → differt_core-0.0.16}/differt-core/python/differt_core/scene/__init__.py +0 -0
  24. {differt_core-0.0.14 → differt_core-0.0.16}/differt-core/python/differt_core/scene/sionna.py +0 -0
  25. {differt_core-0.0.14 → differt_core-0.0.16}/differt-core/python/differt_core/scene/triangle_scene.py +0 -0
  26. {differt_core-0.0.14 → differt_core-0.0.16}/differt-core/src/geometry/mod.rs +0 -0
  27. {differt_core-0.0.14 → differt_core-0.0.16}/differt-core/src/geometry/triangle_mesh.rs +0 -0
  28. {differt_core-0.0.14 → differt_core-0.0.16}/differt-core/src/lib.rs +0 -0
  29. {differt_core-0.0.14 → differt_core-0.0.16}/differt-core/src/rt/mod.rs +0 -0
  30. {differt_core-0.0.14 → differt_core-0.0.16}/differt-core/src/scene/mod.rs +0 -0
  31. {differt_core-0.0.14 → differt_core-0.0.16}/differt-core/src/scene/sionna.rs +0 -0
  32. {differt_core-0.0.14 → differt_core-0.0.16}/differt-core/src/scene/triangle_scene.rs +0 -0
  33. {differt_core-0.0.14 → differt_core-0.0.16}/differt-core/tests/__init__.py +0 -0
  34. {differt_core-0.0.14 → differt_core-0.0.16}/differt-core/tests/benchmarks/__init__.py +0 -0
  35. {differt_core-0.0.14 → differt_core-0.0.16}/differt-core/tests/benchmarks/conftest.py +0 -0
  36. {differt_core-0.0.14 → differt_core-0.0.16}/differt-core/tests/benchmarks/test_graph.py +0 -0
  37. {differt_core-0.0.14 → differt_core-0.0.16}/differt-core/tests/rt/__init__.py +0 -0
  38. {differt_core-0.0.14 → differt_core-0.0.16}/differt-core/tests/rt/test_graph.py +0 -0
  39. {differt_core-0.0.14 → differt_core-0.0.16}/pyproject.toml +0 -0
  40. {differt_core-0.0.14 → differt_core-0.0.16}/python/differt_core/__init__.py +0 -0
  41. {differt_core-0.0.14 → differt_core-0.0.16}/python/differt_core/_lowlevel/__init__.pyi +0 -0
  42. {differt_core-0.0.14 → differt_core-0.0.16}/python/differt_core/_lowlevel/geometry/triangle_mesh.pyi +0 -0
  43. {differt_core-0.0.14 → differt_core-0.0.16}/python/differt_core/_lowlevel/rt/__init__.pyi +0 -0
  44. {differt_core-0.0.14 → differt_core-0.0.16}/python/differt_core/_lowlevel/rt/graph.pyi +0 -0
  45. {differt_core-0.0.14 → differt_core-0.0.16}/python/differt_core/_lowlevel/scene/sionna.pyi +0 -0
  46. {differt_core-0.0.14 → differt_core-0.0.16}/python/differt_core/_lowlevel/scene/triangle_scene.pyi +0 -0
  47. {differt_core-0.0.14 → differt_core-0.0.16}/python/differt_core/geometry/__init__.py +0 -0
  48. {differt_core-0.0.14 → differt_core-0.0.16}/python/differt_core/geometry/triangle_mesh.py +0 -0
  49. {differt_core-0.0.14 → differt_core-0.0.16}/python/differt_core/py.typed +0 -0
  50. {differt_core-0.0.14 → differt_core-0.0.16}/python/differt_core/rt/__init__.py +0 -0
  51. {differt_core-0.0.14 → differt_core-0.0.16}/python/differt_core/rt/graph.py +0 -0
  52. {differt_core-0.0.14 → differt_core-0.0.16}/python/differt_core/scene/__init__.py +0 -0
  53. {differt_core-0.0.14 → differt_core-0.0.16}/python/differt_core/scene/sionna.py +0 -0
  54. {differt_core-0.0.14 → differt_core-0.0.16}/python/differt_core/scene/triangle_scene.py +0 -0
@@ -238,7 +238,7 @@ checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7"
238
238
 
239
239
  [[package]]
240
240
  name = "differt-core"
241
- version = "0.0.14"
241
+ version = "0.0.16"
242
242
  dependencies = [
243
243
  "criterion",
244
244
  "log",
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: differt-core
3
- Version: 0.0.14
3
+ Version: 0.0.16
4
4
  Classifier: Programming Language :: Python :: 3
5
5
  Classifier: Programming Language :: Python :: 3.9
6
6
  Classifier: Programming Language :: Python :: 3.10
@@ -32,4 +32,4 @@ name = "differt_core"
32
32
  edition = "2021"
33
33
  name = "differt-core"
34
34
  rust-version = "1.75.0"
35
- version = "0.0.14"
35
+ version = "0.0.16"
@@ -117,6 +117,9 @@ pub mod complete {
117
117
  /// A complete graph, i.e.,
118
118
  /// a simple undirected graph in which every pair of
119
119
  /// distinc nodes is connected by a unique edge.
120
+ ///
121
+ /// Args:
122
+ /// num_nodes (int): The number of nodes.
120
123
  #[pyclass]
121
124
  #[derive(Clone, Debug)]
122
125
  pub struct CompleteGraph {
@@ -547,6 +550,12 @@ pub mod directed {
547
550
  }
548
551
 
549
552
  impl DiGraph {
553
+ #[inline]
554
+ pub fn empty(num_nodes: usize) -> Self {
555
+ Self {
556
+ edges_list: vec![vec![]; num_nodes],
557
+ }
558
+ }
550
559
  #[inline]
551
560
  pub fn get_adjacent_nodes(&self, node: NodeId) -> &[NodeId] {
552
561
  self.edges_list[node].as_ref()
@@ -574,6 +583,23 @@ pub mod directed {
574
583
 
575
584
  #[pymethods]
576
585
  impl DiGraph {
586
+ /// Create an edgeless directed graph with ``num_nodes`` nodes.
587
+ ///
588
+ /// This is equivalent to creating a directed graph from
589
+ /// an adjacency matrix will all entries equal to :py:data:`False`.
590
+ ///
591
+ /// Args:
592
+ /// num\_nodes (int): The number of nodes.
593
+ ///
594
+ /// Return:
595
+ /// DiGraph: A directed graph.
596
+ #[classmethod]
597
+ #[pyo3(name = "empty")]
598
+ #[pyo3(text_signature = "(cls, num_nodes)")]
599
+ fn py_empty(_: Bound<'_, PyType>, num_nodes: usize) -> Self {
600
+ Self::empty(num_nodes)
601
+ }
602
+
577
603
  /// Create a directed graph from an adjacency matrix.
578
604
  ///
579
605
  /// Each row of the adjacency matrix ``M`` contains boolean
@@ -1111,6 +1137,16 @@ mod tests {
1111
1137
  assert_eq!(got, expected);
1112
1138
  }
1113
1139
 
1140
+ #[rstest]
1141
+ #[case(9, 2)]
1142
+ #[case(3, 3)]
1143
+ fn test_empty_di_graph_returns_all_paths(#[case] num_nodes: usize, #[case] depth: usize) {
1144
+ let mut graph = DiGraph::empty(num_nodes);
1145
+ let (from, to) = graph.insert_from_and_to_nodes(false);
1146
+
1147
+ assert_eq!(graph.all_paths(from, to, depth + 2, true).count(), 0);
1148
+ }
1149
+
1114
1150
  #[rstest]
1115
1151
  #[case(9, 2)]
1116
1152
  #[case(3, 3)]
File without changes