Esempio n. 1
0
 def test_finite(self):
     c = FiniteConjugate(radius=.1,
                         pupil=dict(type="slope", distance=6.,
                                    slope=2. / 6))
     self.assertAlmostEqual(c.pupil.na,
                            sinarctan(c.pupil.radius / c.pupil.distance))
     self.some_aims(c)
Esempio n. 2
0
 def test_finite(self):
     c = FiniteConjugate(entrance_distance=6.,
             entrance_radius=2., pupil_distance=9.,
             radius=.1)
     self.assertAlmostEqual(c.pupil_radius,
             c.entrance_radius/c.entrance_distance*c.pupil_distance)
     self.assertAlmostEqual(c.na,
             sinarctan(c.entrance_radius/c.entrance_distance))
     self.some_aims(c)
Esempio n. 3
0
 def test_real_similar_to_parax(self, n=100, e=1e-3):
     y0p = np.random.randn(n, 2)*e
     u0p = np.random.randn(n, 2)*e
     y0r = np.hstack((y0p, np.ones((n, 1))*-self.s.distance))
     u0r = np.hstack((sinarctan(u0p), np.zeros((n, 1))))
     u0r[:, 2] = np.sqrt(1 - np.square(u0p).sum(1))
     yup, np_ = self.s.propagate_paraxial(np.hstack((y0p, u0p)).T, 1., 1.)
     yp, up = np.hsplit(yup.T, 2)
     # y0r, u0r = self.s.to_normal(y0r, u0r)
     yr, ur, nr, tr = self.s.propagate(y0r, u0r, 1., 1.)
     # yr, ur = self.s.from_normal(yr, ur)
     yr, ur = self.sa.to_axis(yr, ur)
     nptest.assert_allclose(nr, np_, rtol=e**2, atol=3e-8)
     nptest.assert_allclose(yr[:, :2], yp, rtol=e**2, atol=3e-8)
     nptest.assert_allclose(tanarcsin(ur), up/np_, rtol=e**2, atol=3e-8)
Esempio n. 4
0
 def test_real_similar_to_parax(self, n=100, e=1e-3):
     y0p = np.random.randn(n, 2) * e
     u0p = np.random.randn(n, 2) * e
     y0r = np.hstack((y0p, np.ones((n, 1)) * -self.s.distance))
     u0r = np.hstack((sinarctan(u0p), np.zeros((n, 1))))
     u0r[:, 2] = np.sqrt(1 - np.square(u0p).sum(1))
     yup, np_ = self.s.propagate_paraxial(np.hstack((y0p, u0p)).T, 1., 1.)
     yp, up = np.hsplit(yup.T, 2)
     # y0r, u0r = self.s.to_normal(y0r, u0r)
     yr, ur, nr, tr = self.s.propagate(y0r, u0r, 1., 1.)
     # yr, ur = self.s.from_normal(yr, ur)
     yr, ur = self.sa.to_axis(yr, ur)
     nptest.assert_allclose(nr, np_, rtol=e**2, atol=3e-8)
     nptest.assert_allclose(yr[:, :2], yp, rtol=e**2, atol=3e-8)
     nptest.assert_allclose(tanarcsin(ur), up / np_, rtol=e**2, atol=3e-8)
Esempio n. 5
0
 def test_finite(self):
     c = FiniteConjugate(radius=.1,
                         pupil=dict(type="slope", distance=6., slope=2./6))
     self.assertAlmostEqual(c.pupil.na,
                            sinarctan(c.pupil.radius/c.pupil.distance))
     self.some_aims(c)