Example #1
0
 def test_get_indices_near_piercing(self):
     """
     Should find indices for points near a piercing points.
     """
     # should get indices if path crosses layer
     iref = 0
     ip = get_indices_near_piercing(self.pi, iref)
     self.assertEqual(len(ip), 2)
     self.assertEqual(ip[0][0], 0)
     self.assertEqual(ip[0][1], 1)
     self.assertEqual(ip[1][0], 8)
     self.assertEqual(ip[1][1], 7)
     # should return empty array if path does not cross interface
     pi = 999 * np.ones(len(self.pi))
     ip = get_indices_near_piercing(pi, iref)
     self.assertEqual(len(ip), 0)
     # should just return points on the downward leg
     ip = get_indices_near_piercing(self.pi, iref, downward=True,
                                    upward=False)
     self.assertEqual(len(ip), 1)
     self.assertEqual(ip[0][0], 0)
     self.assertEqual(ip[0][1], 1)
     # should just return points on the upward leg
     ip = get_indices_near_piercing(self.pi, iref, downward=False,
                                    upward=True)
     self.assertEqual(len(ip), 1)
     self.assertEqual(ip[0][0], 8)
     self.assertEqual(ip[0][1], 7)
Example #2
0
 def test_get_piercing_points(self):
     """
     Should find coordinates of piercing points.
     """
     iref = 0
     # indices of points near the piercing points
     ip = get_indices_near_piercing(self.pi, iref)
     # should find piercing points if path crosses interface
     pp = get_piercing_points(self.vm, iref, self.px, self.py, self.pz,
                              ip)
     self.assertEqual(pp[0, 0], 1.)
     self.assertEqual(pp[0, 1], 1.8)
     self.assertEqual(pp[0, 2], 5.)
     self.assertEqual(pp[1, 0], 1.)
     self.assertEqual(pp[1, 1], 8.75)
     self.assertEqual(pp[1, 2], 5.)
     # should return empty array if path does not cross interface
     px = np.ones(len(self.pi))
     py = np.linspace(1, 9, len(self.pi))
     pz = 12 * np.ones(len(self.pi))
     pi = assign_points_to_layers(self.vm, px, py, pz)
     ip = get_indices_near_piercing(pi, iref)
     pp = get_piercing_points(self.vm, 0, px, py, pz, ip)
     self.assertEqual(len(pp), 0)
     # should just return points on the downward leg
     ip = get_indices_near_piercing(self.pi, iref, downward=True,
                                    upward=False)
     pp = get_piercing_points(self.vm, 0, self.px, self.py, self.pz, ip)
     self.assertEqual(pp[0, 0], 1.)
     self.assertEqual(pp[0, 1], 1.8)
     self.assertEqual(pp[0, 2], 5.)
     # should just return points on the upward leg
     ip = get_indices_near_piercing(self.pi, iref, downward=False,
                                    upward=True)
     pp = get_piercing_points(self.vm, 0, self.px, self.py, self.pz, ip)
     self.assertEqual(pp[0, 0], 1.)
     self.assertEqual(pp[0, 1], 8.75)
     self.assertEqual(pp[0, 2], 5.)