71 lines
2.0 KiB
Python
71 lines
2.0 KiB
Python
import numpy as np
|
|
import pytest
|
|
from tests.node_tests._shared import make_field
|
|
|
|
|
|
def _make_inputs():
|
|
"""Return amplitude and phase fields suitable for SMM analysis."""
|
|
raw = np.abs(make_field().data)
|
|
amplitude_data = raw / raw.max() * 0.8 + 0.1
|
|
amplitude = make_field(data=amplitude_data)
|
|
phase = make_field()
|
|
return amplitude, phase
|
|
|
|
|
|
def test_output_shapes():
|
|
from backend.nodes.smm_analysis import SMMAnalysis
|
|
|
|
node = SMMAnalysis()
|
|
amplitude, phase = _make_inputs()
|
|
cap, imp = node.process(
|
|
amplitude, phase,
|
|
frequency=1e9, ref_impedance=50.0,
|
|
cal_c1=1e-15, cal_c2=10e-15, cal_c3=100e-15,
|
|
cal_s11_1=0.9, cal_s11_2=0.5, cal_s11_3=0.1,
|
|
)
|
|
assert cap.data.shape == amplitude.data.shape
|
|
assert imp.data.shape == amplitude.data.shape
|
|
|
|
|
|
def test_finite_outputs():
|
|
from backend.nodes.smm_analysis import SMMAnalysis
|
|
|
|
node = SMMAnalysis()
|
|
amplitude, phase = _make_inputs()
|
|
cap, imp = node.process(
|
|
amplitude, phase,
|
|
frequency=1e9, ref_impedance=50.0,
|
|
cal_c1=1e-15, cal_c2=10e-15, cal_c3=100e-15,
|
|
cal_s11_1=0.9, cal_s11_2=0.5, cal_s11_3=0.1,
|
|
)
|
|
assert np.isfinite(cap.data).all()
|
|
assert np.isfinite(imp.data).all()
|
|
|
|
|
|
def test_capacitance_units():
|
|
from backend.nodes.smm_analysis import SMMAnalysis
|
|
|
|
node = SMMAnalysis()
|
|
amplitude, phase = _make_inputs()
|
|
cap, _imp = node.process(
|
|
amplitude, phase,
|
|
frequency=1e9, ref_impedance=50.0,
|
|
cal_c1=1e-15, cal_c2=10e-15, cal_c3=100e-15,
|
|
cal_s11_1=0.9, cal_s11_2=0.5, cal_s11_3=0.1,
|
|
)
|
|
assert cap.si_unit_z == "F"
|
|
|
|
|
|
def test_impedance_units():
|
|
from backend.nodes.smm_analysis import SMMAnalysis
|
|
|
|
node = SMMAnalysis()
|
|
amplitude, phase = _make_inputs()
|
|
_cap, imp = node.process(
|
|
amplitude, phase,
|
|
frequency=1e9, ref_impedance=50.0,
|
|
cal_c1=1e-15, cal_c2=10e-15, cal_c3=100e-15,
|
|
cal_s11_1=0.9, cal_s11_2=0.5, cal_s11_3=0.1,
|
|
)
|
|
assert imp.si_unit_z == "Ohm"
|