diff options
author | ncassereau-idris <84033440+ncassereau-idris@users.noreply.github.com> | 2021-11-05 15:57:08 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-11-05 15:57:08 +0100 |
commit | 0eac835c70cc1a13bb998f3b6cdb0515fafc05e1 (patch) | |
tree | b0c0fbce0109ba460a67a6356dc0ff03e2b3c1d5 /test/test_sliced.py | |
parent | 0e431c203a66c6d48e6bb1efeda149460472a0f0 (diff) |
[MRG] Tests with types/device on sliced/bregman/gromov functions (#303)
* First draft : making pytest use gpu for torch testing
* bug solve
* Revert "bug solve"
This reverts commit 29b013abd162f8693128f26d8129186b79923609.
* Revert "First draft : making pytest use gpu for torch testing"
This reverts commit 2778175bcc338016c704efa4187d132fe5162e3a.
* sliced
* sliced
* ot 1dsolver
* bregman
* better print
* jax works with sinkhorn, sinkhorn_log and sinkhornn_stabilized, no need to skip them
* gromov & entropic gromov
Diffstat (limited to 'test/test_sliced.py')
-rw-r--r-- | test/test_sliced.py | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/test/test_sliced.py b/test/test_sliced.py index 0bd74ec..245202c 100644 --- a/test/test_sliced.py +++ b/test/test_sliced.py @@ -139,6 +139,28 @@ def test_sliced_backend(nx): assert np.allclose(val0, valb) +def test_sliced_backend_type_devices(nx): + n = 100 + rng = np.random.RandomState(0) + + x = rng.randn(n, 2) + y = rng.randn(2 * n, 2) + + P = rng.randn(2, 20) + P = P / np.sqrt((P**2).sum(0, keepdims=True)) + + for tp in nx.__type_list__: + print(nx.dtype_device(tp)) + + xb = nx.from_numpy(x, type_as=tp) + yb = nx.from_numpy(y, type_as=tp) + Pb = nx.from_numpy(P, type_as=tp) + + valb = ot.sliced_wasserstein_distance(xb, yb, projections=Pb) + + nx.assert_same_dtype_device(xb, valb) + + def test_max_sliced_backend(nx): n = 100 @@ -167,3 +189,25 @@ def test_max_sliced_backend(nx): valb = nx.to_numpy(ot.max_sliced_wasserstein_distance(xb, yb, projections=Pb)) assert np.allclose(val0, valb) + + +def test_max_sliced_backend_type_devices(nx): + n = 100 + rng = np.random.RandomState(0) + + x = rng.randn(n, 2) + y = rng.randn(2 * n, 2) + + P = rng.randn(2, 20) + P = P / np.sqrt((P**2).sum(0, keepdims=True)) + + for tp in nx.__type_list__: + print(nx.dtype_device(tp)) + + xb = nx.from_numpy(x, type_as=tp) + yb = nx.from_numpy(y, type_as=tp) + Pb = nx.from_numpy(P, type_as=tp) + + valb = ot.max_sliced_wasserstein_distance(xb, yb, projections=Pb) + + nx.assert_same_dtype_device(xb, valb) |