Coverage for tests/test_cameraSys.py: 16%

64 statements  

« prev     ^ index     » next       coverage.py v6.5.0, created at 2023-01-06 01:56 -0800

1# 

2# LSST Data Management System 

3# Copyright 2014 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""" 

23Tests for lsst.afw.cameraGeom.CameraSys and CameraSysPrefix 

24""" 

25import unittest 

26 

27import lsst.utils.tests 

28import lsst.afw.cameraGeom as cameraGeom 

29 

30 

31class CameraSysTestCase(unittest.TestCase): 

32 

33 def testBasics(self): 

34 """Test CameraSys and CameraSysPrefix 

35 """ 

36 for sysName in ("fieldAngle", "pixels"): 

37 for detectorName in ("", "det1", "det2"): 

38 cameraSys = cameraGeom.CameraSys(sysName, detectorName) 

39 self.assertEqual(cameraSys.getSysName(), sysName) 

40 self.assertEqual(cameraSys.getDetectorName(), detectorName) 

41 self.assertEqual(cameraSys.hasDetectorName(), 

42 bool(detectorName)) 

43 

44 noDetSys = cameraGeom.CameraSys(sysName) 

45 self.assertEqual(noDetSys.getSysName(), sysName) 

46 self.assertEqual(noDetSys.getDetectorName(), "") 

47 self.assertFalse(noDetSys.hasDetectorName()) 

48 

49 camSysPrefix = cameraGeom.CameraSysPrefix(sysName) 

50 self.assertEqual(camSysPrefix.getSysName(), sysName) 

51 

52 cameraSys2 = cameraGeom.CameraSys(camSysPrefix, detectorName) 

53 self.assertEqual(cameraSys2.getSysName(), sysName) 

54 self.assertEqual(cameraSys2.getDetectorName(), detectorName) 

55 self.assertEqual(cameraSys2, cameraSys) 

56 

57 if detectorName: 

58 self.assertNotEqual(cameraSys, noDetSys) 

59 else: 

60 self.assertEqual(cameraSys, noDetSys) 

61 

62 # The following tests are checking the functionality of the 

63 # == and != operators and should not be replaced with 

64 # assertEqual or assertNotEqual 

65 self.assertTrue(cameraSys != camSysPrefix) 

66 self.assertTrue(noDetSys != camSysPrefix) 

67 self.assertFalse(cameraSys == camSysPrefix) 

68 self.assertFalse(noDetSys == camSysPrefix) 

69 

70 for sysName2 in ("fieldAngle", "pixels"): 

71 for detectorName2 in ("", "det1", "det2"): 

72 cameraSys2 = cameraGeom.CameraSys(sysName2, detectorName2) 

73 if sysName == sysName2 and detectorName == detectorName2: 

74 self.assertEqual(cameraSys, cameraSys2) 

75 # test __eq__ and __ne__ 

76 self.assertTrue(cameraSys == cameraSys2) 

77 self.assertFalse(cameraSys != cameraSys2) 

78 else: 

79 self.assertNotEqual(cameraSys, cameraSys2) 

80 # test __eq__ and __ne__ 

81 self.assertTrue(cameraSys != cameraSys2) 

82 self.assertFalse(cameraSys == cameraSys2) 

83 

84 camSysPrefix2 = cameraGeom.CameraSysPrefix(sysName2) 

85 if sysName2 == sysName: 

86 self.assertEqual(camSysPrefix2, camSysPrefix) 

87 else: 

88 self.assertNotEqual(camSysPrefix2, camSysPrefix) 

89 

90 def testRepr(self): 

91 """Test __repr__ 

92 """ 

93 cs1 = cameraGeom.CameraSys("pixels", "det1") 

94 self.assertEqual(repr(cs1), "CameraSys(pixels, det1)") 

95 

96 cs2 = cameraGeom.CameraSys("pixels") 

97 self.assertEqual(repr(cs2), "CameraSys(pixels)") 

98 

99 dsp = cameraGeom.CameraSysPrefix("pixels") 

100 self.assertEqual(repr(dsp), "CameraSysPrefix(pixels)") 

101 

102 def testHashing(self): 

103 """Test that hashing gives equal CameraSys equal hashes""" 

104 # Not sure CameraSys has diverse enough values for testing 

105 # hash uniformity to be worthwhile 

106 cs1 = cameraGeom.CameraSys("pixels", "det1") 

107 cs1Copy = cameraGeom.CameraSys("pixels", "det1") 

108 cs2 = cameraGeom.CameraSys("pixels", "det2") 

109 cs2Copy = cameraGeom.CameraSys("pixels", "det2") 

110 csSet = set((cs1, cs1Copy, cs2, cs2Copy)) 

111 self.assertEqual(len(csSet), 2) 

112 

113 

114class MemoryTester(lsst.utils.tests.MemoryTestCase): 

115 pass 

116 

117 

118def setup_module(module): 

119 lsst.utils.tests.init() 

120 

121 

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

123 lsst.utils.tests.init() 

124 unittest.main()