diff options
author | sienkiew <sienkiew@stsci.edu> | 2014-03-25 10:53:08 -0400 |
---|---|---|
committer | sienkiew <sienkiew@stsci.edu> | 2014-03-25 10:53:08 -0400 |
commit | 5d00dcb1a0123389d9759698a5c42828e17af9bc (patch) | |
tree | ecef07881ea7b6b661ee5f59847b00dafecf3409 /lib/test/test_skyline.py | |
parent | 64be292044c4428b5908acf5cc2dda6693ed1afb (diff) | |
download | stsci.sphere-5d00dcb1a0123389d9759698a5c42828e17af9bc.tar.gz |
mod for d2to1 install
git-svn-id: http://svn.stsci.edu/svn/ssb/stsci_python/stsci.sphere/trunk@30670 fe389314-cf27-0410-b35b-8c050e845b92
Former-commit-id: 91667828b7e01b5aae55679093564473a976e8a9
Diffstat (limited to 'lib/test/test_skyline.py')
-rw-r--r-- | lib/test/test_skyline.py | 225 |
1 files changed, 0 insertions, 225 deletions
diff --git a/lib/test/test_skyline.py b/lib/test/test_skyline.py deleted file mode 100644 index 929f0ba..0000000 --- a/lib/test/test_skyline.py +++ /dev/null @@ -1,225 +0,0 @@ -""" -SkyLine tests. - -:Author: Pey Lian Lim - -:Organization: Space Telescope Science Institute - -Examples --------- ->>> cd path/to/project ->>> nosetests - -""" -from __future__ import absolute_import - -from copy import copy -from numpy.testing import assert_almost_equal - -from ..vector import vector_to_radec -from ..polygon import SphericalPolygon -from ..skyline import SkyLine - -from .test_util import ROOT_DIR -from .test_shared import resolve_imagename - - -#---------------------------------------# -# Load footprints used by all the tests # -#---------------------------------------# -f_2chipA = resolve_imagename(ROOT_DIR, '2chipA.fits') # ACS/WFC #1 -im_2chipA = SkyLine(f_2chipA) -f_2chipB = resolve_imagename(ROOT_DIR, '2chipB.fits') # ACS/WFC #2 -im_2chipB = SkyLine(f_2chipB) -f_2chipC = resolve_imagename(ROOT_DIR, '2chipC.fits') # WFC3/UVIS -im_2chipC = SkyLine(f_2chipC) -f_66_tan = resolve_imagename(ROOT_DIR, '1904-66_TAN.fits') -im_66_tan = SkyLine(f_66_tan, extname='primary') - - -#----- SHARED FUNCTIONS ----- - -def same_members(mem1, mem2): - assert len(mem1) == len(mem2) - - for m in mem1: - assert m in mem2 - - for m in mem2: - assert m in mem1 - -def subset_members(mem_child, mem_parent): - assert len(mem_parent) > len(mem_child) - - for m in mem_child: - assert m in mem_parent - -def subset_polygon(p_child, p_parent): - """Overlap not working. Do this instead until fixed.""" - assert p_parent.area() >= p_child.area() - assert p_parent.contains_point(p_child.inside) - -def no_polygon(p_child, p_parent): - """Overlap not working. Do this instead until fixed.""" - assert not p_parent.contains_point(p_child.inside) - - -#----- MEMBERSHIP ----- - -def do_member_overlap(im): - for m in im.members: - assert_almost_equal(m.polygon.overlap(im), 1.0) - -def test_membership(): - do_member_overlap(im_2chipA) - do_member_overlap(im_2chipB) - do_member_overlap(im_66_tan) - - assert len(im_2chipA.members) == 1 - assert im_2chipA.members[0].fname == f_2chipA - assert im_2chipA.members[0].ext == (1,4) - - -#----- COPY ----- - -def test_copy(): - a_copy = copy(im_2chipA) - assert a_copy is not im_2chipA - - -#----- SPHERICAL POLYGON RELATED ----- - -def test_sphericalpolygon(): - assert im_2chipA.contains_point(im_2chipA.inside) - - assert im_2chipA.intersects_poly(im_2chipB.polygon) - - assert im_2chipA.intersects_arc(im_2chipA.inside, im_2chipB.inside) - - assert im_2chipA.overlap(im_2chipB) < im_2chipA.overlap(im_2chipA) - - assert_almost_equal(im_2chipA.area(), im_2chipB.area()) - - ra_A, dec_A = im_2chipA.to_radec() - for i in xrange(len(im_2chipA.points)): - p = im_2chipA.points[i] - ra, dec = vector_to_radec(p[0], p[1], p[2], degrees=True) - assert_almost_equal(ra_A[i], ra) - assert_almost_equal(dec_A[i], dec) - - -#----- WCS ----- - -def test_wcs(): - wcs = im_2chipA.to_wcs() - new_p = SphericalPolygon.from_wcs(wcs) - subset_polygon(im_2chipA, new_p) - - -#----- UNION ----- - -def do_add_image(im1, im2): - u1 = im1.add_image(im2) - u2 = im2.add_image(im1) - - assert u1.same_points_as(u2) - same_members(u1.members, u2.members) - - all_mems = im1.members + im2.members - same_members(u1.members, all_mems) - - subset_polygon(im1, u1) - subset_polygon(im2, u1) - -def test_add_image(): - # Dithered - do_add_image(im_2chipA, im_2chipB) - - # Not related - do_add_image(im_2chipA, im_66_tan) - - -#----- INTERSECTION ----- - -def do_intersect_image(im1, im2): - i1 = im1.find_intersection(im2) - i2 = im2.find_intersection(im1) - - assert i1.same_points_as(i2) - same_members(i1.members, i2.members) - - if len(i1.points) > 0: - subset_members(im1.members, i1.members) - subset_members(im2.members, i1.members) - - subset_polygon(i1, im1) - subset_polygon(i1, im2) - -def test_find_intersection(): - # Dithered - do_intersect_image(im_2chipA, im_2chipB) - - # Not related - do_intersect_image(im_2chipA, im_66_tan) - - -#----- SKYLINE OVERLAP ----- - -def test_max_overlap(): - max_s, max_a = im_2chipA.find_max_overlap([im_2chipB, im_2chipC, im_66_tan]) - assert max_s is im_2chipB - assert_almost_equal(max_a, im_2chipA.intersection(im_2chipB).area()) - - max_s, max_a = im_2chipA.find_max_overlap([im_2chipB, im_2chipA]) - assert max_s is im_2chipA - assert_almost_equal(max_a, im_2chipA.area()) - -def test_max_overlap_pair(): - assert SkyLine.max_overlap_pair( - [im_2chipB, im_2chipC, im_2chipA, im_66_tan]) == (im_2chipB, im_2chipA) - - assert SkyLine.max_overlap_pair([im_2chipC, im_2chipA, im_66_tan]) is None - - -#----- INTENDED USE CASE ----- - -def test_science_1(): - mos, inc, exc = SkyLine.mosaic([im_2chipA, im_2chipB, im_2chipC, im_66_tan]) - - assert inc == [f_2chipA, f_2chipB] - assert exc == [f_2chipC, f_66_tan] - - subset_polygon(im_2chipA, mos) - subset_polygon(im_2chipB, mos) - - no_polygon(im_2chipC, mos) - no_polygon(im_66_tan, mos) - -def test_science_2(): - """Like `test_science_1` but different input order.""" - mos, inc, exc = SkyLine.mosaic([im_2chipB, im_66_tan, im_2chipC, im_2chipA]) - - assert inc == [f_2chipB, f_2chipA] - assert exc == [f_66_tan, f_2chipC] - - subset_polygon(im_2chipA, mos) - subset_polygon(im_2chipB, mos) - - no_polygon(im_2chipC, mos) - no_polygon(im_66_tan, mos) - - -#----- UNSTABLE ----- - -def DISABLED_unstable_overlap(): - i1 = im_2chipA.find_intersection(im_2chipB) - i2 = im_2chipB.find_intersection(im_2chipA) - - u1 = im_2chipA.add_image(im_2chipB) - u2 = im_2chipB.add_image(im_2chipA) - - # failed here before - known bug - # failure not always the same due to hash mapping - assert_almost_equal(i1.overlap(u1), 1.0) - assert_almost_equal(i1.overlap(i2), 1.0) - assert_almost_equal(u1.overlap(u2), 1.0) |