def populateTreeItem(addToBeamClickText, item, element): item.setText(0, element.name) item.setText(1, element.displayLine()) item.setText(2, displayWithUnitsNumber(roundSigFig(element.getLength(), 4), 'm')) item.setText(3, displayWithUnitsNumber(roundSigFig(element.getDisplacement(), 4), 'm')) item.setText(4, str(roundSigFig(convertUnitsNumber(element.getAngle(), 'rad', 'deg'), 4))+' deg') item.setText(5, str(element.getNumberOfElements()) if element.isBeamline() else '') item.setText(6, addToBeamClickText) item.setForeground(6, rt_qt.QtCore.Qt.blue) font = item.font(6) font.setBold(True) font.setUnderline(True) item.setFont(6, font)
def test_unit_conversion(): # Simple test a = '12 in' ac = convertUnitsString(a, 'km') b = '1 ft' bc = convertUnitsString(b, 'km') assert ac == bc # Compound test a = '60 mi/hr' ac = roundSigFig(convertUnitsStringToNumber(a, 'm/s'), 10) b = '88 ft/sec' bc = roundSigFig(convertUnitsStringToNumber(b, 'm/s'), 10) assert ac == bc # Invalid test a = '4 score' with pytest.raises(ValueError): convertUnitsString(a, 'years') # Higher dimension test a = 16.7 # km^2, ac = convertUnitsNumberToString(a, 'km^2', 'mi^2') b = '6.44790604766 mi^2' bc = convertUnitsString(b, 'mi^2') assert ac == bc # Angle test a = 3 # radians ac = roundSigFig(convertUnitsNumber(a, 'rad', 'deg'), 10) b = 3*180/pi # 3 rad in degrees bc = roundSigFig(b, 10) assert ac == bc # Compound units a = "9.8 m/s^2" ac = roundSigFig(convertUnitsStringToNumber(a, "ft/ms^2"), 6) b = 3.21522e-5 # ft / (ms^2) assert ac == b # Inverse units a = "10 1/s" ac = convertUnitsString(a, 'Hz') b = "10.0 Hz" assert ac == b a = "1 1/ns" ac = convertUnitsString(a, 'GHz') b = "1.0 GHz" assert ac == b
def test_fel(): inputDict = dict() inputDict['charge'] = 300e-12 inputDict['slicemit'] = 1e-6 inputDict['ebeamenergy'] = 600e6 inputDict['energyspread'] = 0.0001 inputDict['peakamp'] = 200 inputDict['bunchlen'] = 1.5e-12 inputDict['reprate'] = 150e3 inputDict['ufield'] = 0.9 inputDict['beta'] = 1.0 inputDict['radiatedwavelength'] = 13.5e-9 resultDict = calculate(inputDict) expectedAveragePower = 39.783 # W expectedSaturationLength = 12.024 # m expectedUndulatorPeriod = 0.017702 # m assert roundSigFig(resultDict['averagePower'], 5) == expectedAveragePower assert roundSigFig(resultDict['undulatorPeriod'], 5) == expectedUndulatorPeriod assert roundSigFig(resultDict['saturationLength'], 5) == expectedSaturationLength