def test_lambdanu_to_Rz(): #coordinate system: a = 3. g = 4. Delta = numpy.sqrt(g - a) ac = numpy.sqrt(a / g) #_____test float input (z=0)_____ #coordinate transformation: l, n = 2., -4. R, z = bovy_coords.lambdanu_to_Rz(l, n, ac=ac, Delta=Delta) #true values: R_true = numpy.sqrt((l + a) * (n + a) / (a - g)) z_true = numpy.sqrt((l + g) * (n + g) / (g - a)) #test: assert numpy.fabs( R - R_true ) < 10.**-10., 'lambdanu_to_Rz conversion did not work as expected (R)' assert numpy.fabs( z - z_true ) < 10.**-10., 'lambdanu_to_Rz conversion did not work as expected (z)' #_____Also test for arrays_____ #coordinate transformation: l = numpy.array([2., 10., 20., 0.]) n = numpy.array([-4., -3., -3.5, -3.5]) R, z = bovy_coords.lambdanu_to_Rz(l, n, ac=ac, Delta=Delta) #true values: R_true = numpy.sqrt((l + a) * (n + a) / (a - g)) z_true = numpy.sqrt((l + g) * (n + g) / (g - a)) #test: rel_diff = numpy.fabs((R - R_true) / R_true) < 10.**-8. abs_diff = (numpy.fabs(R - R_true) < 10.**-6.) * (numpy.fabs(R_true) < 10. **-6.) assert numpy.all( rel_diff + abs_diff ), 'lambdanu_to_Rz conversion did not work as expected (R array)' rel_diff = numpy.fabs((z - z_true) / z_true) < 10.**-8. abs_diff = (numpy.fabs(z - z_true) < 10.**-6.) * (numpy.fabs(z_true) < 10. **-6.) assert numpy.all( rel_diff + abs_diff ), 'lambdanu_to_Rz conversion did not work as expected (z array)' return None
def test_Rz_to_lambdanu_r2lt0(): # Special case that leads to r2 just below zero #coordinate system: a = 3. g = 7. Delta = numpy.sqrt(g - a) ac = numpy.sqrt(a / g) #_____test float input (R=0)_____ #true values: l, n = 2., -3. + 10.**-10. #coordinate transformation: lt, nt = bovy_coords.Rz_to_lambdanu(*bovy_coords.lambdanu_to_Rz( l, n, ac=ac, Delta=Delta), ac=ac, Delta=Delta) #test: assert numpy.fabs( lt - l) < 10.**-8., 'Rz_to_lambdanu conversion did not work as expected (l)' assert numpy.fabs( nt - n) < 10.**-8., 'Rz_to_lambdanu conversion did not work as expected (n)' #___Also test for arrays___ l = numpy.array([2., 10., 20., 0.]) n = numpy.array([-7., -3. + 10.**-10., -5., -5.]) lt, nt = bovy_coords.Rz_to_lambdanu(*bovy_coords.lambdanu_to_Rz( l, n, ac=ac, Delta=Delta), ac=ac, Delta=Delta) assert numpy.all( numpy.fabs(lt - l) < 10.**-8. ), 'Rz_to_lambdanu conversion did not work as expected (l array)' assert numpy.all( numpy.fabs(nt - n) < 10.**-8. ), 'Rz_to_lambdanu conversion did not work as expected (n array)' return None
def test_Rz_to_lambdanu(): #coordinate system: a = 3. g = 7. Delta = numpy.sqrt(g-a) ac = numpy.sqrt(a/g) #_____test float input (R=0)_____ #true values: l, n = 2., -3. #coordinate transformation: lt,nt= bovy_coords.Rz_to_lambdanu(*bovy_coords.lambdanu_to_Rz(l,n,ac=ac,Delta=Delta),ac=ac,Delta=Delta) #test: assert numpy.fabs(lt-l) < 10.**-10., 'Rz_to_lambdanu conversion did not work as expected (l)' assert numpy.fabs(nt-n) < 10.**-10., 'Rz_to_lambdanu conversion did not work as expected (n)' #___Also test for arrays___ l = numpy.array([2. ,10.,20. ,0.]) n = numpy.array([-7.,-3.,-5.,-5.]) lt,nt= bovy_coords.Rz_to_lambdanu(*bovy_coords.lambdanu_to_Rz(l,n,ac=ac,Delta=Delta),ac=ac,Delta=Delta) assert numpy.all(numpy.fabs(lt-l) < 10.**-10.), 'Rz_to_lambdanu conversion did not work as expected (l array)' assert numpy.all(numpy.fabs(nt-n) < 10.**-10.), 'Rz_to_lambdanu conversion did not work as expected (n array)' return None
def test_lambdanu_to_Rz(): #coordinate system: a = 3. g = 4. Delta = numpy.sqrt(g-a) ac = numpy.sqrt(a/g) #_____test float input (z=0)_____ #coordinate transformation: l, n = 2., -4. R,z= bovy_coords.lambdanu_to_Rz(l,n,ac=ac,Delta=Delta) #true values: R_true = numpy.sqrt((l+a)*(n+a)/(a-g)) z_true = numpy.sqrt((l+g)*(n+g)/(g-a)) #test: assert numpy.fabs(R-R_true) < 10.**-10., 'lambdanu_to_Rz conversion did not work as expected (R)' assert numpy.fabs(z-z_true) < 10.**-10., 'lambdanu_to_Rz conversion did not work as expected (z)' #_____Also test for arrays_____ #coordinate transformation: l = numpy.array([2. ,10.,20. ,0.]) n = numpy.array([-4.,-3.,-3.5,-3.5]) R,z= bovy_coords.lambdanu_to_Rz(l,n,ac=ac,Delta=Delta) #true values: R_true = numpy.sqrt((l+a)*(n+a)/(a-g)) z_true = numpy.sqrt((l+g)*(n+g)/(g-a)) #test: rel_diff = numpy.fabs((R-R_true)/R_true) < 10.**-8. abs_diff = (numpy.fabs(R-R_true) < 10.**-6.) * (numpy.fabs(R_true) < 10.**-6.) assert numpy.all(rel_diff+abs_diff), 'lambdanu_to_Rz conversion did not work as expected (R array)' rel_diff = numpy.fabs((z-z_true)/z_true) < 10.**-8. abs_diff = (numpy.fabs(z-z_true) < 10.**-6.) * (numpy.fabs(z_true) < 10.**-6.) assert numpy.all(rel_diff+abs_diff), 'lambdanu_to_Rz conversion did not work as expected (z array)' return None