Hide keyboard shortcuts

Hot-keys 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

1import numpy as np 

2import unittest 

3import lsst.utils.tests 

4from lsst.sims.cloudModel import CloudModel, CloudModelConfig 

5 

6 

7class TestCloudModel(unittest.TestCase): 

8 def setUp(self): 

9 # Set config to known values. 

10 config = CloudModelConfig() 

11 config.efd_columns = ['cloud'] 

12 config.efd_delta_time = 30 

13 config.target_columns = ['altitude', 'azimuth'] 

14 self.config = config 

15 

16 def test_configure(self): 

17 # Configure with defaults. 

18 cloudModel = CloudModel() 

19 conf = CloudModelConfig() 

20 self.assertEqual(cloudModel._config, conf) 

21 # Test specifying the config. 

22 cloudModel = CloudModel(self.config) 

23 self.assertEqual(cloudModel._config.efd_delta_time, self.config.efd_delta_time) 

24 # Test specifying an incorrect config. 

25 self.assertRaises(RuntimeError, CloudModel, 0.8) 

26 

27 def test_status(self): 

28 cloudModel = CloudModel() 

29 confDict = cloudModel.config_info() 

30 expected_keys = ['CloudModel_version', 'CloudModel_sha', 'efd_columns', 'efd_delta_time', 

31 'target_columns'] 

32 for k in expected_keys: 

33 self.assertTrue(k in confDict.keys()) 

34 

35 def test_efd_requirements(self): 

36 cloudModel = CloudModel(self.config) 

37 cols, deltaT = cloudModel.efd_requirements 

38 self.assertEqual(self.config.efd_columns, cols) 

39 self.assertEqual(self.config.efd_delta_time, deltaT) 

40 

41 def test_targetmap_requirements(self): 

42 cloudModel = CloudModel(self.config) 

43 self.assertEqual(cloudModel.target_requirements, self.config.target_columns) 

44 

45 def test_call(self): 

46 cloudModel = CloudModel(self.config) 

47 in_cloud = 1.53 

48 efdData = {'cloud': in_cloud} 

49 alt = np.zeros(50, float) 

50 az = np.zeros(50, float) 

51 targetDict = {'altitude': alt, 'azimuth': az} 

52 out_cloud = cloudModel(efdData, targetDict)['cloud'] 

53 # Test that we propagated cloud value over the whole sky. 

54 self.assertEqual(in_cloud, out_cloud.max()) 

55 self.assertEqual(in_cloud, out_cloud.min()) 

56 self.assertEqual(len(out_cloud), len(alt)) 

57 

58 

59class TestMemory(lsst.utils.tests.MemoryTestCase): 

60 pass 

61 

62def setup_module(module): 

63 lsst.utils.tests.init() 

64 

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

66 lsst.utils.tests.init() 

67 unittest.main()