Hide keyboard shortcuts

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

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

# 

# LSST Data Management System 

# 

# Copyright 2008-2017 AURA/LSST. 

# 

# This product includes software developed by the 

# LSST Project (http://www.lsst.org/). 

# 

# This program is free software: you can redistribute it and/or modify 

# it under the terms of the GNU General Public License as published by 

# the Free Software Foundation, either version 3 of the License, or 

# (at your option) any later version. 

# 

# This program is distributed in the hope that it will be useful, 

# but WITHOUT ANY WARRANTY; without even the implied warranty of 

# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 

# GNU General Public License for more details. 

# 

# You should have received a copy of the LSST License Statement and 

# the GNU General Public License along with this program. If not, 

# see <https://www.lsstcorp.org/LegalNotices/>. 

# 

import unittest 

 

import lsst.utils.tests 

import lsst.meas.base.tests 

from lsst.meas.base.tests import AlgorithmTestCase 

from lsst.meas.extensions.simpleShape import SimpleShapeResultKey 

 

 

class SimpleShapeMFTestCase(AlgorithmTestCase, lsst.utils.tests.TestCase): 

 

def setUp(self): 

self.bbox = lsst.afw.geom.Box2I(lsst.afw.geom.Point2I(-20, -30), 

lsst.afw.geom.Extent2I(240, 160)) 

self.dataset = lsst.meas.base.tests.TestDataset(self.bbox) 

self.dataset.addSource(100000.0, lsst.afw.geom.Point2D(149.9, 50.3), 

lsst.afw.geom.ellipses.Quadrupole(8, 9, 3)) 

 

self.expectedKeySet = set(['ext_simpleShape_SimpleShape_IxSigma', 

'ext_simpleShape_SimpleShape_Ix_Iy_Cov', 

'ext_simpleShape_SimpleShape_IxxSigma', 

'ext_simpleShape_SimpleShape_Ixx_Ix_Cov', 

'ext_simpleShape_SimpleShape_Ixx_Ixy_Cov', 

'ext_simpleShape_SimpleShape_Ixx_Iy_Cov', 

'ext_simpleShape_SimpleShape_Ixx_Iyy_Cov', 

'ext_simpleShape_SimpleShape_IxySigma', 

'ext_simpleShape_SimpleShape_Ixy_Ix_Cov', 

'ext_simpleShape_SimpleShape_Ixy_Iy_Cov', 

'ext_simpleShape_SimpleShape_IySigma', 

'ext_simpleShape_SimpleShape_IyySigma', 

'ext_simpleShape_SimpleShape_Iyy_Ix_Cov', 

'ext_simpleShape_SimpleShape_Iyy_Ixy_Cov', 

'ext_simpleShape_SimpleShape_Iyy_Iy_Cov', 

'ext_simpleShape_SimpleShape_flag', 

'ext_simpleShape_SimpleShape_x', 

'ext_simpleShape_SimpleShape_xx', 

'ext_simpleShape_SimpleShape_xy', 

'ext_simpleShape_SimpleShape_y', 

'ext_simpleShape_SimpleShape_yy']) 

 

def tearDown(self): 

del self.bbox 

del self.dataset 

 

def testKeys(self): 

""" 

Test that Simple shape will run as a plugin, a functor key can be 

created, and result object can be created. Testing of the algorithm 

is left to testSimpleShape.py 

""" 

 

task = self.makeSingleFrameMeasurementTask("ext_simpleShape_SimpleShape") 

exposure, catalog = self.dataset.realize(10.0, task.schema, randomSeed=0) 

# Check the keys are in the schema 

foundKeySet = set(catalog.schema.getNames()) & self.expectedKeySet 

missingKeySet = self.expectedKeySet - foundKeySet 

self.assertEqual(missingKeySet, set()) 

 

# check that SimpleShapeResultKey can be created and that it returns a results object 

key = SimpleShapeResultKey(catalog.schema["ext_simpleShape_SimpleShape"]) 

task.run(catalog, exposure) 

 

result = catalog[0].get(key) 

for attr in ("center", "ellipse", "covariance", "getFlag"): 

self.assertTrue(hasattr(result, attr), "Result Object missing {}".format(attr)) 

 

 

class TestMemory(lsst.utils.tests.MemoryTestCase): 

pass 

 

 

def setup_module(module): 

lsst.utils.tests.init() 

 

 

97 ↛ 98line 97 didn't jump to line 98, because the condition on line 97 was never trueif __name__ == "__main__": 

lsst.utils.tests.init() 

unittest.main()