Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 26 additions & 0 deletions packages/rustworkx/meta.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
package:
name: rustworkx
version: 0.17.0a3
top-level:
- rustworkx
tag:
- rust
source:
url: https://github.com/IvanIsCoding/rustworkx/releases/download/v0.17.0a3/rustworkx-0.17.0a3.tar.gz
sha256: 8bd0c295134e2b0c03808d4e69428b41153849db6488839084a78793c337f191
build:
script: export RUSTFLAGS="$RUSTFLAGS -C target-feature=+atomics,+bulk-memory,+mutable-globals"
requirements:
executable:
- rustup
test:
imports:
- rustworkx
about:
home: https://github.com/Qiskit/rustworkx
PyPI: https://pypi.org/project/rustworkx
summary: A python graph library implemented in Rust
license: Apache-2.0
extra:
recipe-maintainers:
- IvanIsCoding
28 changes: 28 additions & 0 deletions packages/rustworkx/test_rustworkx.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
from pytest_pyodide import run_in_pyodide


@run_in_pyodide(packages=["rustworkx"])
def test_isomorphism(selenium):
# Adapted from tests/graph/test_isomorphic.py to work with pytest
import rustworkx

n = 15
upper_bound_k = (n - 1) // 2
for k in range(1, upper_bound_k + 1):
for t in range(k, upper_bound_k + 1):
result = rustworkx.is_isomorphic(
rustworkx.generators.generalized_petersen_graph(n, k),
rustworkx.generators.generalized_petersen_graph(n, t),
)
expected = (k == t) or (k == n - t) or (k * t % n == 1) or (k * t % n == n - 1)
assert result == expected

@run_in_pyodide(packages=["rustworkx"])
def test_rayon_works(selenium):
# This essentially tests that multi-threading is set to one core and does not panic
import rustworkx
graph = rustworkx.generators.cycle_graph(10)
path_lenghts_floyd = rustworkx.floyd_warshall(graph)
path_lenghts_no_self = rustworkx.all_pairs_dijkstra_path_lengths(graph, lambda _: 1.0)
path_lenghts_dijkstra = {k: {**v, k: 0.0} for k, v in path_lenghts_no_self.items()}
assert path_lenghts_floyd == path_lenghts_dijkstra
Loading