xtrack 0.61.0__tar.gz → 0.62.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (246) hide show
  1. {xtrack-0.61.0/xtrack.egg-info → xtrack-0.62.0}/PKG-INFO +1 -1
  2. {xtrack-0.61.0 → xtrack-0.62.0}/tests/test_acceleration.py +18 -17
  3. {xtrack-0.61.0 → xtrack-0.62.0}/tests/test_amplitude_detuning.py +5 -6
  4. {xtrack-0.61.0 → xtrack-0.62.0}/tests/test_aperture_turn_ele_and_monitor.py +7 -6
  5. {xtrack-0.61.0 → xtrack-0.62.0}/tests/test_apertures.py +16 -16
  6. {xtrack-0.61.0 → xtrack-0.62.0}/tests/test_cavity_absolute_time.py +7 -7
  7. {xtrack-0.61.0 → xtrack-0.62.0}/tests/test_chromatic_functions_vs_madx.py +14 -11
  8. {xtrack-0.61.0 → xtrack-0.62.0}/tests/test_coasting.py +6 -5
  9. {xtrack-0.61.0 → xtrack-0.62.0}/tests/test_collective_tracker.py +2 -9
  10. {xtrack-0.61.0 → xtrack-0.62.0}/tests/test_collimation.py +5 -4
  11. {xtrack-0.61.0 → xtrack-0.62.0}/tests/test_elements.py +81 -83
  12. {xtrack-0.61.0 → xtrack-0.62.0}/tests/test_elements_thick.py +267 -198
  13. {xtrack-0.61.0 → xtrack-0.62.0}/tests/test_footprint.py +59 -60
  14. {xtrack-0.61.0 → xtrack-0.62.0}/tests/test_freeze_longitudinal.py +14 -15
  15. {xtrack-0.61.0 → xtrack-0.62.0}/tests/test_full_rings.py +9 -8
  16. {xtrack-0.61.0 → xtrack-0.62.0}/tests/test_ions.py +9 -9
  17. {xtrack-0.61.0 → xtrack-0.62.0}/tests/test_lhc_match_phase_15.py +123 -124
  18. {xtrack-0.61.0 → xtrack-0.62.0}/tests/test_line.py +46 -47
  19. {xtrack-0.61.0 → xtrack-0.62.0}/tests/test_lumi.py +5 -3
  20. {xtrack-0.61.0 → xtrack-0.62.0}/tests/test_mad_writer.py +17 -15
  21. {xtrack-0.61.0 → xtrack-0.62.0}/tests/test_madloader.py +206 -207
  22. {xtrack-0.61.0 → xtrack-0.62.0}/tests/test_match_and_track_from_element.py +16 -15
  23. {xtrack-0.61.0 → xtrack-0.62.0}/tests/test_match_coupling_knob.py +7 -5
  24. {xtrack-0.61.0 → xtrack-0.62.0}/tests/test_match_nested.py +14 -14
  25. {xtrack-0.61.0 → xtrack-0.62.0}/tests/test_match_optics_and_ip_knob.py +103 -101
  26. {xtrack-0.61.0 → xtrack-0.62.0}/tests/test_match_optics_and_ip_knob_new_optimize_api.py +103 -101
  27. {xtrack-0.61.0 → xtrack-0.62.0}/tests/test_match_orbit_bump.py +117 -115
  28. {xtrack-0.61.0 → xtrack-0.62.0}/tests/test_match_tune_chroma_cminus.py +19 -20
  29. {xtrack-0.61.0 → xtrack-0.62.0}/tests/test_monitor.py +4 -5
  30. {xtrack-0.61.0 → xtrack-0.62.0}/tests/test_multispecies.py +104 -102
  31. {xtrack-0.61.0 → xtrack-0.62.0}/tests/test_ps_against_ptc.py +27 -26
  32. {xtrack-0.61.0 → xtrack-0.62.0}/tests/test_ps_multiturn_twiss.py +20 -18
  33. {xtrack-0.61.0 → xtrack-0.62.0}/tests/test_psb_chicane.py +74 -77
  34. {xtrack-0.61.0 → xtrack-0.62.0}/tests/test_pyht_interface.py +2 -1
  35. {xtrack-0.61.0 → xtrack-0.62.0}/tests/test_radial_steering.py +4 -4
  36. {xtrack-0.61.0 → xtrack-0.62.0}/tests/test_radiation.py +22 -21
  37. {xtrack-0.61.0 → xtrack-0.62.0}/tests/test_radiation_equilibrium_emittances.py +37 -36
  38. {xtrack-0.61.0 → xtrack-0.62.0}/tests/test_random_gen.py +6 -6
  39. {xtrack-0.61.0 → xtrack-0.62.0}/tests/test_random_gen_exp.py +6 -6
  40. {xtrack-0.61.0 → xtrack-0.62.0}/tests/test_random_gen_gauss.py +6 -6
  41. {xtrack-0.61.0 → xtrack-0.62.0}/tests/test_second_order_taylor_map.py +22 -24
  42. {xtrack-0.61.0 → xtrack-0.62.0}/tests/test_slicing.py +15 -13
  43. {xtrack-0.61.0 → xtrack-0.62.0}/tests/test_solenoid_bz_map_vs_boris.py +9 -9
  44. {xtrack-0.61.0 → xtrack-0.62.0}/tests/test_spacecharge_in_ring.py +5 -4
  45. {xtrack-0.61.0 → xtrack-0.62.0}/tests/test_sps_thick.py +29 -29
  46. {xtrack-0.61.0 → xtrack-0.62.0}/tests/test_tapering.py +26 -23
  47. {xtrack-0.61.0 → xtrack-0.62.0}/tests/test_thick_lhc.py +43 -44
  48. {xtrack-0.61.0 → xtrack-0.62.0}/tests/test_tracker.py +25 -24
  49. {xtrack-0.61.0 → xtrack-0.62.0}/tests/test_trajectory_correcton.py +10 -10
  50. {xtrack-0.61.0 → xtrack-0.62.0}/tests/test_twiss.py +255 -251
  51. {xtrack-0.61.0 → xtrack-0.62.0}/tests/test_twiss_vs_madx_psb.py +7 -8
  52. {xtrack-0.61.0 → xtrack-0.62.0}/tests/test_var_cache.py +18 -20
  53. {xtrack-0.61.0 → xtrack-0.62.0}/tests/test_vs_madx.py +102 -103
  54. {xtrack-0.61.0 → xtrack-0.62.0}/tests/test_xmask_orbit_correction.py +19 -18
  55. xtrack-0.62.0/xtrack/_version.py +1 -0
  56. {xtrack-0.61.0 → xtrack-0.62.0}/xtrack/beam_elements/elements.py +41 -1
  57. {xtrack-0.61.0 → xtrack-0.62.0}/xtrack/beam_elements/elements_src/solenoid.h +24 -3
  58. {xtrack-0.61.0 → xtrack-0.62.0}/xtrack/beam_elements/slice_elements.py +11 -24
  59. {xtrack-0.61.0 → xtrack-0.62.0}/xtrack/beam_elements/slice_elements_thick.py +14 -41
  60. {xtrack-0.61.0 → xtrack-0.62.0/xtrack.egg-info}/PKG-INFO +1 -1
  61. xtrack-0.61.0/xtrack/_version.py +0 -1
  62. {xtrack-0.61.0 → xtrack-0.62.0}/LICENSE +0 -0
  63. {xtrack-0.61.0 → xtrack-0.62.0}/MANIFEST.in +0 -0
  64. {xtrack-0.61.0 → xtrack-0.62.0}/README.md +0 -0
  65. {xtrack-0.61.0 → xtrack-0.62.0}/ducktrack/__init__.py +0 -0
  66. {xtrack-0.61.0 → xtrack-0.62.0}/ducktrack/base_classes.py +0 -0
  67. {xtrack-0.61.0 → xtrack-0.62.0}/ducktrack/be_beamfields/BB6D.py +0 -0
  68. {xtrack-0.61.0 → xtrack-0.62.0}/ducktrack/be_beamfields/BB6Ddata.py +0 -0
  69. {xtrack-0.61.0 → xtrack-0.62.0}/ducktrack/be_beamfields/__init__.py +0 -0
  70. {xtrack-0.61.0 → xtrack-0.62.0}/ducktrack/be_beamfields/beambeam.py +0 -0
  71. {xtrack-0.61.0 → xtrack-0.62.0}/ducktrack/be_beamfields/boost.py +0 -0
  72. {xtrack-0.61.0 → xtrack-0.62.0}/ducktrack/be_beamfields/gaussian_fields.py +0 -0
  73. {xtrack-0.61.0 → xtrack-0.62.0}/ducktrack/be_beamfields/propagate_sigma_matrix.py +0 -0
  74. {xtrack-0.61.0 → xtrack-0.62.0}/ducktrack/be_beamfields/qgauss.py +0 -0
  75. {xtrack-0.61.0 → xtrack-0.62.0}/ducktrack/be_beamfields/slicing.py +0 -0
  76. {xtrack-0.61.0 → xtrack-0.62.0}/ducktrack/be_beamfields/spacecharge.py +0 -0
  77. {xtrack-0.61.0 → xtrack-0.62.0}/ducktrack/elements.py +0 -0
  78. {xtrack-0.61.0 → xtrack-0.62.0}/ducktrack/line.py +0 -0
  79. {xtrack-0.61.0 → xtrack-0.62.0}/ducktrack/mathlibs.py +0 -0
  80. {xtrack-0.61.0 → xtrack-0.62.0}/ducktrack/particles.py +0 -0
  81. {xtrack-0.61.0 → xtrack-0.62.0}/ducktrack/temp_pyparticles.py +0 -0
  82. {xtrack-0.61.0 → xtrack-0.62.0}/pyproject.toml +0 -0
  83. {xtrack-0.61.0 → xtrack-0.62.0}/setup.cfg +0 -0
  84. {xtrack-0.61.0 → xtrack-0.62.0}/setup.py +0 -0
  85. {xtrack-0.61.0 → xtrack-0.62.0}/tests/test_attr_replicas_and_slices.py +0 -0
  86. {xtrack-0.61.0 → xtrack-0.62.0}/tests/test_element_characterization_functions.py +0 -0
  87. {xtrack-0.61.0 → xtrack-0.62.0}/tests/test_element_internal_record.py +0 -0
  88. {xtrack-0.61.0 → xtrack-0.62.0}/tests/test_elements_classflags.py +0 -0
  89. {xtrack-0.61.0 → xtrack-0.62.0}/tests/test_fcc_ee_solenoid_correction.py +0 -0
  90. {xtrack-0.61.0 → xtrack-0.62.0}/tests/test_fcc_ee_solenoid_correction_new_optimize_api.py +0 -0
  91. {xtrack-0.61.0 → xtrack-0.62.0}/tests/test_hvkick.py +0 -0
  92. {xtrack-0.61.0 → xtrack-0.62.0}/tests/test_multiline.py +0 -0
  93. {xtrack-0.61.0 → xtrack-0.62.0}/tests/test_multisetter.py +0 -0
  94. {xtrack-0.61.0 → xtrack-0.62.0}/tests/test_particles_api.py +0 -0
  95. {xtrack-0.61.0 → xtrack-0.62.0}/tests/test_pipeline.py +0 -0
  96. {xtrack-0.61.0 → xtrack-0.62.0}/tests/test_prebuild_kernels.py +0 -0
  97. {xtrack-0.61.0 → xtrack-0.62.0}/tests/test_random_gen_ruth.py +0 -0
  98. {xtrack-0.61.0 → xtrack-0.62.0}/tests/test_rf_track.py +0 -0
  99. {xtrack-0.61.0 → xtrack-0.62.0}/tests/test_rotation_signs.py +0 -0
  100. {xtrack-0.61.0 → xtrack-0.62.0}/tests/test_slice_and_insert_with_replicas.py +0 -0
  101. {xtrack-0.61.0 → xtrack-0.62.0}/tests/test_slice_elements.py +0 -0
  102. {xtrack-0.61.0 → xtrack-0.62.0}/tests/test_survey.py +0 -0
  103. {xtrack-0.61.0 → xtrack-0.62.0}/tests/test_tilt_shifts.py +0 -0
  104. {xtrack-0.61.0 → xtrack-0.62.0}/xtrack/__init__.py +0 -0
  105. {xtrack-0.61.0 → xtrack-0.62.0}/xtrack/_temp/__init__.py +0 -0
  106. {xtrack-0.61.0 → xtrack-0.62.0}/xtrack/_temp/boris_and_solenoid_map/__init__.py +0 -0
  107. {xtrack-0.61.0 → xtrack-0.62.0}/xtrack/_temp/boris_and_solenoid_map/boris.h +0 -0
  108. {xtrack-0.61.0 → xtrack-0.62.0}/xtrack/_temp/boris_and_solenoid_map/solenoid_field.py +0 -0
  109. {xtrack-0.61.0 → xtrack-0.62.0}/xtrack/_temp/lhc_match/__init__.py +0 -0
  110. {xtrack-0.61.0 → xtrack-0.62.0}/xtrack/_temp/lhc_match/gen_madx_optics_file.py +0 -0
  111. {xtrack-0.61.0 → xtrack-0.62.0}/xtrack/_temp/lhc_match/lhc_match.py +0 -0
  112. {xtrack-0.61.0 → xtrack-0.62.0}/xtrack/_temp/lhc_match/var_limits.py +0 -0
  113. {xtrack-0.61.0 → xtrack-0.62.0}/xtrack/base_element.py +0 -0
  114. {xtrack-0.61.0 → xtrack-0.62.0}/xtrack/beam_elements/__init__.py +0 -0
  115. {xtrack-0.61.0 → xtrack-0.62.0}/xtrack/beam_elements/apertures.py +0 -0
  116. {xtrack-0.61.0 → xtrack-0.62.0}/xtrack/beam_elements/apertures_src/limitellipse.h +0 -0
  117. {xtrack-0.61.0 → xtrack-0.62.0}/xtrack/beam_elements/apertures_src/limitpolygon.h +0 -0
  118. {xtrack-0.61.0 → xtrack-0.62.0}/xtrack/beam_elements/apertures_src/limitracetrack.h +0 -0
  119. {xtrack-0.61.0 → xtrack-0.62.0}/xtrack/beam_elements/apertures_src/limitrect.h +0 -0
  120. {xtrack-0.61.0 → xtrack-0.62.0}/xtrack/beam_elements/apertures_src/limitrectellipse.h +0 -0
  121. {xtrack-0.61.0 → xtrack-0.62.0}/xtrack/beam_elements/apertures_src/longitudinallimitrect.h +0 -0
  122. {xtrack-0.61.0 → xtrack-0.62.0}/xtrack/beam_elements/beam_interaction.py +0 -0
  123. {xtrack-0.61.0 → xtrack-0.62.0}/xtrack/beam_elements/elements_src/bend.h +0 -0
  124. {xtrack-0.61.0 → xtrack-0.62.0}/xtrack/beam_elements/elements_src/cavity.h +0 -0
  125. {xtrack-0.61.0 → xtrack-0.62.0}/xtrack/beam_elements/elements_src/dipoleedge.h +0 -0
  126. {xtrack-0.61.0 → xtrack-0.62.0}/xtrack/beam_elements/elements_src/drift.h +0 -0
  127. {xtrack-0.61.0 → xtrack-0.62.0}/xtrack/beam_elements/elements_src/drift_elem.h +0 -0
  128. {xtrack-0.61.0 → xtrack-0.62.0}/xtrack/beam_elements/elements_src/drift_slice.h +0 -0
  129. {xtrack-0.61.0 → xtrack-0.62.0}/xtrack/beam_elements/elements_src/drift_slice_bend.h +0 -0
  130. {xtrack-0.61.0 → xtrack-0.62.0}/xtrack/beam_elements/elements_src/drift_slice_octupole.h +0 -0
  131. {xtrack-0.61.0 → xtrack-0.62.0}/xtrack/beam_elements/elements_src/drift_slice_quadrupole.h +0 -0
  132. {xtrack-0.61.0 → xtrack-0.62.0}/xtrack/beam_elements/elements_src/drift_slice_sextupole.h +0 -0
  133. {xtrack-0.61.0 → xtrack-0.62.0}/xtrack/beam_elements/elements_src/elens.h +0 -0
  134. {xtrack-0.61.0 → xtrack-0.62.0}/xtrack/beam_elements/elements_src/exciter.h +0 -0
  135. {xtrack-0.61.0 → xtrack-0.62.0}/xtrack/beam_elements/elements_src/firstordertaylormap.h +0 -0
  136. {xtrack-0.61.0 → xtrack-0.62.0}/xtrack/beam_elements/elements_src/fringe.h +0 -0
  137. {xtrack-0.61.0 → xtrack-0.62.0}/xtrack/beam_elements/elements_src/fringe_track.h +0 -0
  138. {xtrack-0.61.0 → xtrack-0.62.0}/xtrack/beam_elements/elements_src/linesegmentmap.h +0 -0
  139. {xtrack-0.61.0 → xtrack-0.62.0}/xtrack/beam_elements/elements_src/multipole.h +0 -0
  140. {xtrack-0.61.0 → xtrack-0.62.0}/xtrack/beam_elements/elements_src/nonlinearlens.h +0 -0
  141. {xtrack-0.61.0 → xtrack-0.62.0}/xtrack/beam_elements/elements_src/octupole.h +0 -0
  142. {xtrack-0.61.0 → xtrack-0.62.0}/xtrack/beam_elements/elements_src/quadrupole.h +0 -0
  143. {xtrack-0.61.0 → xtrack-0.62.0}/xtrack/beam_elements/elements_src/referenceenergyincrease.h +0 -0
  144. {xtrack-0.61.0 → xtrack-0.62.0}/xtrack/beam_elements/elements_src/rfmultipole.h +0 -0
  145. {xtrack-0.61.0 → xtrack-0.62.0}/xtrack/beam_elements/elements_src/second_order_taylor_map.h +0 -0
  146. {xtrack-0.61.0 → xtrack-0.62.0}/xtrack/beam_elements/elements_src/sextupole.h +0 -0
  147. {xtrack-0.61.0 → xtrack-0.62.0}/xtrack/beam_elements/elements_src/simplethinbend.h +0 -0
  148. {xtrack-0.61.0 → xtrack-0.62.0}/xtrack/beam_elements/elements_src/simplethinquadrupole.h +0 -0
  149. {xtrack-0.61.0 → xtrack-0.62.0}/xtrack/beam_elements/elements_src/srotation.h +0 -0
  150. {xtrack-0.61.0 → xtrack-0.62.0}/xtrack/beam_elements/elements_src/thick_slice_bend.h +0 -0
  151. {xtrack-0.61.0 → xtrack-0.62.0}/xtrack/beam_elements/elements_src/thick_slice_drift.h +0 -0
  152. {xtrack-0.61.0 → xtrack-0.62.0}/xtrack/beam_elements/elements_src/thick_slice_octupole.h +0 -0
  153. {xtrack-0.61.0 → xtrack-0.62.0}/xtrack/beam_elements/elements_src/thick_slice_quadrupole.h +0 -0
  154. {xtrack-0.61.0 → xtrack-0.62.0}/xtrack/beam_elements/elements_src/thick_slice_sextupole.h +0 -0
  155. {xtrack-0.61.0 → xtrack-0.62.0}/xtrack/beam_elements/elements_src/thick_slice_solenoid.h +0 -0
  156. {xtrack-0.61.0 → xtrack-0.62.0}/xtrack/beam_elements/elements_src/thin_slice_bend.h +0 -0
  157. {xtrack-0.61.0 → xtrack-0.62.0}/xtrack/beam_elements/elements_src/thin_slice_bend_entry.h +0 -0
  158. {xtrack-0.61.0 → xtrack-0.62.0}/xtrack/beam_elements/elements_src/thin_slice_bend_exit.h +0 -0
  159. {xtrack-0.61.0 → xtrack-0.62.0}/xtrack/beam_elements/elements_src/thin_slice_octupole.h +0 -0
  160. {xtrack-0.61.0 → xtrack-0.62.0}/xtrack/beam_elements/elements_src/thin_slice_quadrupole.h +0 -0
  161. {xtrack-0.61.0 → xtrack-0.62.0}/xtrack/beam_elements/elements_src/thin_slice_sextupole.h +0 -0
  162. {xtrack-0.61.0 → xtrack-0.62.0}/xtrack/beam_elements/elements_src/track_bend.h +0 -0
  163. {xtrack-0.61.0 → xtrack-0.62.0}/xtrack/beam_elements/elements_src/track_dipole_edge_linear.h +0 -0
  164. {xtrack-0.61.0 → xtrack-0.62.0}/xtrack/beam_elements/elements_src/track_dipole_edge_nonlinear.h +0 -0
  165. {xtrack-0.61.0 → xtrack-0.62.0}/xtrack/beam_elements/elements_src/track_multipolar_components.h +0 -0
  166. {xtrack-0.61.0 → xtrack-0.62.0}/xtrack/beam_elements/elements_src/track_multipole.h +0 -0
  167. {xtrack-0.61.0 → xtrack-0.62.0}/xtrack/beam_elements/elements_src/track_quadrupole.h +0 -0
  168. {xtrack-0.61.0 → xtrack-0.62.0}/xtrack/beam_elements/elements_src/track_solenoid.h +0 -0
  169. {xtrack-0.61.0 → xtrack-0.62.0}/xtrack/beam_elements/elements_src/track_srotation.h +0 -0
  170. {xtrack-0.61.0 → xtrack-0.62.0}/xtrack/beam_elements/elements_src/track_thick_bend.h +0 -0
  171. {xtrack-0.61.0 → xtrack-0.62.0}/xtrack/beam_elements/elements_src/track_thick_cfd.h +0 -0
  172. {xtrack-0.61.0 → xtrack-0.62.0}/xtrack/beam_elements/elements_src/track_xrotation.h +0 -0
  173. {xtrack-0.61.0 → xtrack-0.62.0}/xtrack/beam_elements/elements_src/track_yrotation.h +0 -0
  174. {xtrack-0.61.0 → xtrack-0.62.0}/xtrack/beam_elements/elements_src/wedge.h +0 -0
  175. {xtrack-0.61.0 → xtrack-0.62.0}/xtrack/beam_elements/elements_src/wedge_track.h +0 -0
  176. {xtrack-0.61.0 → xtrack-0.62.0}/xtrack/beam_elements/elements_src/wire.h +0 -0
  177. {xtrack-0.61.0 → xtrack-0.62.0}/xtrack/beam_elements/elements_src/xrotation.h +0 -0
  178. {xtrack-0.61.0 → xtrack-0.62.0}/xtrack/beam_elements/elements_src/xyshift.h +0 -0
  179. {xtrack-0.61.0 → xtrack-0.62.0}/xtrack/beam_elements/elements_src/yrotation.h +0 -0
  180. {xtrack-0.61.0 → xtrack-0.62.0}/xtrack/beam_elements/elements_src/zetashift.h +0 -0
  181. {xtrack-0.61.0 → xtrack-0.62.0}/xtrack/beam_elements/exciter.py +0 -0
  182. {xtrack-0.61.0 → xtrack-0.62.0}/xtrack/beam_elements/rft_element.py +0 -0
  183. {xtrack-0.61.0 → xtrack-0.62.0}/xtrack/footprint.py +0 -0
  184. {xtrack-0.61.0 → xtrack-0.62.0}/xtrack/general.py +0 -0
  185. {xtrack-0.61.0 → xtrack-0.62.0}/xtrack/headers/atomicadd.h +0 -0
  186. {xtrack-0.61.0 → xtrack-0.62.0}/xtrack/headers/checks.h +0 -0
  187. {xtrack-0.61.0 → xtrack-0.62.0}/xtrack/headers/constants.h +0 -0
  188. {xtrack-0.61.0 → xtrack-0.62.0}/xtrack/headers/particle_states.h +0 -0
  189. {xtrack-0.61.0 → xtrack-0.62.0}/xtrack/headers/synrad_spectrum.h +0 -0
  190. {xtrack-0.61.0 → xtrack-0.62.0}/xtrack/internal_record.py +0 -0
  191. {xtrack-0.61.0 → xtrack-0.62.0}/xtrack/line.py +0 -0
  192. {xtrack-0.61.0 → xtrack-0.62.0}/xtrack/linear_normal_form.py +0 -0
  193. {xtrack-0.61.0 → xtrack-0.62.0}/xtrack/loss_location_refinement/__init__.py +0 -0
  194. {xtrack-0.61.0 → xtrack-0.62.0}/xtrack/loss_location_refinement/loss_location_refinement.py +0 -0
  195. {xtrack-0.61.0 → xtrack-0.62.0}/xtrack/lumi.py +0 -0
  196. {xtrack-0.61.0 → xtrack-0.62.0}/xtrack/mad_loader.py +0 -0
  197. {xtrack-0.61.0 → xtrack-0.62.0}/xtrack/mad_writer.py +0 -0
  198. {xtrack-0.61.0 → xtrack-0.62.0}/xtrack/match.py +0 -0
  199. {xtrack-0.61.0 → xtrack-0.62.0}/xtrack/monitors/__init__.py +0 -0
  200. {xtrack-0.61.0 → xtrack-0.62.0}/xtrack/monitors/beam_position_monitor.h +0 -0
  201. {xtrack-0.61.0 → xtrack-0.62.0}/xtrack/monitors/beam_position_monitor.py +0 -0
  202. {xtrack-0.61.0 → xtrack-0.62.0}/xtrack/monitors/beam_profile_monitor.h +0 -0
  203. {xtrack-0.61.0 → xtrack-0.62.0}/xtrack/monitors/beam_profile_monitor.py +0 -0
  204. {xtrack-0.61.0 → xtrack-0.62.0}/xtrack/monitors/beam_size_monitor.h +0 -0
  205. {xtrack-0.61.0 → xtrack-0.62.0}/xtrack/monitors/beam_size_monitor.py +0 -0
  206. {xtrack-0.61.0 → xtrack-0.62.0}/xtrack/monitors/last_turns_monitor.h +0 -0
  207. {xtrack-0.61.0 → xtrack-0.62.0}/xtrack/monitors/last_turns_monitor.py +0 -0
  208. {xtrack-0.61.0 → xtrack-0.62.0}/xtrack/monitors/particles_monitor.h +0 -0
  209. {xtrack-0.61.0 → xtrack-0.62.0}/xtrack/monitors/particles_monitor.py +0 -0
  210. {xtrack-0.61.0 → xtrack-0.62.0}/xtrack/multiline/__init__.py +0 -0
  211. {xtrack-0.61.0 → xtrack-0.62.0}/xtrack/multiline/multiline.py +0 -0
  212. {xtrack-0.61.0 → xtrack-0.62.0}/xtrack/multiline/shared_knobs.py +0 -0
  213. {xtrack-0.61.0 → xtrack-0.62.0}/xtrack/multisetter/__init__.py +0 -0
  214. {xtrack-0.61.0 → xtrack-0.62.0}/xtrack/multisetter/multisetter.py +0 -0
  215. {xtrack-0.61.0 → xtrack-0.62.0}/xtrack/particles/__init__.py +0 -0
  216. {xtrack-0.61.0 → xtrack-0.62.0}/xtrack/particles/constants.py +0 -0
  217. {xtrack-0.61.0 → xtrack-0.62.0}/xtrack/particles/particles.py +0 -0
  218. {xtrack-0.61.0 → xtrack-0.62.0}/xtrack/particles/rng_src/base_rng.h +0 -0
  219. {xtrack-0.61.0 → xtrack-0.62.0}/xtrack/particles/rng_src/particles_rng.h +0 -0
  220. {xtrack-0.61.0 → xtrack-0.62.0}/xtrack/pipeline/__init__.py +0 -0
  221. {xtrack-0.61.0 → xtrack-0.62.0}/xtrack/pipeline/core.py +0 -0
  222. {xtrack-0.61.0 → xtrack-0.62.0}/xtrack/pipeline/manager.py +0 -0
  223. {xtrack-0.61.0 → xtrack-0.62.0}/xtrack/pipeline/multitracker.py +0 -0
  224. {xtrack-0.61.0 → xtrack-0.62.0}/xtrack/progress_indicator.py +0 -0
  225. {xtrack-0.61.0 → xtrack-0.62.0}/xtrack/random/__init__.py +0 -0
  226. {xtrack-0.61.0 → xtrack-0.62.0}/xtrack/random/random_generators.py +0 -0
  227. {xtrack-0.61.0 → xtrack-0.62.0}/xtrack/random/random_src/exponential.h +0 -0
  228. {xtrack-0.61.0 → xtrack-0.62.0}/xtrack/random/random_src/exponential_integral_Ei.h +0 -0
  229. {xtrack-0.61.0 → xtrack-0.62.0}/xtrack/random/random_src/normal.h +0 -0
  230. {xtrack-0.61.0 → xtrack-0.62.0}/xtrack/random/random_src/rutherford.h +0 -0
  231. {xtrack-0.61.0 → xtrack-0.62.0}/xtrack/random/random_src/uniform.h +0 -0
  232. {xtrack-0.61.0 → xtrack-0.62.0}/xtrack/slicing.py +0 -0
  233. {xtrack-0.61.0 → xtrack-0.62.0}/xtrack/survey.py +0 -0
  234. {xtrack-0.61.0 → xtrack-0.62.0}/xtrack/synctime.py +0 -0
  235. {xtrack-0.61.0 → xtrack-0.62.0}/xtrack/tapering.py +0 -0
  236. {xtrack-0.61.0 → xtrack-0.62.0}/xtrack/targets.py +0 -0
  237. {xtrack-0.61.0 → xtrack-0.62.0}/xtrack/tracker.py +0 -0
  238. {xtrack-0.61.0 → xtrack-0.62.0}/xtrack/tracker_data.py +0 -0
  239. {xtrack-0.61.0 → xtrack-0.62.0}/xtrack/tracker_src/tracker.h +0 -0
  240. {xtrack-0.61.0 → xtrack-0.62.0}/xtrack/trajectory_correction.py +0 -0
  241. {xtrack-0.61.0 → xtrack-0.62.0}/xtrack/twiss.py +0 -0
  242. {xtrack-0.61.0 → xtrack-0.62.0}/xtrack/twissplot.py +0 -0
  243. {xtrack-0.61.0 → xtrack-0.62.0}/xtrack.egg-info/SOURCES.txt +0 -0
  244. {xtrack-0.61.0 → xtrack-0.62.0}/xtrack.egg-info/dependency_links.txt +0 -0
  245. {xtrack-0.61.0 → xtrack-0.62.0}/xtrack.egg-info/requires.txt +0 -0
  246. {xtrack-0.61.0 → xtrack-0.62.0}/xtrack.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: xtrack
