1__author__ = "Dilawar Singh"
2__email__ = "dilawar@subcom.tech"
3
4from pathlib import Path
5import numpy as np
6
7import smoldyn
8
9sdir = Path(__file__).parent
10
11
12def test_multiple_iteration():
13    modelfile = sdir / "min.txt"
14    s = smoldyn.Simulation.fromFile(modelfile)
15
16    assert s
17    assert s.getSimPtr() and s.getSimPtr() == s.simptr
18
19    print(s.start, s.stop, s.dt)
20    assert s.start == 0.0
21    assert s.stop == 500
22    assert s.dt == 0.002
23    s.addOutputData("moments")
24    s.addCommand("molmoments MinD_ATP(front) moments", "N", step=2)
25    for i in range(10):
26        print(f"\n\n=============================\nRunning iteration {i}")
27        s.run(stop=(i + 1) * 10, dt=1, start=(i * 10))
28        data = s.getOutputData("moments")
29        for l in data:
30            print(l)
31        assert data, "No data returned."
32        assert len(data) == 6, len(data)
33        assert not np.ma.allequal(data[1], data[-1]), (data[1], data[-1])
34
35
36if __name__ == "__main__":
37    test_multiple_iteration()
38