def test_ion_sound_speed(): r"""Test the ion_sound_speed function in parameters.py.""" assert np.isclose( ion_sound_speed(T_i=1.3232 * u.MK, T_e=1.831 * u.MK, ion='p', gamma_e=1, gamma_i=3).value, 218816.06086407552) assert np.isclose( ion_sound_speed(T_i=0.88 * u.MK, T_e=1.28 * u.MK, ion='p', gamma_e=1.2, gamma_i=3.4).value, 193328.52857788358) # case when Z=1 is assumed # assert ion_sound_speed(T_i=T_i, T_e=T_e, ion='p+') == ion_sound_speed(T_i=T_i, T_e=T_e, # ion='H-1') assert ion_sound_speed(T_i=T_i, T_e=0 * u.K, ion='p+').unit.is_equivalent(u.m / u.s) with pytest.raises(RelativityError): ion_sound_speed(T_i=T_i, T_e=T_e, gamma_i=np.inf) with pytest.raises(ValueError): ion_sound_speed(T_i=np.array([5, 6, 5]) * u.K, T_e=np.array([3, 4]) * u.K) with pytest.raises(TypeError): # Is this test right?????? ion_sound_speed(5 * u.T) with pytest.raises(TypeError): ion_sound_speed('p') with pytest.raises(PhysicsError): ion_sound_speed(T_i=T_i, T_e=0 * u.K, gamma_i=0.9999) with pytest.raises(PhysicsError): ion_sound_speed(T_i=T_i, T_e=0 * u.K, gamma_e=0.9999) with pytest.raises(TypeError): ion_sound_speed(T_i=T_i, T_e=0 * u.K, gamma_e='sdjklsf') with pytest.raises(TypeError): ion_sound_speed(T_i=T_i, T_e=0 * u.K, gamma_i='fsdfas') with pytest.raises(InvalidParticleError): ion_sound_speed(T_i=T_i, T_e=0 * u.K, ion='cupcakes') with pytest.raises(ValueError): ion_sound_speed( T_i=-np.abs(T_i), T_e=0 * u.K, ) with pytest.warns(RelativityWarning): ion_sound_speed(T_i=5e11 * u.K, T_e=0 * u.K) with pytest.raises(RelativityError): ion_sound_speed(T_i=5e19 * u.K, T_e=0 * u.K) with pytest.raises(u.UnitConversionError): ion_sound_speed(T_i=5 * u.A, T_e=0 * u.K) with pytest.raises(ValueError): ion_sound_speed(T_i=T_nanarr, T_e=0 * u.K) with pytest.raises(ValueError): ion_sound_speed(T_e=T_nanarr, T_i=0 * u.K) with pytest.raises(ValueError): ion_sound_speed(T_i=T_negarr, T_e=0 * u.K) with pytest.raises(ValueError): ion_sound_speed(T_e=T_negarr, T_i=0 * u.K) with pytest.warns(u.UnitsWarning): assert ion_sound_speed(T_e=1.2e6, T_i=0 * u.K) == ion_sound_speed(T_e=1.2e6 * u.K, T_i=0 * u.K) with pytest.warns(u.UnitsWarning): assert ion_sound_speed(T_i=1.3e6, T_e=0 * u.K) == ion_sound_speed(T_i=1.3e6 * u.K, T_e=0 * u.K) ion_sound_speed(T_e=1.2e6 * u.K, T_i=0 * u.K) # testing for user input z_mean testMeth1 = ion_sound_speed(T_e=1.2e6 * u.K, T_i=0 * u.K, z_mean=0.8).si.value testTrue1 = 89018.0944146141 errStr = f"ion_sound_speed() gave {testMeth1}, should be {testTrue1}." assert np.isclose(testMeth1, testTrue1, atol=0.0, rtol=1e-15), errStr assert_can_handle_nparray(ion_sound_speed)
def time_ion_sound_speed(self): ion_sound_speed(T_i=1.3232 * u.MK, T_e=1.831 * u.MK, ion='p', gamma_e=1, gamma_i=3)