Coverage for tests/test_ringsSkyMapCells.py: 18%
73 statements
« prev ^ index » next coverage.py v6.4.1, created at 2022-06-09 02:58 -0700
« prev ^ index » next coverage.py v6.4.1, created at 2022-06-09 02:58 -0700
1import unittest
3import lsst.utils.tests
4import lsst.geom
6from lsst.skymap.ringsSkyMap import RingsSkyMap
7from helper import skyMapTestCase
10class RingsCellsTestCase(skyMapTestCase.SkyMapTestCase):
11 def setUp(self):
12 config = RingsSkyMap.ConfigClass()
13 config.numRings = 3
14 config.tractBuilder = "cells"
16 self.setAttributes(
17 SkyMapClass=RingsSkyMap,
18 name="rings",
19 config=config,
20 numTracts=26,
21 neighborAngularSeparation=None, # no uniform tract separation
22 numNeighbors=None, # ignored because neighborAngularSeparation=None
23 )
25 def testCellInfo(self):
26 """Test retrieving cell info."""
27 skymap = self.getSkyMap()
29 tractInfo = skymap[13]
31 cellConfig = self.config.tractBuilder['cells']
33 numCellsPerPatch = cellConfig.numCellsPerPatchInner + 2
34 patchInnerSize = (cellConfig.numCellsPerPatchInner*cellConfig.cellInnerDimensions[0],
35 cellConfig.numCellsPerPatchInner*cellConfig.cellInnerDimensions[1])
36 patchOuterSize = (numCellsPerPatch*cellConfig.cellInnerDimensions[0]
37 + 2*cellConfig.cellBorder,
38 numCellsPerPatch*cellConfig.cellInnerDimensions[1]
39 + 2*cellConfig.cellBorder)
41 for patchInfo in tractInfo:
42 # Check that all the patchInfos have the correct size.
43 self.assertEqual(len(patchInfo), numCellsPerPatch**2)
44 innerBBox = patchInfo.getInnerBBox()
45 outerBBox = patchInfo.getOuterBBox()
46 self.assertEqual(innerBBox.getDimensions()[0], patchInnerSize[0])
47 self.assertEqual(innerBBox.getDimensions()[1], patchInnerSize[1])
48 self.assertEqual(outerBBox.getDimensions()[0], patchOuterSize[0])
49 self.assertEqual(outerBBox.getDimensions()[1], patchOuterSize[1])
51 # Look at a patch in first corner, middle, and last corner.
52 numPatches = tractInfo.getNumPatches()
53 names = ['ll', 'center', 'ur']
54 patchInfos = [tractInfo[0],
55 tractInfo[(numPatches[0]//2, numPatches[1]//2)],
56 tractInfo[(numPatches[0] - 1, numPatches[1] - 1)]]
57 for name, patchInfo in zip(names, patchInfos):
58 # Check that the corner of the edge patches are what we expect.
59 # (the dimensions of the patches were checked above)
60 index = patchInfo.getIndex()
61 innerCorner = (index[0]*patchInnerSize[0], index[1]*patchInnerSize[1])
63 self.assertEqual(patchInfo.getInnerBBox().getBeginX(), innerCorner[0])
64 self.assertEqual(patchInfo.getInnerBBox().getBeginY(), innerCorner[1])
66 self.assertEqual(patchInfo.getOuterBBox().getBeginX(),
67 innerCorner[0] - cellConfig.cellInnerDimensions[0]
68 - cellConfig.cellBorder)
69 self.assertEqual(patchInfo.getOuterBBox().getBeginY(),
70 innerCorner[1] - cellConfig.cellInnerDimensions[1]
71 - cellConfig.cellBorder)
73 # And confirm that the lower left corner of the lower left patch
74 # goes negative.
75 if name == 'll':
76 self.assertLess(patchInfo.getOuterBBox().getBeginX(), 0)
77 self.assertLess(patchInfo.getOuterBBox().getBeginY(), 0)
79 patchInnerBBox = patchInfo.getInnerBBox()
81 # Check that all the cells are where we expect.
82 for cellInfo in patchInfo:
83 index = cellInfo.getIndex()
85 innerBBox = cellInfo.getInnerBBox()
86 outerBBox = cellInfo.getOuterBBox()
88 innerMin = ((index[0] - 1)*cellConfig.cellInnerDimensions[0] + patchInnerBBox.getBeginX(),
89 (index[1] - 1)*cellConfig.cellInnerDimensions[1] + patchInnerBBox.getBeginY())
90 outerMin = (innerMin[0] - cellConfig.cellBorder,
91 innerMin[1] - cellConfig.cellBorder)
92 self.assertEqual(innerBBox.getBeginX(), innerMin[0])
93 self.assertEqual(innerBBox.getBeginY(), innerMin[1])
94 self.assertEqual(innerBBox.getWidth(), cellConfig.cellInnerDimensions[0])
95 self.assertEqual(innerBBox.getHeight(), cellConfig.cellInnerDimensions[1])
96 self.assertEqual(outerBBox.getBeginX(), outerMin[0])
97 self.assertEqual(outerBBox.getBeginY(), outerMin[1])
98 self.assertEqual(outerBBox.getWidth(),
99 cellConfig.cellInnerDimensions[0] + 2*cellConfig.cellBorder)
100 self.assertEqual(outerBBox.getHeight(),
101 cellConfig.cellInnerDimensions[1] + 2*cellConfig.cellBorder)
102 if index[0] == 0:
103 self.assertLess(innerBBox.getBeginX(), patchInnerBBox.getBeginX())
104 self.assertEqual(innerBBox.getEndX(), patchInnerBBox.getBeginX())
105 if index[1] == 0:
106 self.assertLess(innerBBox.getBeginY(), patchInnerBBox.getBeginY())
107 self.assertEqual(innerBBox.getEndY(), patchInnerBBox.getBeginY())
108 if index[0] == patchInfo.getNumCells()[0] - 1:
109 self.assertEqual(innerBBox.getBeginX(),
110 patchInfo.getInnerBBox().getEndX())
111 self.assertGreater(innerBBox.getEndX(),
112 patchInfo.getInnerBBox().getEndX())
113 if index[1] == patchInfo.getNumCells()[1] - 1:
114 self.assertEqual(innerBBox.getBeginY(),
115 patchInfo.getInnerBBox().getEndY())
116 self.assertGreater(innerBBox.getEndY(),
117 patchInfo.getInnerBBox().getEndY())
120class MemoryTester(lsst.utils.tests.MemoryTestCase):
121 pass
124def setup_module(module):
125 lsst.utils.tests.init()
128if __name__ == "__main__": 128 ↛ 129line 128 didn't jump to line 129, because the condition on line 128 was never true
129 lsst.utils.tests.init()
130 unittest.main()