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 unittest 

2import os 

3import sqlite3 

4import lsst.utils.tests 

5from lsst.utils import getPackageDir 

6from lsst.sims.catUtils.utils import ObservationMetaDataGenerator 

7 

8 

9def setup_module(module): 

10 lsst.utils.tests.init() 

11 

12 

13class ObsGenV4TestCase(unittest.TestCase): 

14 

15 def test_spatial_query(self): 

16 """ 

17 Test that spatial queries work 

18 """ 

19 db_dir = os.path.join(getPackageDir('sims_data'), 'OpSimData') 

20 assert os.path.isdir(db_dir) 

21 db_file = os.path.join(db_dir, 'astro-lsst-01_2014.db') 

22 obs_gen = ObservationMetaDataGenerator(db_file) 

23 obs_list = obs_gen.getObservationMetaData(fieldRA=(20.0, 40.0), 

24 fieldDec=(-30.0, -10.0)) 

25 self.assertGreater(len(obs_list), 10) 

26 with sqlite3.connect(db_file) as conn: 

27 cursor = conn.cursor() 

28 query = '''SELECT observationId, fieldRA, fieldDec, 

29 observationStartMJD, filter 

30 FROM SummaryAllProps WHERE 

31 fieldRA BETWEEN 20.0 AND 40.0 AND 

32 fieldDec BETWEEN -30.0 AND -10.0 

33 ORDER BY observationId''' 

34 control = cursor.execute(query).fetchall() 

35 self.assertEqual(len(control), len(obs_list)) 

36 for ii in range(len(obs_list)): 

37 self.assertEqual(obs_list[ii].OpsimMetaData['observationId'], 

38 int(control[ii][0])) 

39 

40 self.assertAlmostEqual(obs_list[ii].pointingRA, 

41 float(control[ii][1]), 10) 

42 self.assertAlmostEqual(obs_list[ii].pointingDec, 

43 float(control[ii][2]), 10) 

44 self.assertAlmostEqual(obs_list[ii].mjd.TAI, 

45 float(control[ii][3]), 7) 

46 self.assertEqual(obs_list[ii].bandpass, 

47 str(control[ii][4])) 

48 

49 self.assertGreaterEqual(obs_list[ii].pointingRA, 20.0) 

50 self.assertLessEqual(obs_list[ii].pointingRA, 40.0) 

51 self.assertGreaterEqual(obs_list[ii].pointingDec, -30.0) 

52 self.assertLessEqual(obs_list[ii].pointingDec, -10.0) 

53 

54 

55class MemoryTestClass(lsst.utils.tests.MemoryTestCase): 

56 pass 

57 

58 

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

60 lsst.utils.tests.init() 

61 unittest.main()