3
- Version: 0.61.0
3
+ Version: 0.62.0
4
4
  Summary: Tracking library for particle accelerators
5
5
  Home-page: https://xsuite.readthedocs.io/
6
6
  Download-URL: https://pypi.python.org/pypi/xtrack
@@ -3,18 +3,19 @@
3
3
  # Copyright (c) CERN, 2021. #
4
4
  # ######################################### #
5
5
 
6
- import pathlib
7
6
  import json
7
+ import pathlib
8
+
8
9
  import numpy as np
9
10
  import pandas as pd
11
+ from cpymad.madx import Madx
10
12
  from scipy.constants import c as clight
11
13
 
14
+ import xobjects as xo
12
15
  import xpart as xp
13
16
  import xtrack as xt
14
17
  from xobjects.test_helpers import for_all_test_contexts
15
18
 
16
- from cpymad.madx import Madx
17
-
18
19
  test_data_folder = pathlib.Path(
19
20
  __file__).parent.joinpath('../test_data').absolute()
20
21
 
@@ -44,7 +45,7 @@ def test_acceleration(test_context):
44
45
  p_co = line.find_closed_orbit(particle_ref=xp.Particles.from_dict(
45
46
  input_data['particle']))
46
47
 
47
- assert np.isclose(p_co._xobject.zeta[0], stable_z, atol=0, rtol=1e-2)
48
+ xo.assert_allclose(p_co._xobject.zeta[0], stable_z, atol=0, rtol=1e-2)
48
49
 
