def test_inconsistent_energy_values_warns_correctly(): d1 = elements.Dipole('d1', 1, BendingAngle=numpy.pi, Energy=5.e+9, PassMethod='BndMPoleSymplectic4RadPass') d2 = elements.Dipole('d2', 1, BendingAngle=numpy.pi, Energy=3.e+9, PassMethod='BndMPoleSymplectic4RadPass') m1 = elements.Marker('m1', Energy=5.e+9) m2 = elements.Marker('m2', Energy=3.e+9) with pytest.warns(AtWarning): params = _matlab_scanner([m1, m2]) assert params['_energy'] == 5.e+9 with pytest.warns(AtWarning): params = _matlab_scanner([d1, d2]) assert params['_energy'] == 5.e+9
def test_lattice_gets_attributes_from_elements(): d = elements.Dipole('d1', 1, BendingAngle=numpy.pi, Energy=3.e+6, PassMethod='BndMPoleSymplectic4RadPass') params = _matlab_scanner([d]) assert params['name'] == '' assert params['_energy'] == 3.e+6 assert params['periodicity'] == 2 assert params['_radiation'] is True
def test__non_integer_number_of_cells_warns_correctly(): d = elements.Dipole('d1', 1, BendingAngle=0.195) with pytest.warns(AtWarning): params = _matlab_scanner([d], energy=3.e+9) assert params['periodicity'] == 32
def test_bndstrmpole_symplectic_4_pass(rin): bend = elements.Dipole('b', 1.0) bend.PassMethod = 'BndStrMPoleSymplectic4Pass' element_pass(bend, rin)