Coverage for tests/test_geomTestUtils.py: 20%

47 statements  

« prev     ^ index     » next       coverage.py v6.5.0, created at 2023-02-22 03:22 -0800

1import unittest 

2 

3import lsst.utils.tests 

4import lsst.geom 

5from lsst.afw.geom.testUtils import BoxGrid 

6 

7 

8class BoxGridTestCase(lsst.utils.tests.TestCase): 

9 """!Unit tests for BoxGrid""" 

10 

11 def test3By4(self): 

12 """!Test a 3x4 box divided into a 3x2 grid, such that each sub-box is 1x2 

13 """ 

14 for boxClass in (lsst.geom.Box2I, lsst.geom.Box2D): 

15 pointClass = type(boxClass().getMin()) 

16 extentClass = type(boxClass().getDimensions()) 

17 

18 minPt = pointClass(-1, 3) 

19 extent = extentClass(3, 4) 

20 numColRow = (3, 2) 

21 outerBox = boxClass(minPt, extent) 

22 boxGrid = BoxGrid(box=outerBox, numColRow=numColRow) 

23 for box in boxGrid: 

24 self.assertEqual(box.getDimensions(), extentClass(1, 2)) 

25 for row in range(numColRow[1]): 

26 for col in range(numColRow[0]): 

27 box = boxGrid[col, row] 

28 predMin = outerBox.getMin() + extentClass(col*1, row*2) 

29 self.assertEqual(box.getMin(), predMin) 

30 

31 def testIntUneven(self): 

32 """!Test dividing an integer box into an uneven grid 

33 

34 Divide a 5x4 box into 2x3 regions 

35 """ 

36 minPt = lsst.geom.Point2I(0, 0) 

37 extent = lsst.geom.Extent2I(5, 7) 

38 numColRow = (2, 3) 

39 outerBox = lsst.geom.Box2I(minPt, extent) 

40 boxGrid = BoxGrid(box=outerBox, numColRow=numColRow) 

41 desColStarts = (0, 2) 

42 desWidths = (2, 3) 

43 desRowStarts = (0, 2, 4) 

44 desHeights = (2, 2, 3) 

45 for row in range(numColRow[1]): 

46 desRowStart = desRowStarts[row] 

47 desHeight = desHeights[row] 

48 for col in range(numColRow[0]): 

49 desColStart = desColStarts[col] 

50 desWidth = desWidths[col] 

51 box = boxGrid[col, row] 

52 self.assertEqual(tuple(box.getMin()), 

53 (desColStart, desRowStart)) 

54 self.assertEqual(tuple(box.getDimensions()), 

55 (desWidth, desHeight)) 

56 

57 

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

59 pass 

60 

61 

62def setup_module(module): 

63 lsst.utils.tests.init() 

64 

65 

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

67 lsst.utils.tests.init() 

68 unittest.main()