Skip to content

Commit

Permalink
TST: update pysat tests
Browse files Browse the repository at this point in the history
Update the pysat tests for the new functionality.
  • Loading branch information
aburrell committed May 1, 2024
1 parent 4efd53b commit cb25b21
Showing 1 changed file with 58 additions and 37 deletions.
95 changes: 58 additions & 37 deletions ocbpy/tests/test_pysat.py
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,7 @@ def setUp(self):
self.ocb_key = 'ocb_test'
self.pysat_key = 'dummy1'
self.pysat_lat = 'latitude'
self.pysat_alt = 'altitude'
self.notes = None
self.test_inst = None
self.ocb = None
Expand All @@ -58,7 +59,7 @@ def tearDown(self):
"""Tear down the testing environment."""
del self.ocb_key, self.pysat_key, self.notes, self.del_time
del self.test_inst, self.ocb, self.added_keys, self.pysat_keys
del self.pysat_lat
del self.pysat_lat, self.pysat_alt
return

def eval_ocb_metadata(self):
Expand Down Expand Up @@ -212,15 +213,20 @@ def test_add_ocb_to_data_defaults(self):
"""Test the add_ocb_to_data function defaults."""
defaults = ocb_pysat.add_ocb_to_data.__defaults__

for i in [0, 1, 8]:
self.assertEqual(len(defaults[i]), 0)
for i in [0, 1, 2, 10]:
self.assertEqual(len(defaults[i]), 0,
msg="Default {:d} value {:} != 0".format(
i, defaults[i]))

for i in [2, 3, 4, 6, 10, 11]:
for i in [3, 4, 5, 8, 12, 13]:
self.assertIsNone(defaults[i])

self.assertEqual(defaults[5], 0)
self.assertRegex(defaults[7], 'default')
self.assertEqual(defaults[9], 60)
self.assertEqual(defaults[6], 350)
self.assertEqual(defaults[7], 0)
self.assertRegex(defaults[9], 'default')
self.assertEqual(defaults[11], 60)
self.assertRegex(defaults[14], 'magnetic')
self.assertRegex(defaults[15], 'magnetic')
return

def test_add_ocb_to_metadata_defaults(self):
Expand Down Expand Up @@ -365,7 +371,8 @@ def test_add_ocb_to_data_ocb_obj(self):

# Test adding OCBs
ocb_pysat.add_ocb_to_data(self.test_inst, self.pysat_lat, "mlt",
ocb=self.ocb, max_sdiff=self.del_time)
height_name=self.pysat_alt, ocb=self.ocb,
max_sdiff=self.del_time)

self.added_keys = [kk for kk in self.test_inst.meta.keys()
if kk.find('_ocb') > 0]
Expand All @@ -389,6 +396,7 @@ def test_add_ocb_to_data_ocb_file(self):
# Test adding OCBs using filename instead of OCB object
self.ocb_kw['ocbfile'] = self.ocb_kw['filename']
ocb_pysat.add_ocb_to_data(self.test_inst, self.pysat_lat, "mlt",
height_name=self.pysat_alt,
max_sdiff=self.del_time, **self.ocb_kw)

