Skip to content

Commit 599c5ab

Browse files
committed
tests: disable tests for TorchOperator on darwin os
1 parent 85dfc1b commit 599c5ab

File tree

1 file changed

+46
-33
lines changed

1 file changed

+46
-33
lines changed

pytests/test_torchoperator.py

Lines changed: 46 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import platform
2+
13
import numpy as np
24
import pytest
35
import torch
@@ -17,53 +19,64 @@ def test_TorchOperator(par):
1719
must equal the adjoint of operator applied to the same vector, the two
1820
results are also checked to be the same.
1921
"""
20-
Dop = MatrixMult(np.random.normal(0.0, 1.0, (par["ny"], par["nx"])))
21-
Top = TorchOperator(Dop, batch=False)
22+
# temporarily, skip tests on mac as torch seems not to recognized
23+
# numpy when v2 is installed
24+
if platform.system is not "Darwin":
25+
Dop = MatrixMult(np.random.normal(0.0, 1.0, (par["ny"], par["nx"])))
26+
Top = TorchOperator(Dop, batch=False)
2227

23-
x = np.random.normal(0.0, 1.0, par["nx"])
24-
xt = torch.from_numpy(x).view(-1)
25-
xt.requires_grad = True
26-
v = torch.randn(par["ny"])
28+
x = np.random.normal(0.0, 1.0, par["nx"])
29+
xt = torch.from_numpy(x).view(-1)
30+
xt.requires_grad = True
31+
v = torch.randn(par["ny"])
2732

28-
# pylops operator
29-
y = Dop * x
30-
xadj = Dop.H * v
33+
# pylops operator
34+
y = Dop * x
35+
xadj = Dop.H * v
3136

32-
# torch operator
33-
yt = Top.apply(xt)
34-
yt.backward(v, retain_graph=True)
37+
# torch operator
38+
yt = Top.apply(xt)
39+
yt.backward(v, retain_graph=True)
3540

36-
assert_array_equal(y, yt.detach().cpu().numpy())
37-
assert_array_equal(xadj, xt.grad.cpu().numpy())
41+
assert_array_equal(y, yt.detach().cpu().numpy())
42+
assert_array_equal(xadj, xt.grad.cpu().numpy())
3843

3944

4045
@pytest.mark.parametrize("par", [(par1)])
4146
def test_TorchOperator_batch(par):
4247
"""Apply forward for input with multiple samples (= batch) and flattened arrays"""
43-
Dop = MatrixMult(np.random.normal(0.0, 1.0, (par["ny"], par["nx"])))
44-
Top = TorchOperator(Dop, batch=True)
48+
# temporarily, skip tests on mac as torch seems not to recognized
49+
# numpy when v2 is installed
50+
if platform.system is not "Darwin":
51+
Dop = MatrixMult(np.random.normal(0.0, 1.0, (par["ny"], par["nx"])))
52+
Top = TorchOperator(Dop, batch=True)
4553

46-
x = np.random.normal(0.0, 1.0, (4, par["nx"]))
47-
xt = torch.from_numpy(x)
48-
xt.requires_grad = True
54+
x = np.random.normal(0.0, 1.0, (4, par["nx"]))
55+
xt = torch.from_numpy(x)
56+
xt.requires_grad = True
4957

50-
y = Dop.matmat(x.T).T
51-
yt = Top.apply(xt)
58+
y = Dop.matmat(x.T).T
59+
yt = Top.apply(xt)
5260

53-
assert_array_equal(y, yt.detach().cpu().numpy())
61+
assert_array_equal(y, yt.detach().cpu().numpy())
5462

5563

5664
@pytest.mark.parametrize("par", [(par1)])
5765
def test_TorchOperator_batch_nd(par):
5866
"""Apply forward for input with multiple samples (= batch) and nd-arrays"""
59-
Dop = MatrixMult(np.random.normal(0.0, 1.0, (par["ny"], par["nx"])), otherdims=(2,))
60-
Top = TorchOperator(Dop, batch=True, flatten=False)
61-
62-
x = np.random.normal(0.0, 1.0, (4, par["nx"], 2))
63-
xt = torch.from_numpy(x)
64-
xt.requires_grad = True
65-
66-
y = (Dop @ x.transpose(1, 2, 0)).transpose(2, 0, 1)
67-
yt = Top.apply(xt)
68-
69-
assert_array_equal(y, yt.detach().cpu().numpy())
67+
# temporarily, skip tests on mac as torch seems not to recognized
68+
# numpy when v2 is installed
69+
if platform.system is not "Darwin":
70+
Dop = MatrixMult(
71+
np.random.normal(0.0, 1.0, (par["ny"], par["nx"])), otherdims=(2,)
72+
)
73+
Top = TorchOperator(Dop, batch=True, flatten=False)
74+
75+
x = np.random.normal(0.0, 1.0, (4, par["nx"], 2))
76+
xt = torch.from_numpy(x)
77+
xt.requires_grad = True
78+
79+
y = (Dop @ x.transpose(1, 2, 0)).transpose(2, 0, 1)
80+
yt = Top.apply(xt)
81+
82+
assert_array_equal(y, yt.detach().cpu().numpy())

0 commit comments

Comments
 (0)