def testMaxAlpha(self): c = (0.0, 0.0) for r in (1.0, 10.0, 20.0, 45.0): for phi in (-40.0, -20.0, 0.0, 10.0, 40.0): a = g.maxAlpha(r, phi) + g.ANGLE_EPSILON for x in (phi, phi + r, phi - r): self.assertTrue(g.sphericalAngularSep((a, x), c) > r) self.assertTrue(g.sphericalAngularSep((-a, x), c) > r) points = _pointsOnCircle((0.0, phi), r, 50) box = g.SphericalBox((-a, phi - r - g.ANGLE_EPSILON), (a, phi + r + +g.ANGLE_EPSILON)) for p in points: self.assertTrue(box.contains(p))
def testMaxAlpha(self): c = (0.0, 0.0) for r in (1.0, 10.0, 20.0, 45.0): for phi in (-40.0, -20.0, 0.0, 10.0, 40.0): a = g.maxAlpha(r, phi) + g.ANGLE_EPSILON for x in (phi, phi + r, phi - r): self.assertTrue(g.sphericalAngularSep((a, x), c) > r) self.assertTrue(g.sphericalAngularSep((-a, x), c) > r) points = _pointsOnCircle((0.0, phi), r, 50) box = g.SphericalBox((-a, phi - r - g.ANGLE_EPSILON), (a, phi + r + + g.ANGLE_EPSILON)) for p in points: self.assertTrue(box.contains(p))
def testAngularSep(self): tv = [((1.0, 1.0, 0.0), (1.0, 0.0, 0.0), 45.0), ((1.0, 1.0, 0.0), (0.0, 1.0, 0.0), 45.0), ((1.0, 0.0, 1.0), (1.0, 0.0, 0.0), 45.0), ((0.0, 1.0, 1.0), (0.0, 0.0, 1.0), 45.0), ((1.0, 1.0, 0.0), (1.0, -1.0, 0.0), 90.0), ((1.0, 0.0, 1.0), (1.0, 0.0, -1.0), 90.0)] for v1, v2, a in tv: d = [g.cartesianAngularSep(v1, v2)] d.append(g.cartesianAngularSep(v2, v1)) sc1, sc2 = g.sphericalCoords(v1), g.sphericalCoords(v2) d.append(g.sphericalAngularSep(sc1, sc2)) d.append(g.sphericalAngularSep(sc2, sc1)) for x in d: self.assertAlmostEqual(x, a)
def testAngularSep(self): tv = [((1.0, 1.0, 0.0), (1.0, 0.0, 0.0), 45.0), ((1.0, 1.0, 0.0), (0.0, 1.0, 0.0), 45.0), ((1.0, 0.0, 1.0), (1.0, 0.0, 0.0), 45.0), ((0.0, 1.0, 1.0), (0.0, 0.0, 1.0), 45.0), ((1.0, 1.0, 0.0), (1.0, -1.0, 0.0), 90.0), ((1.0, 0.0, 1.0), (1.0, 0.0, -1.0), 90.0) ] for v1, v2, a in tv: d = [g.cartesianAngularSep(v1, v2)] d.append(g.cartesianAngularSep(v2, v1)) sc1, sc2 = g.sphericalCoords(v1), g.sphericalCoords(v2) d.append(g.sphericalAngularSep(sc1, sc2)) d.append(g.sphericalAngularSep(sc2, sc1)) for x in d: self.assertAlmostEqual(x, a)
def testAlpha(self): c = (0.0, 0.0) for r in (1.0, 10.0, 20.0, 45.0): self.assertEqual(g.alpha(r, 0.0, r + 1), None) self.assertEqual(g.alpha(r, 0.0, -r - 1), None) alpha = g.alpha(r, 0.0, 0.0) self.assertAlmostEqual(alpha, r) phi = 0.5 * r a1 = g.alpha(r, 0.0, phi) a2 = g.alpha(r, 0.0, -phi) self.assertAlmostEqual(a1, a2) self.assertAlmostEqual(g.sphericalAngularSep((a1, phi), c), r) self.assertAlmostEqual(g.sphericalAngularSep((-a1, phi), c), r) self.assertAlmostEqual(g.sphericalAngularSep((a2, -phi), c), r) self.assertAlmostEqual(g.sphericalAngularSep((-a2, -phi), c), r) c = (0.0, 89.0) self.assertEqual(g.alpha(3.0, 89.0, 89.0), None) c = (0.0, -89.0) self.assertEqual(g.alpha(3.0, -89.0, -89.0), None)