Coverage for tests/test_skyFrame.py: 17%

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

121 statements  

1import math 

2import unittest 

3 

4from numpy.testing import assert_allclose 

5 

6import astshim as ast 

7from astshim.test import MappingTestCase 

8 

9 

10class TestSkyFrame(MappingTestCase): 

11 

12 def test_FrameBasics(self): 

13 frame = ast.SkyFrame() 

14 self.assertEqual(frame.className, "SkyFrame") 

15 self.assertEqual(frame.nIn, 2) 

16 self.assertEqual(frame.nAxes, 2) 

17 self.assertEqual(frame.maxAxes, 2) 

18 self.assertEqual(frame.minAxes, 2) 

19 

20 # default values for Frame properties (methods below test 

21 # setters and getters of SkyFrame properties) 

22 self.assertEqual(frame.alignSystem, "ICRS") 

23 self.assertEqual(frame.dut1, 0.0) 

24 self.assertEqual(frame.epoch, 2000.0) 

25 self.assertEqual(frame.obsAlt, 0.0) 

26 self.assertEqual(frame.obsLat, "N0:00:00.00") 

27 self.assertEqual(frame.obsLon, "E0:00:00.00") 

28 self.assertTrue(frame.permute) 

29 self.assertFalse(frame.preserveAxes) 

30 self.assertEqual(frame.system, "ICRS") 

31 self.assertEqual(frame.title, "ICRS coordinates") 

32 

33 self.assertGreater(abs(frame.getBottom(1)), 1e99) 

34 self.assertGreater(abs(frame.getTop(1)), 1e99) 

35 self.assertGreater(frame.getTop(1), frame.getBottom(1)) 

36 self.assertFalse(frame.getDirection(1)) 

37 self.assertEqual(frame.getInternalUnit(1), "rad") 

38 self.assertEqual(frame.getNormUnit(1), "rad") 

39 self.assertEqual(frame.getSymbol(1), "RA") 

40 self.assertEqual(frame.getUnit(1), "hh:mm:ss.s") 

41 

42 self.assertAlmostEqual(frame.getBottom(2), -math.pi / 2) 

43 self.assertAlmostEqual(frame.getTop(2), math.pi / 2) 

44 self.assertTrue(frame.getDirection(2)) 

45 self.assertEqual(frame.getInternalUnit(2), "rad") 

46 self.assertEqual(frame.getNormUnit(2), "rad") 

47 self.assertEqual(frame.getSymbol(2), "Dec") 

48 self.assertEqual(frame.getUnit(2), "ddd:mm:ss") 

49 

50 self.checkCopy(frame) 

51 self.checkPersistence(frame) 

52 

53 def test_SkyFrameLonLat(self): 

54 

55 frame = ast.SkyFrame() 

56 

57 self.assertEqual(frame.lonAxis, 1) 

58 self.assertEqual(frame.latAxis, 2) 

59 self.assertTrue(frame.getIsLonAxis(1)) 

60 self.assertTrue(frame.getIsLatAxis(2)) 

61 self.assertFalse(frame.getIsLonAxis(2)) 

62 self.assertFalse(frame.getIsLatAxis(1)) 

63 

64 # permute axes 

65 frame.permAxes([2, 1]) 

66 self.assertEqual(frame.lonAxis, 2) 

67 self.assertEqual(frame.latAxis, 1) 

68 self.assertTrue(frame.getIsLonAxis(2)) 

69 self.assertTrue(frame.getIsLatAxis(1)) 

70 self.assertFalse(frame.getIsLonAxis(1)) 

71 self.assertFalse(frame.getIsLatAxis(2)) 

72 

73 # permute again to restore original state 

74 frame.permAxes([2, 1]) 

75 self.assertEqual(frame.lonAxis, 1) 

76 self.assertEqual(frame.latAxis, 2) 

77 self.assertTrue(frame.getIsLonAxis(1)) 

78 self.assertTrue(frame.getIsLatAxis(2)) 

79 self.assertFalse(frame.getIsLonAxis(2)) 

80 self.assertFalse(frame.getIsLatAxis(1)) 

81 

82 def test_SkyFrameAlignOffset(self): 

83 frame = ast.SkyFrame() 

84 

85 self.assertFalse(frame.alignOffset) 

86 frame.alignOffset = True 

87 self.assertTrue(frame.alignOffset) 

88 

89 def test_SkyFrameAsTime(self): 

90 frame = ast.SkyFrame() 

91 

92 for axis, defAsTime in ((1, True), (2, False)): 

93 self.assertEqual(frame.getAsTime(axis), defAsTime) 

94 frame.setAsTime(axis, not defAsTime) 

95 self.assertEqual(frame.getAsTime(axis), not defAsTime) 

96 

97 def test_SkyFrameEquinox(self): 

98 frame = ast.SkyFrame() 

99 

100 self.assertAlmostEqual(frame.equinox, 2000) 

101 newEquinox = 2345.6 

102 frame.equinox = newEquinox 

103 self.assertAlmostEqual(frame.equinox, newEquinox) 

104 

105 def test_SkyFrameNegLon(self): 

106 frame = ast.SkyFrame() 

107 

108 self.assertFalse(frame.negLon) 

109 frame.negLon = True 

110 self.assertTrue(frame.negLon) 

111 

112 def test_SkyFrameProjection(self): 

113 frame = ast.SkyFrame() 

114 

115 self.assertEqual(frame.projection, "") 

116 newProjection = "Arbitrary description" 

117 frame.projection = newProjection 

118 self.assertEqual(frame.projection, newProjection) 

119 

120 def test_SkyFrameSkyRef(self): 

121 frame = ast.SkyFrame() 

122 

123 assert_allclose(frame.getSkyRef(), [0, 0]) 

124 newSkyRef = [-4.5, 1.23] 

125 frame.setSkyRef(newSkyRef) 

126 assert_allclose(frame.getSkyRef(), newSkyRef) 

127 

128 def test_SkyFrameSkyRefIs(self): 

129 frame = ast.SkyFrame() 

130 

131 self.assertEqual(frame.skyRefIs, "Ignored") 

132 for newSkyRefIs in ("Origin", "Pole", "Ignored"): 

133 frame.skyRefIs = newSkyRefIs 

134 self.assertEqual(frame.skyRefIs, newSkyRefIs) 

135 

136 def test_SkyFrameSkyRefP(self): 

137 frame = ast.SkyFrame() 

138 

139 defSkyRefP = [0.0, math.pi/2] 

140 assert_allclose(frame.getSkyRefP(), defSkyRefP) 

141 newSkyRefP = [0.1234, 0.5643] 

142 frame.setSkyRefP(newSkyRefP) 

143 assert_allclose(frame.getSkyRefP(), newSkyRefP) 

144 

145 def test_SkyFrameSkyTol(self): 

146 frame = ast.SkyFrame() 

147 

148 # the default is arbitrary so do not to assume a specific value 

149 defSkyTol = frame.skyTol 

150 newSkyTol = defSkyTol*1.2345 

151 frame.skyTol = newSkyTol 

152 self.assertAlmostEqual(frame.skyTol, newSkyTol) 

153 

154 def test_SkyFrameSkyOffsetMap(self): 

155 frame = ast.SkyFrame() 

156 

157 mapping = frame.skyOffsetMap() 

158 self.assertEqual(mapping.className, "UnitMap") 

159 

160 

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

162 unittest.main()