Coverage for tests/test_celestial_object.py : 18%

Hot-keys on this page
r m x p toggle line displays
j k next/prev highlighted chunk
0 (zero) top of page
1 (one) first highlighted chunk
1import unittest
2import numpy as np
3import lsst.utils.tests
4from lsst.sims.utils import arcsecFromRadians
5from lsst.sims.GalSimInterface import GalSimCelestialObject
6from lsst.sims.photUtils import Sed, BandpassDict, Bandpass
7from lsst.sims.photUtils import PhotometricParameters
10def setup_module(module):
11 lsst.utils.tests.init()
14class GSCOTestCase(unittest.TestCase):
16 def test_getters(self):
17 """
18 Verify that what goes into __init__ comes out of the getters
19 """
20 xpupil_rad = 2.176
21 ypupil_rad = 3.2112
22 hlr = 1.632
23 minor_axis_rad = 9.124
24 major_axis_rad = 21.2684
25 position_angle_rad = 0.1334
26 sindex = 4.387
27 npoints = 19
28 pixel_scale=25.134
29 rotation_angle_rad = 0.9335
30 gamma1 = 0.512
31 gamma2 = 3.4456
32 kappa = 1.747
33 phot_params = PhotometricParameters()
35 rng = np.random.RandomState(88)
36 wav = np.arange(0.1, 200.0, 0.17)
37 spec = Sed(wavelen=wav, flambda=rng.random_sample(len(wav)))
39 # copy spec for comparison below
40 spec2 = Sed(wavelen=spec.wavelen, flambda=spec.flambda)
42 # keep BandpassDict on the same wavelength grid as Sed,
43 # otherwise, the random initialization results in flux==NaN
44 bp_list = []
45 bp_name_list = []
46 for bp_name in 'abcd':
47 sb = rng.random_sample(len(wav))
48 bp = Bandpass(wavelen=wav, sb=sb)
49 bp_list.append(bp)
50 bp_name_list.append(bp_name)
52 bp_dict = BandpassDict(bp_list, bp_name_list)
54 gso = GalSimCelestialObject('pointSource',
55 xpupil_rad, ypupil_rad,
56 hlr, minor_axis_rad, major_axis_rad,
57 position_angle_rad, sindex,
58 spec, bp_dict, phot_params,
59 npoints, 'bob', pixel_scale,
60 rotation_angle_rad,
61 gamma1=gamma1, gamma2=gamma2,
62 kappa=kappa, uniqueId=111)
64 self.assertAlmostEqual(gso.xPupilRadians/xpupil_rad, 1.0, 10)
65 self.assertAlmostEqual(gso.xPupilArcsec/arcsecFromRadians(xpupil_rad), 1.0, 10)
66 self.assertAlmostEqual(gso.yPupilRadians/ypupil_rad, 1.0, 10)
67 self.assertAlmostEqual(gso.yPupilArcsec/arcsecFromRadians(ypupil_rad), 1.0, 10)
68 self.assertAlmostEqual(gso.halfLightRadiusRadians/hlr, 1.0, 10)
69 self.assertAlmostEqual(gso.halfLightRadiusArcsec/arcsecFromRadians(hlr), 1.0, 10)
70 self.assertEqual(gso.uniqueId, 111)
71 self.assertEqual(gso.galSimType, 'pointSource')
72 self.assertEqual(gso.npoints, npoints)
73 self.assertAlmostEqual(gso.minorAxisRadians/minor_axis_rad, 1.0, 10)
74 self.assertAlmostEqual(gso.majorAxisRadians/major_axis_rad, 1.0, 10)
75 self.assertAlmostEqual(gso.positionAngleRadians/position_angle_rad, 1.0, 10)
76 self.assertAlmostEqual(gso.sindex/sindex, 1.0, 10)
77 self.assertAlmostEqual(gso.pixel_scale/pixel_scale, 1.0, 10)
78 self.assertAlmostEqual(gso.rotation_angle/rotation_angle_rad, 1.0, 10)
79 g1 = gamma1/(1.0-kappa)
80 self.assertAlmostEqual(gso.g1/g1, 1.0, 10)
81 g2 = gamma2/(1.0-kappa)
82 self.assertAlmostEqual(gso.g2/g2, 1.0, 10)
83 mu = 1.0/((1.0-kappa)**2-(gamma1**2+gamma2**2))
84 self.assertAlmostEqual(gso.mu/mu, 1.0, 10)
85 self.assertEqual(gso.fits_image_file, 'bob')
86 self.assertEqual(gso.sed, spec2)
87 for bp_name in bp_dict:
88 ff = spec2.calcADU(bp_dict[bp_name], phot_params)
89 ff *= phot_params.gain
90 self.assertTrue(np.isfinite(ff))
91 self.assertAlmostEqual(gso.flux(bp_name)/ff, 1.0, 10)
94class MemoryTestClass(lsst.utils.tests.MemoryTestCase):
95 pass
97if __name__ == "__main__": 97 ↛ 98line 97 didn't jump to line 98, because the condition on line 97 was never true
98 lsst.utils.tests.init()
99 unittest.main()