self.added_keys = [kk for kk in self.test_inst.meta.keys()
Expand Down Expand Up @@ -425,6 +433,7 @@ def test_add_ocb_to_data_southern_hemisphere(self):

# Add the OCB data to the Instrument and evaluate the output
ocb_pysat.add_ocb_to_data(self.test_inst, self.pysat_lat, "mlt",
height_name=self.pysat_alt,
max_sdiff=self.del_time, **self.ocb_kw)
self.test_ocb_added()
return
Expand All @@ -436,6 +445,7 @@ def test_add_ocb_to_data_evar(self):

# Add the OCB with electrically scaled variables
ocb_pysat.add_ocb_to_data(self.test_inst, self.pysat_lat, "mlt",
height_name=self.pysat_alt,
evar_names=[self.pysat_key],
ocb=self.ocb, max_sdiff=self.del_time)

Expand All @@ -455,6 +465,7 @@ def test_add_ocb_to_data_curl_evar(self):

# Add the OCB with curl-scaled variables
ocb_pysat.add_ocb_to_data(self.test_inst, self.pysat_lat, "mlt",
height_name=self.pysat_alt,
curl_evar_names=[self.pysat_var2],
ocb=self.ocb, max_sdiff=self.del_time)

Expand All @@ -474,11 +485,12 @@ def test_add_ocb_to_data_evar_vect(self):

# Add the OCB with electrically scaled vectors
ocb_pysat.add_ocb_to_data(self.test_inst, self.pysat_lat, "mlt",
height_name=self.pysat_alt,
evar_names=['vect_evar'],
vector_names={
'vect_evar':
{'aacgm_n': self.pysat_key,
'aacgm_e': self.pysat_var2,
{'vect_n': self.pysat_key,
'vect_e': self.pysat_var2,
'dat_name': 'vect',
'dat_units': 'm/s'}},
ocb=self.ocb, max_sdiff=self.del_time)
Expand All @@ -504,11 +516,12 @@ def test_add_ocb_to_data_curl_evar_vect(self):

# Add the OCB with curl-scaled vectors
ocb_pysat.add_ocb_to_data(self.test_inst, self.pysat_lat, "mlt",
height_name=self.pysat_alt,
curl_evar_names=['vect_cevar'],
vector_names={
'vect_cevar':
{'aacgm_n': self.pysat_key,
'aacgm_e': self.pysat_var2,
{'vect_n': self.pysat_key,
'vect_e': self.pysat_var2,
'dat_name': 'vect',
'dat_units': 'm/s'}},
ocb=self.ocb, max_sdiff=self.del_time)
Expand All @@ -534,10 +547,10 @@ def test_add_ocb_to_data_custom_vect(self):

# Add the OCB with a custom scaling function
ocb_pysat.add_ocb_to_data(self.test_inst, self.pysat_lat, "mlt",
vector_names={
height_name=self.pysat_alt, vector_names={
'vect_cust':
{'aacgm_n': self.pysat_key,
'aacgm_e': self.pysat_var2,
{'vect_n': self.pysat_key,
'vect_e': self.pysat_var2,
'dat_name': 'vect',
'dat_units': 'm/s',
'scale_func': None}},
Expand All @@ -563,12 +576,13 @@ def test_add_ocb_to_data_all_types(self):

# Add the OCB with multiple inputs
ocb_pysat.add_ocb_to_data(self.test_inst, self.pysat_lat, "mlt",
height_name=self.pysat_alt,
evar_names=[self.pysat_key],
curl_evar_names=[self.pysat_var2],
vector_names={
'vect_cust':
{'aacgm_n': self.pysat_key,
'aacgm_e': self.pysat_var2,
{'vect_n': self.pysat_key,
'vect_e': self.pysat_var2,
'dat_name': 'vect',
'dat_units': 'm/s',
'scale_func': None}},
Expand Down Expand Up @@ -596,7 +610,8 @@ def test_add_ocb_to_data_no_file(self):
# Add the OCB without a filename
self.ocb_kw['ocbfile'] = None
ocb_pysat.add_ocb_to_data(self.test_inst, self.pysat_lat, "mlt",
**self.ocb_kw, max_sdiff=self.del_time)
height_name=self.pysat_alt, **self.ocb_kw,
max_sdiff=self.del_time)

self.lwarn = u"no data in Boundary file"
self.eval_logging_message()
Expand All @@ -612,7 +627,7 @@ def test_add_ocb_to_data_bad_hemisphere_selfset(self):
with self.assertRaisesRegex(
ValueError, 'cannot process observations from both '):
ocb_pysat.add_ocb_to_data(self.test_inst, self.pysat_lat, "mlt",
**self.ocb_kw)
height_name=self.pysat_alt, **self.ocb_kw)
return

def test_bad_pysat_inst(self):
Expand Down Expand Up @@ -684,8 +699,8 @@ def test_add_ocb_to_data_bad_vector_scale(self):
with self.assertRaisesRegex(ValueError,
'missing scaling function for bad'):
ocb_pysat.add_ocb_to_data(self.test_inst, self.pysat_lat, "mlt",
vector_names={'bad': {'aacgm_n': 'bad_n',
'aacgm_e': 'bad_e',
vector_names={'bad': {'vect_n': 'bad_n',
'vect_e': 'bad_e',
'dat_name': 'bad',
'dat_units': ''}},
ocb=self.ocb)
Expand All @@ -699,11 +714,12 @@ def test_add_ocb_to_data_bad_vector_name(self):
with self.assertRaisesRegex(ValueError,
'unknown vector name bad_n'):
ocb_pysat.add_ocb_to_data(self.test_inst, self.pysat_lat, "mlt",
height_name=self.pysat_alt,
evar_names=['bad'],
vector_names={
'bad':
{'aacgm_n': 'bad_n',
'aacgm_e': self.pysat_key,
{'vect_n': 'bad_n',
'vect_e': self.pysat_key,
'dat_name': 'bad',
'dat_units': ''}},
ocb=self.ocb)
Expand Down Expand Up @@ -779,6 +795,7 @@ def setUp(self):

# Update the method default
self.test_module = pysat.instruments.pysat_testmodel
self.pysat_alt = ''
return

def test_mismatched_vector_data(self):
Expand All @@ -789,11 +806,12 @@ def test_mismatched_vector_data(self):
with self.assertRaisesRegex(ValueError,
'vector variables must all have the same'):
ocb_pysat.add_ocb_to_data(self.test_inst, self.pysat_lat, "mlt",
height_name=self.pysat_alt,
evar_names=['vect_evar'],
vector_names={
'vect_evar':
{'aacgm_n': self.pysat_key,
'aacgm_e': self.pysat_lat,
{'vect_n': self.pysat_key,
'vect_e': self.pysat_lat,
'dat_name': 'vect',
'dat_units': 'm/s'}},
ocb=self.ocb, max_sdiff=self.del_time)
Expand Down Expand Up @@ -824,6 +842,7 @@ def setUp(self):
self.test_module = pysat.instruments.pysat_testing
self.pysat_var2 = 'dummy2'
self.cust_kwargs = {'mlat_name': self.pysat_lat, 'mlt_name': 'mlt',
'height_name': self.pysat_alt,
'max_sdiff': self.del_time}
self.pysat_kw = {}

Expand Down Expand Up @@ -934,25 +953,25 @@ def test_cust_add_ocb_to_data_vect(self):
# Cycle through the different custom inputs
for kw, val in [(['evar_names', 'vector_names'],
[['vect_evar'],
{'vect_evar': {'aacgm_n': self.pysat_var2,
'aacgm_e': self.pysat_var2,
{'vect_evar': {'vect_n': self.pysat_var2,
'vect_e': self.pysat_var2,
'dat_name': 'vect',
'dat_units': 'm/s'}}]),
(['curl_evar_names', 'vector_names'],
[['vect_cevar'],
{'vect_cevar': {'aacgm_n': self.pysat_var2,
'aacgm_e': self.pysat_key,
{'vect_cevar': {'vect_n': self.pysat_var2,
'vect_e': self.pysat_key,
'dat_name': 'vect',
'dat_units': 'm/s'}}]),
(['vector_names'],
[{'vect_cust': {'aacgm_n': self.pysat_key,
'aacgm_e': self.pysat_var2,
[{'vect_cust': {'vect_n': self.pysat_key,
'vect_e': self.pysat_var2,
'dat_name': 'vect', 'dat_units': 'm/s',
'scale_func': None}}]),
(['evar_names', 'curl_evar_names', 'vector_names'],
[[self.pysat_var2], [self.pysat_key],
{'vect_cust': {'aacgm_n': self.pysat_key,
'aacgm_e': self.pysat_key,
{'vect_cust': {'vect_n': self.pysat_key,
'vect_e': self.pysat_key,
'dat_name': 'vect', 'dat_units': 'm/s',
'scale_func': None}}])]:
# Ensure the record index is correct
Expand Down Expand Up @@ -1022,8 +1041,8 @@ def test_cust_add_ocb_to_data_bad_inputs(self):

def test_cust_add_ocb_to_data_bad_vector_scale(self):
"""Test failure of missing scaling function in custom func."""
self.cust_kwargs['vector_names'] = {'bad': {'aacgm_n': 'bad_n',
'aacgm_e': 'bad_e',
self.cust_kwargs['vector_names'] = {'bad': {'vect_n': 'bad_n',
'vect_e': 'bad_e',
'dat_name': 'bad',
'dat_units': ''}}
self.pysat_kw['custom'] = [{'function': ocb_pysat.add_ocb_to_data,
Expand All @@ -1038,8 +1057,8 @@ def test_cust_add_ocb_to_data_bad_vector_name(self):
"""Test failure of missing scaling function in custom func."""
self.cust_kwargs['evar_names'] = ['bad']
self.cust_kwargs['vector_names'] = {'bad':
{'aacgm_n': 'bad_n',
'aacgm_e': self.pysat_key,
{'vect_n': 'bad_n',
'vect_e': self.pysat_key,
'dat_name': 'bad',
'dat_units': ''}}
self.pysat_kw['custom'] = [{'function': ocb_pysat.add_ocb_to_data,
Expand Down Expand Up @@ -1117,4 +1136,6 @@ def setUp(self):

# Update the class defaults
self.test_module = pysat.instruments.pysat_testmodel
self.pysat_alt = ''
self.cust_kwargs['height_name'] = self.pysat_alt
return

0 comments on commit cb25b21

Please sign in to comment.