Ejemplo n.º 1
0
 def setUp(self):
     star1 = Star(0, 0, sph=(0, np.pi / 2))
     self.scene1 = Scene([star1])
     star1 = Star(1, 0, sph=(0, 0))
     star2 = Star(2, 0, sph=(0, np.deg2rad(5)))
     star3 = Star(3, 0, sph=(2 * np.pi - np.deg2rad(5), 0))
     self.scene2 = Scene([star1, star2, star3])
Ejemplo n.º 2
0
    def test_find_matching_triplets_none(self):
        ms1 = Star(3,0,sph=(np.pi,0))
        ms2 = Star(4,0,sph=(4*np.pi/3,0))
        ms3 = Star(5,0,sph=(np.pi,np.pi/6+0.001))
        full_scene = Scene([ms1,ms2,ms3])

        distances = full_scene.get_all_angular_distances()
        
        pyramid = Pyramid(self.scene,full_scene)
        with self.assertRaises(Exception, msg='No suitable stars found.'):
            matches = pyramid.find_matching_triplets(self.scene,distances)
Ejemplo n.º 3
0
 def test_get_all_angular_distances_sorted(self):
     star1 = Star(1,1,sph=(0,np.pi/4))
     star2 = Star(2,1,sph=(0,np.pi/2))
     star3 = Star(3,1,sph=(0,np.pi))
     distance1 = AngularDistance(star1, star2)
     distance2 = AngularDistance(star1, star3)
     distance3 = AngularDistance(star2, star3)
     scene = Scene([star1,star2,star3])
     distances = scene.get_all_angular_distances()
     self.assertEquals(distance1,distances.distances[0])
     self.assertEquals(distance3,distances.distances[1])
     self.assertEquals(distance2,distances.distances[2])
Ejemplo n.º 4
0
 def test_get_all_angular_distances_max(self):
     star1 = self.star1
     star2 = self.star2
     star3 = self.star3
     distance1 = AngularDistance(star1, star2)
     distance2 = AngularDistance(star1, star3)
     distance3 = AngularDistance(star2, star3)
     scene = Scene([star1,star2,star3])
     max_distance = 2
     distances = scene.get_all_angular_distances(max_distance)
     self.assertIn(distance1, distances.distances)
     self.assertIn(distance2, distances.distances)
Ejemplo n.º 5
0
 def test_get_triplets(self):
     s1 = self.star1
     s2 = self.star2
     s3 = self.star3
     s4 = self.star4
     stars = [s1,s2,s3,s4]
     scene = Scene(stars)
     left_out = []
     for small_scene in scene.get_triplets():
         self.assertEquals(len(small_scene.stars), 3)
         left_out += [s for s in stars if s not in small_scene.stars]
     for star in left_out:
         self.assertIn(star, stars)
Ejemplo n.º 6
0
    def test_find_matching_triplets(self):
        ms1 = Star(3,0,sph=(np.pi,0))
        ms2 = Star(4,0,sph=(4*np.pi/3,0))
        ms3 = Star(5,0,sph=(np.pi,np.pi/6))
        ms4 = Star(6,0,sph=(5*np.pi/6,0))
        ms5 = Star(7,0,sph=(np.pi,np.pi/2))
        ms6 = Star(8,0,sph=(np.pi/2,np.pi/6))
        full_scene = Scene([ms1,ms2,ms3,ms4,ms5,ms6])

        distances = full_scene.get_all_angular_distances()
        
        pyramid = Pyramid(self.scene,full_scene)
        matches = pyramid.find_matching_triplets(self.scene,distances)
        self.assertEquals(len(matches), 1)
        
        self.assertIn(ms1,matches[0].stars)
        self.assertIn(ms2,matches[0].stars)
        self.assertIn(ms3,matches[0].stars)
Ejemplo n.º 7
0
 def setUp(self):
     #Degrees to radians
     d2r = np.pi/180
     self.d2r = d2r
     self.star1 = Star(1,3.1,sph=(45*d2r,45*d2r))
     self.star2 = Star(2,4.5,sph=(90*d2r,-45*d2r))
     self.star3 = Star(3,1.3,sph=(180*d2r,60*d2r))
     self.star4 = Star(4,2.4,sph=(225*d2r,20*d2r))
     self.star5 = Star(5,6.1,sph=(315*d2r,-30*d2r))
     stars = [self.star1,self.star2,self.star3,self.star4,self.star5]
     self.scene = Scene(stars)
Ejemplo n.º 8
0
    def test_find_matching_triplets_many(self):
        ms1 = Star(3,0,sph=(np.pi,0))
        ms2 = Star(4,0,sph=(4*np.pi/3,0))
        ms3 = Star(5,0,sph=(np.pi,np.pi/6))
        ms4 = Star(6,0,sph=(2*np.pi/3,0))
        full_scene = Scene([ms1,ms2,ms3,ms4])

        distances = full_scene.get_all_angular_distances()
        
        pyramid = Pyramid(self.scene,full_scene)
        matches = pyramid.find_matching_triplets(self.scene,distances)
        self.assertEquals(len(matches), 2)
        
        self.assertIn(ms1,matches[0].stars)
        self.assertIn(ms3,matches[0].stars)

        self.assertIn(ms1,matches[1].stars)
        self.assertIn(ms3,matches[1].stars)

        odd1 = [s for s in matches[0].stars if s not in matches[1].stars]
        odd2 = [s for s in matches[1].stars if s not in matches[0].stars]
        self.assertEquals(len(odd1+odd2),2)
        self.assertIn(ms2,odd1+odd2)
        self.assertIn(ms4,odd1+odd2)
Ejemplo n.º 9
0
 def setUp(self):
     s1 = Star(0,0,sph=(0,0))
     s2 = Star(1,0,sph=(np.pi/3,0))
     s3 = Star(2,0,sph=(0,np.pi/6))
     self.scene = Scene([s1,s2,s3])