49
50
 
50
51
  @for_all_test_contexts
@@ -115,36 +116,36 @@ def test_energy_program(test_context):
115
116
  t_check = np.linspace(0, 20e-3, 1000)
116
117
  E_check = np.interp(t_check, t_turn_ref, E_kin_turn)
117
118
  E_check_ref = np.interp(t_check, t_s, E_kin_GeV*1e9)
118
- assert np.allclose(E_check, E_check_ref, atol=0, rtol=2e-3)
119
+ xo.assert_allclose(E_check, E_check_ref, atol=0, rtol=2e-3)
119
120
 
120
121
  t_turn_check = line.energy_program.get_t_s_at_turn(np.arange(n_turn_test))
121
- assert np.allclose(t_turn_check, t_turn_ref, atol=0, rtol=6e-4)
122
+ xo.assert_allclose(t_turn_check, t_turn_ref, atol=0, rtol=6e-4)
122
123
 
123
124
  p0c_check = line.energy_program.get_p0c_at_t_s(t_check)
124
125
  p0c_ref = np.interp(t_check,
125
126
  t_turn_check,
126
127
  line.particle_ref.mass0 * gamma_at_turn * beta_at_turn)
127
- assert np.allclose(p0c_check, p0c_ref, atol=0, rtol=1e-3)
128
+ xo.assert_allclose(p0c_check, p0c_ref, atol=0, rtol=1e-3)
128
129
 
