Coverage for tests/test_tranMap.py: 26%

41 statements  

« prev     ^ index     » next       coverage.py v6.4.4, created at 2022-09-15 09:29 +0000

1import unittest 

2 

3import numpy as np 

4from numpy.testing import assert_allclose 

5 

6import astshim as ast 

7from astshim.test import MappingTestCase 

8 

9 

10class TestTranMap(MappingTestCase): 

11 

12 def test_TranMapNotSymmetric(self): 

13 zoomfac = 0.5 

14 unitMap = ast.UnitMap(2) 

15 zoomMap = ast.ZoomMap(2, zoomfac) 

16 tranmap = ast.TranMap(unitMap, zoomMap) 

17 # adding to a TranMap increases by 1 

18 self.assertEqual(unitMap.getRefCount(), 2) 

19 # adding to a TranMap increases by 1 

20 self.assertEqual(zoomMap.getRefCount(), 2) 

21 

22 self.assertIsInstance(tranmap, ast.TranMap) 

23 self.assertIsInstance(tranmap, ast.Mapping) 

24 self.assertEqual(tranmap.nIn, 2) 

25 self.assertEqual(tranmap.nOut, 2) 

26 

27 self.checkCopy(tranmap) 

28 

29 indata = np.array([ 

30 [1.0, 2.0, -6.0, 30.0, 1.0], 

31 [3.0, 99.0, -5.0, 21.0, 0.0], 

32 ], dtype=float) 

33 outdata = tranmap.applyForward(indata) 

34 assert_allclose(outdata, indata) 

35 outdata_roundtrip = tranmap.applyInverse(outdata) 

36 assert_allclose(indata, outdata_roundtrip * zoomfac) 

37 

38 with self.assertRaises(AssertionError): 

39 self.checkRoundTrip(tranmap, indata) 

40 self.checkMappingPersistence(tranmap, indata) 

41 

42 def test_TranMapSymmetric(self): 

43 zoomfac = 0.53 

44 tranmap = ast.TranMap(ast.ZoomMap( 

45 2, zoomfac), ast.ZoomMap(2, zoomfac)) 

46 self.assertIsInstance(tranmap, ast.TranMap) 

47 self.assertIsInstance(tranmap, ast.Mapping) 

48 self.assertEqual(tranmap.nIn, 2) 

49 self.assertEqual(tranmap.nOut, 2) 

50 

51 self.checkCopy(tranmap) 

52 

53 indata = np.array([ 

54 [1.0, 2.0, -6.0, 30.0, 1.0], 

55 [3.0, 99.0, -5.0, 21.0, 0.0], 

56 ], dtype=float) 

57 outdata = tranmap.applyForward(indata) 

58 assert_allclose(outdata, indata * zoomfac) 

59 

60 self.checkRoundTrip(tranmap, indata) 

61 self.checkMappingPersistence(tranmap, indata) 

62 

63 

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

65 unittest.main()