Created
May 11, 2025 18:10
-
-
Save IvanIsCoding/0c268e46978a44aaf95b7d51e8f70a03 to your computer and use it in GitHub Desktop.
More Robust Rustworkx WASM test
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<!doctype html> | |
<html> | |
<head> | |
<script src="https://cdn.jsdelivr.net/pyodide/v0.27.5/full/pyodide.js"></script> | |
</head> | |
<body> | |
Pyodide test page <br> | |
Open your browser console to see Pyodide output | |
<script type="text/javascript"> | |
async function main() { | |
let pyodide = await loadPyodide(); | |
await pyodide.loadPackage( | |
"http://localhost:8000/rustworkx-0.17.0a3-cp39-abi3-pyodide_2025_0_wasm32.whl", | |
); | |
const output = document.getElementById("output"); | |
const result = await pyodide.runPythonAsync(` | |
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 | |
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 | |
test_isomorphism(None);test_rayon_works(None); print("Both tests passed"); | |
`); | |
} | |
main(); | |
</script> | |
</body> | |
</html> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment