Coverage for tests/test_scaledPlus.py: 36%

Shortcuts 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

49 statements  

1# 

2# LSST Data Management System 

3# Copyright 2008, 2009, 2010 LSST Corporation. 

4# 

5# This product includes software developed by the 

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

7# 

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

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

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

11# (at your option) any later version. 

12# 

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

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

15# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 

16# GNU General Public License for more details. 

17# 

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

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

20# see <http://www.lsstcorp.org/LegalNotices/>. 

21# 

22 

23import unittest 

24 

25import lsst.utils.tests 

26import lsst.geom 

27import lsst.afw.image as afwImage 

28import lsst.afw.math as afwMath 

29from lsst.log import Log 

30 

31Log.getLogger("lsst.afw.image.Mask").setLevel(Log.INFO) 

32 

33 

34class ScaledPlus(lsst.utils.tests.TestCase): 

35 

36 def setUp(self): 

37 self.random = afwMath.Random() 

38 self.imWidth = 200 

39 self.imHeight = 200 

40 self.maskedImage0 = afwImage.MaskedImageF( 

41 lsst.geom.Extent2I(self.imWidth, self.imHeight)) 

42 afwMath.randomUniformImage(self.maskedImage0.getImage(), self.random) 

43 afwMath.randomUniformImage( 

44 self.maskedImage0.getVariance(), self.random) 

45# afwMath.randomUniformImage(self.maskedImage0.getMask(), self.random) 

46 self.maskedImage1 = afwImage.MaskedImageF( 

47 lsst.geom.Extent2I(self.imWidth, self.imHeight)) 

48 afwMath.randomUniformImage(self.maskedImage1.getImage(), self.random) 

49 afwMath.randomUniformImage( 

50 self.maskedImage1.getVariance(), self.random) 

51# afwMath.randomUniformImage(self.maskedImage1.getMask(), self.random) 

52 

53 def tearDown(self): 

54 self.random = None 

55 self.maskedImage0 = None 

56 self.maskedImage1 = None 

57 

58 def runScaledAddTest(self, coeff0, coeff1): 

59 """Run one test of scaledPlus 

60 

61 Inputs: 

62 - coeff0: coefficient of image 0 

63 - coeff1: coefficient of image 1 

64 """ 

65 desMaskedImage = afwImage.MaskedImageF( 

66 self.maskedImage0.getDimensions()) 

67 desMaskedImage[:] = self.maskedImage0 

68 desMaskedImage *= coeff0 

69 desMaskedImage.scaledPlus(coeff1, self.maskedImage1) 

70 

71 actMaskedImage = afwImage.MaskedImageF( 

72 lsst.geom.Extent2I(self.imWidth, self.imHeight)) 

73 afwMath.randomUniformImage(actMaskedImage.getImage(), self.random) 

74 afwMath.randomUniformImage(actMaskedImage.getVariance(), self.random) 

75 

76 afwMath.scaledPlus(actMaskedImage, coeff0, 

77 self.maskedImage0, coeff1, self.maskedImage1) 

78 

79 actImage = afwImage.ImageF( 

80 lsst.geom.Extent2I(self.imWidth, self.imHeight)) 

81 afwMath.randomUniformImage(actImage, self.random) 

82 afwMath.scaledPlus(actImage, coeff0, self.maskedImage0.getImage(), 

83 coeff1, self.maskedImage1.getImage()) 

84 

85 msg = f"scaledPlus failed for images; coeff0={coeff0}, coeff1={coeff1}" 

86 self.assertImagesAlmostEqual( 

87 actImage, desMaskedImage.getImage(), msg=msg) 

88 msg = f"scaledPlus failed for masked images; coeff0={coeff0}, coeff1={coeff1}" 

89 self.assertMaskedImagesAlmostEqual( 

90 actMaskedImage, desMaskedImage, msg=msg) 

91 

92 def testScaledPlus(self): 

93 for coeff0 in (0.0, -0.1e-5, 0.1e-5, 1.0e3): 

94 for coeff1 in (0.0, 0.1e-5, -0.1e-5, 1.0e3): 

95 self.runScaledAddTest(coeff0, coeff1) 

96 

97 

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

99 pass 

100 

101 

102def setup_module(module): 

103 lsst.utils.tests.init() 

104 

105 

106if __name__ == "__main__": 106 ↛ 107line 106 didn't jump to line 107, because the condition on line 106 was never true

107 lsst.utils.tests.init() 

108 unittest.main()