Coverage for tests/test_cloudData.py : 28%

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 os
2import sqlite3
3import unittest
4from astropy.time import Time, TimeDelta
5from lsst.utils import getPackageDir
6import lsst.utils.tests
7from lsst.utils.tests import getTempFilePath
9from lsst.sims.cloudModel import CloudData
11class TestCloudModel(unittest.TestCase):
13 def setUp(self):
14 self.th = Time('2020-01-01', format='isot', scale='tai')
15 self.cloud_db = os.path.join(getPackageDir('sims_cloudModel'), 'data', 'cloud.db')
16 self.num_original_values = 29201
18 def test_basic_information_after_creation(self):
19 cloudData = CloudData(self.th, cloud_db=self.cloud_db)
20 self.assertEqual(cloudData.start_time, self.th)
21 cloudData = CloudData(self.th, cloud_db=self.cloud_db, offset_year = 1)
22 self.assertEqual(cloudData.start_time, Time('2021-01-01', format='isot', scale='tai'))
24 def test_information_after_initialization(self):
25 # Test setting cloud_db explicitly.
26 cloudData = CloudData(self.th, cloud_db=self.cloud_db)
27 cloudData.read_data()
28 self.assertEqual(cloudData.cloud_values.size, self.num_original_values)
29 self.assertEqual(cloudData.cloud_dates.size, self.num_original_values)
30 # Test that find built-in module automatically.
31 cloudData = CloudData(self.th)
32 cloudData.read_data()
33 self.assertEqual(cloudData.cloud_dates.size, self.num_original_values)
35 def test_get_clouds(self):
36 cloudData = CloudData(self.th, cloud_db=self.cloud_db)
37 cloudData.read_data()
38 dt = TimeDelta(700000, format='sec')
39 self.assertEqual(cloudData(self.th + dt), 0.5)
40 dt = TimeDelta(701500, format='sec')
41 self.assertEqual(cloudData(self.th + dt), 0.5)
42 dt = TimeDelta(705000, format='sec')
43 self.assertEqual(cloudData(self.th + dt), 0.375)
44 dt = TimeDelta(6306840, format='sec')
45 self.assertEqual(cloudData(self.th + dt), 0.0)
47 def test_get_clouds_using_different_start_month(self):
48 # Just changing the starting month
49 t2 = Time('2020-05-24', format='isot', scale='tai')
50 cloud1 = CloudData(t2)
51 self.assertEqual(cloud1.start_time, self.th)
52 cloud1.read_data()
53 dt = TimeDelta(700000, format='sec')
54 self.assertEqual(cloud1(t2 + dt), 0.0)
55 dt = TimeDelta(6306840, format='sec')
56 self.assertEqual(cloud1(t2 + dt), 0.25)
58 def test_alternate_db(self):
59 with getTempFilePath('.alt_cloud.db') as tmpdb:
60 cloud_dbfile = tmpdb
61 cloud_table = []
62 cloud_table.append("cloudId INTEGER PRIMARY KEY")
63 cloud_table.append("c_date INTEGER")
64 cloud_table.append("cloud DOUBLE")
65 with sqlite3.connect(cloud_dbfile) as conn:
66 cur = conn.cursor()
67 cur.execute("DROP TABLE IF EXISTS Cloud")
68 cur.execute("CREATE TABLE Cloud({})".format(",".join(cloud_table)))
69 cur.executemany("INSERT INTO Cloud VALUES(?, ?, ?)", [(1, 9997, 0.5), (2, 10342, 0.125)])
70 cur.close()
71 cloud1 = CloudData(self.th, tmpdb)
72 cloud1.read_data()
73 self.assertEqual(cloud1.cloud_values.size, 2)
74 self.assertEqual(cloud1.cloud_values[1], 0.125)
76class TestMemory(lsst.utils.tests.MemoryTestCase):
77 pass
79def setup_module(module):
80 lsst.utils.tests.init()
82if __name__ == "__main__": 82 ↛ 83line 82 didn't jump to line 83, because the condition on line 82 was never true
83 lsst.utils.tests.init()
84 unittest.main()