129
130
  kinetic_energy0_check = line.energy_program.get_kinetic_energy0_at_t_s(t_check)
130
131
  kinetic_energy0_ref = np.interp(t_check,
131
132
  t_turn_check,
132
133
  line.particle_ref.mass0 * (gamma_at_turn - 1))
133
- assert np.allclose(kinetic_energy0_check, kinetic_energy0_ref, atol=0, rtol=2e-3)
134
+ xo.assert_allclose(kinetic_energy0_check, kinetic_energy0_ref, atol=0, rtol=2e-3)
134
135
 
135
136
  beta0_check = line.energy_program.get_beta0_at_t_s(t_check)
136
137
  beta0_ref = np.interp(t_check, t_turn_check, beta_at_turn)
137
- assert np.allclose(beta0_check, beta0_ref, atol=0, rtol=1e-3)
138
+ xo.assert_allclose(beta0_check, beta0_ref, atol=0, rtol=1e-3)
138
139
 
139
140
  frev_check = line.energy_program.get_frev_at_t_s(t_check)
140
141
  frev_ref = np.interp(t_check, t_turn_check[:-1], 1/np.diff(t_turn_ref))
141
- assert np.allclose(frev_check, frev_ref, atol=0, rtol=4e-5)
142
+ xo.assert_allclose(frev_check, frev_ref, atol=0, rtol=4e-5)
142
143
 
