mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2026-05-07 18:12:04 +02:00
fixed tests
This commit is contained in:
@@ -394,3 +394,168 @@ def test_patternstart(session_simulator, request):
|
||||
assert "not implemented" in str(exc_info.value)
|
||||
|
||||
Log(LogLevel.INFOGREEN, f"✅ {request.node.name} passed")
|
||||
|
||||
|
||||
|
||||
@pytest.mark.detectorintegration
|
||||
def test_runclk(session_simulator, request):
|
||||
""" Test using runclk for ctb and xilinx_ctb."""
|
||||
det_type, num_interfaces, num_mods, d = session_simulator
|
||||
assert d is not None
|
||||
|
||||
from slsdet import Hz, MHz, kHz
|
||||
|
||||
if det_type in ['ctb', 'xilinx_ctb']:
|
||||
prev_runclk = d.getRUNClock()
|
||||
|
||||
d.runclk
|
||||
|
||||
# invalid value type
|
||||
with pytest.raises(Exception) as exc_info:
|
||||
d.runclk = 5e6
|
||||
|
||||
with pytest.raises(Exception) as exc_info:
|
||||
d.runclk = 5 * 1000 * 1000
|
||||
|
||||
with pytest.raises(Exception) as exc_info:
|
||||
d.runclk = Hz(5e6)
|
||||
|
||||
d.runclk = MHz(5)
|
||||
assert d.runclk.value == 5_000_000
|
||||
|
||||
d.runclk = MHz(4.5)
|
||||
assert d.runclk.value == 4_500_000
|
||||
|
||||
d.runclk = kHz(5000.5)
|
||||
assert d.runclk.value == 5_000_500
|
||||
|
||||
# invalid values from server
|
||||
# max is 300MHz
|
||||
with pytest.raises(Exception) as exc_info:
|
||||
d.runclk = MHz(301)
|
||||
|
||||
# min is 2MHz for ctb and 10MHz for xilinx_ctb
|
||||
if det_type == 'ctb':
|
||||
with pytest.raises(Exception) as exc_info:
|
||||
d.runclk = MHz(1)
|
||||
else:
|
||||
with pytest.raises(Exception) as exc_info:
|
||||
d.runclk = MHz(9)
|
||||
|
||||
for i in range(len(d)):
|
||||
d.setRUNClock(prev_runclk[i], [i])
|
||||
|
||||
Log(LogLevel.INFOGREEN, f"✅ {request.node.name} passed")
|
||||
|
||||
@pytest.mark.detectorintegration
|
||||
def test_adcclk(session_simulator, request):
|
||||
""" Test using adcclk for ctb and xilinx_ctb."""
|
||||
det_type, num_interfaces, num_mods, d = session_simulator
|
||||
assert d is not None
|
||||
|
||||
from slsdet import Hz, MHz, kHz
|
||||
|
||||
if det_type in ['ctb', 'xilinx_ctb']:
|
||||
prev_adcclk = d.getADCClock()
|
||||
|
||||
d.adcclk
|
||||
|
||||
# invalid value type
|
||||
with pytest.raises(Exception) as exc_info:
|
||||
d.adcclk = 5e6
|
||||
|
||||
with pytest.raises(Exception) as exc_info:
|
||||
d.adcclk = 5 * 1000 * 1000
|
||||
|
||||
with pytest.raises(Exception) as exc_info:
|
||||
d.adcclk = Hz(5e6)
|
||||
|
||||
d.adcclk = MHz(5)
|
||||
assert d.adcclk.value == 5_000_000
|
||||
|
||||
d.adcclk = MHz(4.5)
|
||||
assert d.adcclk.value == 4_500_000
|
||||
|
||||
d.adcclk = kHz(5000.5)
|
||||
assert d.adcclk.value == 5_000_500
|
||||
|
||||
# invalid values from server
|
||||
# max is 300MHz
|
||||
with pytest.raises(Exception) as exc_info:
|
||||
d.adcclk = MHz(301)
|
||||
|
||||
# min is 2MHz for ctb and 10MHz for xilinx_ctb
|
||||
if det_type == 'ctb':
|
||||
with pytest.raises(Exception) as exc_info:
|
||||
d.adcclk = MHz(1)
|
||||
else:
|
||||
with pytest.raises(Exception) as exc_info:
|
||||
d.adcclk = MHz(9)
|
||||
|
||||
for i in range(len(d)):
|
||||
d.setADCClock(prev_adcclk[i], [i])
|
||||
|
||||
Log(LogLevel.INFOGREEN, f"✅ {request.node.name} passed")
|
||||
|
||||
|
||||
@pytest.mark.detectorintegration
|
||||
def test_dbitclk(session_simulator, request):
|
||||
""" Test using dbitclk for ctb and xilinx_ctb."""
|
||||
det_type, num_interfaces, num_mods, d = session_simulator
|
||||
assert d is not None
|
||||
|
||||
from slsdet import Hz, MHz, kHz
|
||||
|
||||
if det_type in ['ctb', 'xilinx_ctb']:
|
||||
prev_dbitclk = d.getDBITClock()
|
||||
|
||||
d.dbitclk
|
||||
|
||||
# invalid value type
|
||||
with pytest.raises(Exception) as exc_info:
|
||||
d.dbitclk = 5e6
|
||||
|
||||
with pytest.raises(Exception) as exc_info:
|
||||
d.dbitclk = 5 * 1000 * 1000
|
||||
|
||||
with pytest.raises(Exception) as exc_info:
|
||||
d.dbitclk = Hz(5e6)
|
||||
|
||||
d.dbitclk = MHz(5)
|
||||
assert d.dbitclk.value == 5_000_000
|
||||
|
||||
d.dbitclk = MHz(4.5)
|
||||
assert d.dbitclk.value == 4_500_000
|
||||
|
||||
d.dbitclk = kHz(5000.5)
|
||||
assert d.dbitclk.value == 5_000_500
|
||||
|
||||
# invalid values from server
|
||||
# max is 300MHz
|
||||
with pytest.raises(Exception) as exc_info:
|
||||
d.dbitclk = MHz(301)
|
||||
|
||||
# min is 2MHz for ctb and 10MHz for xilinx_ctb
|
||||
if det_type == 'ctb':
|
||||
with pytest.raises(Exception) as exc_info:
|
||||
d.dbitclk = MHz(1)
|
||||
else:
|
||||
with pytest.raises(Exception) as exc_info:
|
||||
d.dbitclk = MHz(9)
|
||||
|
||||
for i in range(len(d)):
|
||||
d.setDBITClock(prev_dbitclk[i], [i])
|
||||
|
||||
Log(LogLevel.INFOGREEN, f"✅ {request.node.name} passed")
|
||||
|
||||
|
||||
@pytest.mark.detectorintegration
|
||||
def test_syncclk(session_simulator, request):
|
||||
""" Test using syncclk for ctb."""
|
||||
det_type, num_interfaces, num_mods, d = session_simulator
|
||||
assert d is not None
|
||||
|
||||
if det_type in ['ctb']:
|
||||
d.syncclk
|
||||
|
||||
Log(LogLevel.INFOGREEN, f"✅ {request.node.name} passed")
|
||||
+18
-12
@@ -1,14 +1,20 @@
|
||||
from slsdet import Hz
|
||||
'''
|
||||
from slsdet import Hz, MHz, kHz
|
||||
|
||||
def test_Hz():
|
||||
f = Hz(1)
|
||||
assert f.value() == 1e6
|
||||
f = Hz('1MHz')
|
||||
assert f.value() == 1e6
|
||||
f = Hz('5000kHz')
|
||||
assert f.value() == 5e6
|
||||
assert Hz(1) == 1
|
||||
assert Hz(1e6) == 1e6
|
||||
assert Hz(1, 'MHz') == 1e6
|
||||
assert Hz(0.5, 'GHz') == 0.5e9
|
||||
'''
|
||||
assert f.value == 1
|
||||
f = Hz(1 * 1000)
|
||||
assert f.value == 1000
|
||||
f = MHz(5)
|
||||
assert f.value == 5_000_000
|
||||
f = MHz(0.5)
|
||||
assert f.value == 500_000
|
||||
f = kHz(2.5)
|
||||
assert f.value == 2500
|
||||
f = kHz(5000)
|
||||
assert f.value == 5_000_000
|
||||
|
||||
def test_rounding_exact():
|
||||
f = MHz(1.234)
|
||||
assert f.value == round(1.234 * 1_000_000)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user