cleanup with operators/value tracker/current_state
- current_state now always computes its derived values - it implements a copy function
This commit is contained in:
31
tests/test_current_state.py
Normal file
31
tests/test_current_state.py
Normal file
@@ -0,0 +1,31 @@
|
||||
import numpy as np
|
||||
import pytest
|
||||
|
||||
from scgenerator.operators import CurrentState
|
||||
|
||||
|
||||
def test_creation():
|
||||
x = (np.linspace(0, 1, 128, dtype=complex),)
|
||||
cs = CurrentState(1.0, 0, 0.1, x, 1.0)
|
||||
|
||||
assert cs.converter is np.fft.ifft
|
||||
assert cs.stats == {}
|
||||
assert np.allclose(cs.spectrum2, np.abs(np.fft.ifft(x)) ** 2)
|
||||
|
||||
with pytest.raises(ValueError):
|
||||
cs = CurrentState(1.0, 0, 0.0, x, 1.0, spectrum2=np.abs(x) ** 3)
|
||||
|
||||
cs = CurrentState(1.0, 0, 0.1, x, 1.0, spectrum2=x.copy(), field=x.copy(), field2=x.copy())
|
||||
|
||||
assert np.allclose(cs.spectrum2, cs.spectrum)
|
||||
assert np.allclose(cs.spectrum, cs.field)
|
||||
assert np.allclose(cs.field, cs.field2)
|
||||
|
||||
|
||||
def test_copy():
|
||||
x = (np.linspace(0, 1, 128, dtype=complex),)
|
||||
cs = CurrentState(1.0, 0, 0.1, x, 1.0)
|
||||
cs2 = cs.copy()
|
||||
|
||||
assert cs.spectrum is not cs2.spectrum
|
||||
assert np.all(cs.field2 == cs2.field2)
|
||||
Reference in New Issue
Block a user