示例#1
0
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)
示例#2
0
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
示例#3
0
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