143
144
  p0c_increse_per_turn_check = line.energy_program.get_p0c_increse_per_turn_at_t_s(
144
145
  t_check)
145
146
  p0c_increse_per_turn_ref = np.interp(
146
147
  t_check, t_turn_check[:-1], np.diff(monitor.p0c[0, :]))
147
- assert np.allclose(p0c_increse_per_turn_check - p0c_increse_per_turn_ref, 0,
148
+ xo.assert_allclose(p0c_increse_per_turn_check - p0c_increse_per_turn_ref, 0,
148
149
  atol=5e-5 * p0c_ref[0], rtol=0)
149
150
 
150
151
  line.enable_time_dependent_vars = False
@@ -152,20 +153,20 @@ def test_energy_program(test_context):
152
153
 
153
154
  E_kin_expected = np.interp(line.vv['t_turn_s'], t_s, E_kin_GeV*1e9)
154
155
  E_tot_expected = E_kin_expected + line.particle_ref.mass0
155
- assert np.isclose(
156
+ xo.assert_allclose(
156
157
  E_tot_expected, line.particle_ref.energy0[0], rtol=1e-4, atol=0)
157
- assert np.isclose(
158
+ xo.assert_allclose(
158
159
  E_kin_expected, line.particle_ref.kinetic_energy0[0], rtol=1e-4, atol=0)
159
160
 
160
161
  tw = line.twiss(method='6d')
161
162
  # To check that it does not change
162
- assert np.isclose(tw.zeta[0], -13.48, rtol=0, atol=1e-4)
163
- assert np.isclose(line.particle_ref.mass0 * tw.gamma0, E_tot_expected,
163
+ xo.assert_allclose(tw.zeta[0], -13.48, rtol=0, atol=1e-4)
164
+ xo.assert_allclose(line.particle_ref.mass0 * tw.gamma0, E_tot_expected,
164
165
  atol=0, rtol=1e-12)
165
166
 
166
167
  line.vars['t_turn_s'] = 0
167
168
  line.vars['on_chicane_k0'] = 0
168
169
  tw = line.twiss(method='6d')
169
- assert np.allclose(tw.zeta[0], 0, rtol=0, atol=1e-12)
170
- assert np.allclose(line.particle_ref.mass0 * tw.gamma0, line.particle_ref.mass0 + E_kin_turn[0],
170
+ xo.assert_allclose(tw.zeta[0], 0, rtol=0, atol=1e-12)
171
+ xo.assert_allclose(line.particle_ref.mass0 * tw.gamma0, line.particle_ref.mass0 + E_kin_turn[0],
171
172
  rtol=1e-10, atol=0)
@@ -1,4 +1,4 @@
1
- import numpy as np
1
+ import xobjects as xo
2
2
  import xtrack as xt
3
3
  from xobjects.test_helpers import for_all_test_contexts
4
4
 
@@ -11,8 +11,7 @@ def test_amplitude_detuning(test_context):
11
11
 
12
12
  det = line.get_amplitude_detuning_coefficients()
13
13
 
14
- assert np.isclose(det['det_xx'], 1000, atol=1e-1, rtol=0)
15
- assert np.isclose(det['det_yy'], 2000, atol=1e-1, rtol=0)
16
- assert np.isclose(det['det_xy'], 10, atol=1e-1, rtol=0)
17
- assert np.isclose(det['det_yx'], 20, atol=1e-1, rtol=0)
18
-
14
+ xo.assert_allclose(det['det_xx'], 1000, atol=1e-1, rtol=0)
15
+ xo.assert_allclose(det['det_yy'], 2000, atol=1e-1, rtol=0)
16
+ xo.assert_allclose(det['det_xy'], 10, atol=1e-1, rtol=0)
17
+ xo.assert_allclose(det['det_yx'], 20, atol=1e-1, rtol=0)
@@ -5,6 +5,7 @@
5
5
 
6
6
  import numpy as np
7
7
 
8
+ import xobjects as xo
8
9
  import xtrack as xt
9
10
  import xpart as xp
10
11
  from xobjects.test_helpers import for_all_test_contexts
@@ -79,13 +80,13 @@ def test_aperture_turn_ele_and_monitor(test_context):
79
80
  at_element_expected = np.int_(np.clip(at_element_expected, 0,
80
81
  n_slices-1))
81
82
 
82
- assert np.allclose(part_s + at_turn_expected*line.get_length(), s_expected,
83
+ xo.assert_allclose(part_s + at_turn_expected*line.get_length(), s_expected,
83
84
  atol=1e-3)
84
- assert np.allclose(at_turn_expected, part_at_turn)
85
+ xo.assert_allclose(at_turn_expected, part_at_turn)
85
86
 
86
87
  # I need to add a tolerance of one element as a mismatch is visible
87
88
  # on a few slices due to rounding
88
- assert np.allclose(at_element_expected, part_at_element, atol=1.1)
89
+ xo.assert_allclose(at_element_expected, part_at_element, atol=1.1)
89
90
 
90
91
  # Test monitor
91
92
  mon = line.record_last_track
@@ -192,13 +193,13 @@ def test_custom_monitor(test_context):
192
193
  at_element_expected = np.int_(np.clip(at_element_expected, 0,
193
194
  n_slices-1))
194
195
 
195
- assert np.allclose(part_s + at_turn_expected * line.get_length(),
196
+ xo.assert_allclose(part_s + at_turn_expected * line.get_length(),
196
197
  s_expected, atol=1e-3)
197
- assert np.allclose(at_turn_expected, part_at_turn)
198
+ xo.assert_allclose(at_turn_expected, part_at_turn)
198
199
 
199
200
  # I need to add a tolerance of one element as a mismatch is visible
200
201
  # on a few slices due to rounding
201
- assert np.allclose(at_element_expected, part_at_element, atol=1.1)
202
+ xo.assert_allclose(at_element_expected, part_at_element, atol=1.1)
202
203
 
203
204
  # Test monitor
204
205
  mon = monitor
@@ -104,7 +104,7 @@ def test_aperture_polygon(test_context):
104
104
  x=x_vertices*0.99,
105
105
  y=y_vertices*0.99)
106
106
  aper.track(parttest)
107
- assert np.allclose(ctx2np(parttest.state), 1)
107
+ xo.assert_allclose(ctx2np(parttest.state), 1)
108
108
 
109
109
  # Try some particles outside
110
110
  parttest = xp.Particles(
@@ -113,7 +113,7 @@ def test_aperture_polygon(test_context):
113
113
  x=x_vertices*1.01,
114
114
  y=y_vertices*1.01)
115
115
  aper.track(parttest)
116
- assert np.allclose(ctx2np(parttest.state), 0)
116
+ xo.assert_allclose(ctx2np(parttest.state), 0)
117
117
 
118
118
 
119
119
  def test_mad_import():
@@ -152,13 +152,13 @@ def test_mad_import():
152
152
 
153
153
  circ = apertures[0]
154
154
  assert circ.__class__.__name__ == 'LimitEllipse'
155
- assert np.isclose(circ.a_squ, .2**2, atol=1e-13, rtol=0)
156
- assert np.isclose(circ.b_squ, .2**2, atol=1e-13, rtol=0)
155
+ xo.assert_allclose(circ.a_squ, .2**2, atol=1e-13, rtol=0)
156
+ xo.assert_allclose(circ.b_squ, .2**2, atol=1e-13, rtol=0)
157
157
 
158
158
  ellip = apertures[1]
159
159
  assert ellip.__class__.__name__ == 'LimitEllipse'
160
- assert np.isclose(ellip.a_squ, .2**2, atol=1e-13, rtol=0)
161
- assert np.isclose(ellip.b_squ, .1**2, atol=1e-13, rtol=0)
160
+ xo.assert_allclose(ellip.a_squ, .2**2, atol=1e-13, rtol=0)
161
+ xo.assert_allclose(ellip.b_squ, .1**2, atol=1e-13, rtol=0)
162
162
 
163
163
  rect = apertures[2]
164
164
  assert rect.__class__.__name__ == 'LimitRect'
@@ -170,8 +170,8 @@ def test_mad_import():
170
170
  rectellip = apertures[3]
171
171
  assert rectellip.max_x == .2
172
172
  assert rectellip.max_y == .4
173
- assert np.isclose(rectellip.a_squ, .25**2, atol=1e-13, rtol=0)
174
- assert np.isclose(rectellip.b_squ, .45**2, atol=1e-13, rtol=0)
173
+ xo.assert_allclose(rectellip.a_squ, .25**2, atol=1e-13, rtol=0)
174
+ xo.assert_allclose(rectellip.b_squ, .45**2, atol=1e-13, rtol=0)
175
175
 
176
176
  racetr = apertures[4]
177
177
  assert racetr.__class__.__name__ == 'LimitRacetrack'
@@ -185,26 +185,26 @@ def test_mad_import():
185
185
  octag = apertures[5]
186
186
  assert octag.__class__.__name__ == 'LimitPolygon'
187
187
  assert octag._xobject.x_vertices[0] == 0.4
188
- assert np.isclose(octag._xobject.y_vertices[0], 0.4*np.tan(0.5), atol=1e-14, rtol=0)
188
+ xo.assert_allclose(octag._xobject.y_vertices[0], 0.4*np.tan(0.5), atol=1e-14, rtol=0)
189
189
  assert octag._xobject.y_vertices[1] == 0.5
190
- assert np.isclose(octag._xobject.x_vertices[1], 0.5/np.tan(1.), atol=1e-14, rtol=0)
190
+ xo.assert_allclose(octag._xobject.x_vertices[1], 0.5/np.tan(1.), atol=1e-14, rtol=0)
191
191
 
192
192
  assert octag._xobject.y_vertices[2] == 0.5
193
- assert np.isclose(octag._xobject.x_vertices[2], -0.5/np.tan(1.), atol=1e-14, rtol=0)
193
+ xo.assert_allclose(octag._xobject.x_vertices[2], -0.5/np.tan(1.), atol=1e-14, rtol=0)
194
194
  assert octag._xobject.x_vertices[3] == -0.4
195
- assert np.isclose(octag._xobject.y_vertices[3], 0.4*np.tan(0.5), atol=1e-14, rtol=0)
195
+ xo.assert_allclose(octag._xobject.y_vertices[3], 0.4*np.tan(0.5), atol=1e-14, rtol=0)
196
196
 
197
197
 
198
198
  assert octag._xobject.x_vertices[4] == -0.4
199
- assert np.isclose(octag._xobject.y_vertices[4], -0.4*np.tan(0.5), atol=1e-14, rtol=0)
199
+ xo.assert_allclose(octag._xobject.y_vertices[4], -0.4*np.tan(0.5), atol=1e-14, rtol=0)
200
200
  assert octag._xobject.y_vertices[5] == -0.5
201
- assert np.isclose(octag._xobject.x_vertices[5], -0.5/np.tan(1.), atol=1e-14, rtol=0)
201
+ xo.assert_allclose(octag._xobject.x_vertices[5], -0.5/np.tan(1.), atol=1e-14, rtol=0)
202
202
 
203
203
 
204
204
  assert octag._xobject.y_vertices[6] == -0.5
205
- assert np.isclose(octag._xobject.x_vertices[6], 0.5/np.tan(1.), atol=1e-14, rtol=0)
205
+ xo.assert_allclose(octag._xobject.x_vertices[6], 0.5/np.tan(1.), atol=1e-14, rtol=0)
206
206
  assert octag._xobject.x_vertices[7] == 0.4
207
- assert np.isclose(octag._xobject.y_vertices[7], -0.4*np.tan(0.5), atol=1e-14, rtol=0)
207
+ xo.assert_allclose(octag._xobject.y_vertices[7], -0.4*np.tan(0.5), atol=1e-14, rtol=0)
208
208
 
209
209
  polyg = apertures[6]
210
210
  assert polyg.__class__.__name__ == 'LimitPolygon'
@@ -1,9 +1,9 @@
1
- import numpy as np
1
+ import pathlib
2
+
3
+ import xobjects as xo
2
4
  import xtrack as xt
3
5
  from xobjects.test_helpers import for_all_test_contexts
4
6
 
5
- import pathlib
6
-
7
7
  test_data_folder = pathlib.Path(
8
8
  __file__).parent.joinpath('../test_data').absolute()
9
9
 
@@ -39,9 +39,9 @@ def test_cavity_absolute_time(test_context):
39
39
 
40
40
  f_rev_expected = f_rf / h_rf
41
41
 
42
- assert np.isclose(f_rev_expected, 1/tw1.T_rev, atol=1e-5, rtol=0)
43
- assert np.allclose(tw1.delta, tw1.delta[0], atol=1e-5, rtol=0) # Check that it is flat
42
+ xo.assert_allclose(f_rev_expected, 1/tw1.T_rev, atol=1e-5, rtol=0)
43
+ xo.assert_allclose(tw1.delta, tw1.delta[0], atol=1e-5, rtol=0) # Check that it is flat
44
44
  delta_expected = -df_rev / f_rev / eta
45
- assert np.allclose(tw1.delta, delta_expected, atol=2e-6, rtol=0)
45
+ xo.assert_allclose(tw1.delta, delta_expected, atol=2e-6, rtol=0)
46
46
  tw_off_mom = line.twiss(method='4d', delta0=tw1.delta[0])
47
- assert np.allclose(tw1.x, tw_off_mom.x, atol=1e-5, rtol=0)
47
+ xo.assert_allclose(tw1.x, tw_off_mom.x, atol=1e-5, rtol=0)
@@ -1,5 +1,8 @@
1
1
  import pathlib
2
+
2
3
  from cpymad.madx import Madx
4
+
5
+ import xobjects as xo
3
6
  import xtrack as xt
4
7
  from xobjects.test_helpers import for_all_test_contexts
5
8
 
@@ -61,12 +64,12 @@ def test_chromatic_functions_vs_madx(test_context):
61
64
  bx_ref = np.real(zx_ref)
62
65
  by_ref = np.real(zy_ref)
63
66
 
64
- assert np.allclose(tw_test.wx_chrom, wx_ref, rtol=0, atol=2e-3 * np.max(wx_ref))
65
- assert np.allclose(tw_test.wy_chrom, wy_ref, rtol=0, atol=2e-3 * np.max(wy_ref))
66
- assert np.allclose(tw_test.ax_chrom, ax_ref, rtol=0, atol=2e-3 * np.max(ax_ref))
67
- assert np.allclose(tw_test.ay_chrom, ay_ref, rtol=0, atol=2e-3 * np.max(ay_ref))
68
- assert np.allclose(tw_test.bx_chrom, bx_ref, rtol=0, atol=2e-3 * np.max(bx_ref))
69
- assert np.allclose(tw_test.by_chrom, by_ref, rtol=0, atol=2e-3 * np.max(by_ref))
67
+ xo.assert_allclose(tw_test.wx_chrom, wx_ref, rtol=0, atol=2e-3 * np.max(wx_ref))
68
+ xo.assert_allclose(tw_test.wy_chrom, wy_ref, rtol=0, atol=2e-3 * np.max(wy_ref))
69
+ xo.assert_allclose(tw_test.ax_chrom, ax_ref, rtol=0, atol=2e-3 * np.max(ax_ref))
70
+ xo.assert_allclose(tw_test.ay_chrom, ay_ref, rtol=0, atol=2e-3 * np.max(ay_ref))
71
+ xo.assert_allclose(tw_test.bx_chrom, bx_ref, rtol=0, atol=2e-3 * np.max(bx_ref))
72
+ xo.assert_allclose(tw_test.by_chrom, by_ref, rtol=0, atol=2e-3 * np.max(by_ref))
70
73
 
71
74
  # Open twiss
72
75
  init = tw.get_twiss_init('ip3')
@@ -74,13 +77,13 @@ def test_chromatic_functions_vs_madx(test_context):
74
77
  compute_chromatic_properties=True)
75
78
 
76
79
  tw_ref_open = tw.rows['ip3':'ip6']
77
- assert np.allclose(tw_open.wx_chrom[:-1], tw_ref_open.wx_chrom,
80
+ xo.assert_allclose(tw_open.wx_chrom[:-1], tw_ref_open.wx_chrom,
78
81
  rtol=0, atol=2e-3 * np.max(tw_ref_open.wx_chrom))
79
- assert np.allclose(tw_open.wy_chrom[:-1], tw_ref_open.wy_chrom,
82
+ xo.assert_allclose(tw_open.wy_chrom[:-1], tw_ref_open.wy_chrom,
80
83
  rtol=0, atol=2e-3 * np.max(tw_ref_open.wy_chrom))
81
- assert np.allclose(tw_open.ax_chrom[:-1], tw_ref_open.ax_chrom,
84
+ xo.assert_allclose(tw_open.ax_chrom[:-1], tw_ref_open.ax_chrom,
82
85
  rtol=0, atol=2e-3 * np.max(tw_ref_open.ax_chrom))
83
- assert np.allclose(tw_open.ay_chrom[:-1], tw_ref_open.ay_chrom,
86
+ xo.assert_allclose(tw_open.ay_chrom[:-1], tw_ref_open.ay_chrom,
84
87
  rtol=0, atol=2e-3 * np.max(tw_ref_open.ay_chrom))
85
- assert np.allclose(tw_open.bx_chrom[:-1], tw_ref_open.bx_chrom,
88
+ xo.assert_allclose(tw_open.bx_chrom[:-1], tw_ref_open.bx_chrom,
86
89
  rtol=0, atol=2e-3 * np.max(tw_ref_open.bx_chrom))
@@ -1,9 +1,10 @@
1
- import numpy as np
2
- import xtrack as xt
3
1
  import pathlib
4
2
 
3
+ import numpy as np
5
4
  from scipy.constants import c as clight
6
5
 
6
+ import xtrack as xt
7
+
7
8
  test_data_folder = pathlib.Path(
8
9
  __file__).parent.joinpath('../test_data').absolute()
9
10
 
@@ -138,9 +139,9 @@ def test_coasting():
138
139
  print('f_measured: ', f_measured, ' Hz')
139
140
  print('Error: ', f_measured - f_expected, 'Hz')
140
141
 
141
- assert np.isclose(f_expected, f_measured, rtol=0, atol=5.) # 5 Hz tolerance (to account for random fluctuations)
142
- assert np.isclose(np.mean(inten), inten_exp, rtol=1e-2, atol=0)
143
- assert np.allclose(p.at_turn, num_turns*0.9, rtol=3e-2, atol=0) #beta1 defaults to 0.1
142
+ xo.assert_allclose(f_expected, f_measured, rtol=0, atol=5.) # 5 Hz tolerance (to account for random fluctuations)
143
+ xo.assert_allclose(np.mean(inten), inten_exp, rtol=1e-2, atol=0)
144
+ xo.assert_allclose(p.at_turn, num_turns*0.9, rtol=3e-2, atol=0) #beta1 defaults to 0.1
144
145
 
145
146
  tt = line.get_table()
146
147
  tt_synch = tt.rows[tt.element_type=='SyncTime']
@@ -3,18 +3,11 @@
3
3
  # Copyright (c) CERN, 2021. #
4
4
  # ######################################### #
5
5
 
6
- import pathlib
7
- import json
8
- import numpy as np
9
-
10
6
  import xobjects as xo
11
- import xtrack as xt
12
- import xfields as xf
13
7
  import xpart as xp
8
+ import xtrack as xt
14
9
  from xobjects.test_helpers import for_all_test_contexts
15
10
 
16
- import ducktrack as dtk
17
-
18
11
 
19
12
  @for_all_test_contexts
20
13
  def test_collective_tracker_indices_one_turn(test_context):
@@ -92,7 +85,7 @@ def test_get_non_collective_line(test_context):
92
85
  assert nc_line['e7'] is line['e7']
93
86
  assert nc_line.tracker.line is nc_line
94
87
 
95
- assert np.allclose(nc_line.get_s_elements(), line.get_s_elements(),
88
+ xo.assert_allclose(nc_line.get_s_elements(), line.get_s_elements(),
96
89
  rtol=0, atol=1e-15)
97
90
 
98
91
  assert nc_line.tracker is not line.tracker
@@ -4,13 +4,14 @@
4
4
  # ######################################### #
5
5
 
6
6
  import logging
7
- import pytest
8
7
 
9
8
  import numpy as np
9
+ import pytest
10
10
 
11
11
  import xobjects as xo
12
- import xtrack as xt
13
12
  import xpart as xp
13
+ import xtrack as xt
14
+
14
15
 
15
16
  def test_collimation_infrastructure():
16
17
 
@@ -218,7 +219,7 @@ def test_aperture_refinement(sandwitch_aper):
218
219
  r1 = np.sqrt(aper_1.a_squ)
219
220
  s_expected = s0 + (r_calc-r0)/(r1 - r0)*(s1 - s0)
220
221
  # TODO This threshold is a bit large
221
- assert np.allclose(particles.s[mask_lost], s_expected[mask_lost], atol=0.11)
222
+ xo.assert_allclose(particles.s[mask_lost], s_expected[mask_lost], atol=0.11)
222
223
 
223
224
 
224
225
  def test_losslocationrefinement_thick_collective_collimator():
@@ -323,7 +324,7 @@ def test_losslocationrefinement_thick_collective_collimator():
323
324
 
324
325
  loss_loc_refinement.refine_loss_location(particles)
325
326
 
326
- assert np.allclose(particles.s[mask_lost], 9.00,
327
+ xo.assert_allclose(particles.s[mask_lost], 9.00,
327
328
  rtol=0, atol=loss_loc_refinement.ds*1.0001)
328
329
 
329
330
  def test_losslocationrefinement_skip_refinement_for_collimators():