Skip to content

Commit 3b60c60

Browse files
committed
Add test for micromagneticdata.Drive
1 parent ef5ae17 commit 3b60c60

1 file changed

Lines changed: 41 additions & 0 deletions

File tree

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
import micromagneticdata as mdata
2+
import micromagneticmodel as mm
3+
import pytest
4+
from micromagneticdata.testing.drive import * # noqa: F403
5+
6+
import mock_adapter
7+
8+
9+
@pytest.fixture(scope="session", params=["min_drive", "min_drive_steps", "time_drive"])
10+
def _compute_drive(tmp_path_factory, request):
11+
system = mm.examples.macrospin()
12+
dirname = tmp_path_factory.mktemp(request.param)
13+
14+
if request.param == "min_drive":
15+
md = mock_adapter.MinDriver()
16+
md.drive(system, dirname=dirname)
17+
reference = ("iteration", "mx", '"save_steps": false')
18+
elif request.param == "min_drive_steps":
19+
md = mock_adapter.MinDriver(save_steps=True)
20+
md.drive(system, dirname=dirname)
21+
reference = ("iteration", "mx", '"save_steps": true')
22+
elif request.param == "time_drive":
23+
td = mock_adapter.TimeDriver()
24+
td.drive(system, dirname=dirname, t=1e-9, n=10)
25+
reference = ("t", "mx", '"mode": "llg"')
26+
else:
27+
raise NotImplementedError(request.param)
28+
29+
return system.name, system.drive_number - 1, dirname, reference
30+
31+
32+
@pytest.fixture
33+
def drive_with_reference(_compute_drive):
34+
name, number, dirname, reference = _compute_drive
35+
return mdata.Drive(name, number, dirname), reference
36+
37+
38+
@pytest.fixture
39+
def drive(_compute_drive):
40+
name, number, dirname, _ = _compute_drive
41+
return mdata.Drive(name, number, dirname)

0 commit comments

Comments
 (0)