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

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

import numpy as np 

import unittest 

import lsst.utils.tests 

from lsst.sims.cloudModel import CloudModel, CloudModelConfig 

 

 

class TestCloudModel(unittest.TestCase): 

def setUp(self): 

# Set config to known values. 

config = CloudModelConfig() 

config.efd_columns = ['cloud'] 

config.efd_delta_time = 30 

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

self.config = config 

 

def test_configure(self): 

# Configure with defaults. 

cloudModel = CloudModel() 

conf = CloudModelConfig() 

self.assertEqual(cloudModel._config, conf) 

# Test specifying the config. 

cloudModel = CloudModel(self.config) 

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

# Test specifying an incorrect config. 

self.assertRaises(ValueError, CloudModel, 0.8) 

 

def test_status(self): 

cloudModel = CloudModel() 

confDict = cloudModel.config_info() 

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

'target_columns'] 

for k in expected_keys: 

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

 

def test_efd_requirements(self): 

cloudModel = CloudModel(self.config) 

cols, deltaT = cloudModel.efd_requirements 

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

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

 

def test_targetmap_requirements(self): 

cloudModel = CloudModel(self.config) 

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

 

def test_call(self): 

cloudModel = CloudModel(self.config) 

in_cloud = 1.53 

efdData = {'cloud': in_cloud} 

alt = np.zeros(50, float) 

az = np.zeros(50, float) 

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

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

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

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

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

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

 

 

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

pass 

 

def setup_module(module): 

lsst.utils.tests.init() 

 

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

lsst.utils.tests.init() 

unittest.main()