Skip to content

Commit 11ee785

Browse files
author
Alvaro Arroyo Parejo
committed
update tests
1 parent ec82fa5 commit 11ee785

File tree

1 file changed

+83
-90
lines changed

1 file changed

+83
-90
lines changed

astroquery/esa/neocc/test/test_neocc.py

Lines changed: 83 additions & 90 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,9 @@
88
* Property: European Space Agency (ESA)
99
* Developed by: Elecnor Deimos
1010
* Author: C. Álvaro Arroyo Parejo
11-
* Date: 02-11-2021
11+
* Date: 21-08-2022
1212
13-
© Copyright [European Space Agency][2021]
13+
© Copyright [European Space Agency][2022]
1414
All rights reserved
1515
"""
1616

@@ -19,12 +19,14 @@
1919
import re
2020
import pytest
2121

22+
import numpy as np
2223
import requests
2324
import pandas as pd
2425
from pandas._testing import assert_frame_equal, assert_series_equal
2526
import pandas.api.types as ptypes
2627

27-
from astroquery.utils.testing_tools import MockResponse
28+
from astropy.table import Table
29+
from astropy.time import Time
2830

2931
from astroquery.esa.neocc.__init__ import conf
3032
from astroquery.esa.neocc import lists
@@ -38,6 +40,11 @@
3840

3941
# Disable warning in pylint related to monkeypath functions
4042
# pylint: disable=W0613, W0621
43+
class MockResponse(object):
44+
45+
def __init__(self, content):
46+
self.content = content
47+
4148
class MockResponseESANEOCC(MockResponse):
4249
"""MockResponse is an object intended to have any of the attributes
4350
that a normal requests.Response object would have. However, it
@@ -164,9 +171,10 @@ def test_parse_risk(patch_get):
164171
isinstance(risk_list_special, pd.DataFrame)
165172
# Assert is not empty
166173
assert not risk_list.empty and\
167-
risk_list_special.empty
174+
not risk_list_special.empty
168175
# Check size of the list (rows, columns)
169176
assert risk_list.shape == (1216, 12)
177+
assert risk_list_special.shape == (2, 8)
170178
# Assert columns
171179
risk_columns = ['Object Name', 'Diameter in m', '*=Y',
172180
'Date/Time', 'IP max', 'PS max', 'TS',
@@ -181,14 +189,20 @@ def test_parse_risk(patch_get):
181189
'Vel in km/s', 'IP cum', 'PS cum']
182190
assert all(ptypes.is_float_dtype(risk_list[cols1])\
183191
for cols1 in float_cols)
192+
assert all(ptypes.is_float_dtype(risk_list_special[cols1])\
193+
for cols1 in float_cols[1:4])
184194
# int64
185195
int_cols = ['TS', 'First year', 'Last year']
186196
assert all(ptypes.is_int64_dtype(risk_list[cols2])\
187197
for cols2 in int_cols)
198+
assert ptypes.is_int64_dtype(risk_list_special['Diameter in m'])
188199
# Object
189200
object_cols = ['Object Name', '*=Y']
190201
assert all(ptypes.is_object_dtype(risk_list[cols3])\
191202
for cols3 in object_cols)
203+
assert all(ptypes.is_object_dtype(risk_list_special[cols3])\
204+
for cols3 in object_cols)
205+
assert ptypes.is_object_dtype(risk_list_special['TS'])
192206
# Datetime
193207
assert ptypes.is_datetime64_ns_dtype(
194208
risk_list['Date/Time'])
@@ -487,24 +501,34 @@ def test_parse_impacts(patch_get):
487501
"""Check data: impacted objects list
488502
"""
489503
impact_list = neocc.query_list("impacted_objects")
490-
# Assert is a pandas DataFrame
491-
assert isinstance(impact_list, pd.DataFrame)
504+
# Assert is a astropy.table.Table
505+
assert isinstance(impact_list, Table)
492506
# Assert dataframe is not empty, columns names and length
493-
assert not impact_list.empty
494-
# Check size of the list
495-
assert impact_list.shape == (4, 2)
496-
# Assert columns data types
497-
# Object
498-
assert ptypes.is_object_dtype(impact_list[0])
499-
# Datetime
500-
assert ptypes.is_datetime64_ns_dtype(impact_list[1])
501-
# Assert Data frame
502-
impacts_data = pd.DataFrame(data=[['2008TC3', '2008-10-07 00:00:00'],
503-
['2018LA', '2018-06-02 00:00:00'],
504-
['2014AA', '2014-01-02 00:00:00'],
505-
['2019MO', '2019-06-22 00:00:00']])
506-
impacts_data[1] = pd.to_datetime(impacts_data[1])
507-
assert_frame_equal(impacts_data, impact_list)
507+
assert len(impact_list) != 0
508+
# Check the number of rows
509+
assert len(impact_list) == 5
510+
# Check th number of columns
511+
assert len(impact_list.columns) == 6
512+
# Assert Table
513+
column_names = ['Object designator', 'Diameter in m',
514+
'Impact date/time in UTC', 'Impact Velocity in km/s',
515+
'Estimated energy in Mt', 'Measured energy in Mt']
516+
column_0 = ['2022EB5', '2019MO', '2018LA', '2014AA', '2008TC3']
517+
column_1 = ['1.9*', '5*', '2.8*', '2.3*', '3*']
518+
column_2 = Time(['2022-03-11 21:22:00.000', '2019-06-22 21:30:00.000',
519+
'2018-06-02 16:44:00.000', '2014-01-02 02:30:00.000',
520+
'2008-10-07 02:45:00.000'], format='iso', scale='utc')
521+
column_3 = [18.53, 16.34, 16.98, 11.97, 11.77]
522+
column_4 = [0.000296, 0.00382 , 0.00089 , 0.000244, 0.000677]
523+
column_5 = [0.004, 0.006, 0.00098, np.nan, 0.001]
524+
525+
assert impact_list.colnames == column_names
526+
assert (impact_list['Object designator']== column_0).all()
527+
assert (impact_list['Diameter in m'] == column_1).all()
528+
assert (impact_list['Impact date/time in UTC'] == column_2).all()
529+
assert (impact_list['Impact Velocity in km/s'] == column_3).all()
530+
assert (impact_list['Estimated energy in Mt'] == column_4).all()
531+
assert (impact_list['Measured energy in Mt'].data == column_5).all()
508532

509533

510534
def test_parse_catalogues(patch_get):
@@ -1167,29 +1191,29 @@ def test_tabs_orbit_properties(patch_get):
11671191
assert ast1.epoch, ast2.epoch == '59400.000000000 MJD'
11681192
mag1 = pd.DataFrame([[18.937, 0.150]], index=['MAG'],
11691193
columns=['', ''])
1170-
mag2 = pd.DataFrame([[28.241, 0.150]], index=['MAG'],
1194+
mag2 = pd.DataFrame([[28.211, 0.150]], index=['MAG'],
11711195
columns=['', ''])
1172-
assert_frame_equal(ast1.mag, mag1)
1173-
assert_frame_equal(ast2.mag, mag2)
1196+
assert_frame_equal(ast1.mag, mag1) and\
1197+
assert_frame_equal(ast2.mag, mag2)
11741198

11751199
lsp1 = pd.DataFrame([[1, 2, 7, 2]], index=['LSP'],
11761200
columns=['model used', 'number of model parameters',
11771201
'dimension', 'list of parameters determined'])
11781202
lsp2 = pd.DataFrame([[1, 2, 8, 1, 2]], index=['LSP'],
11791203
columns=['model used', 'number of model parameters',
11801204
'dimension', 'list of parameters determined', ''])
1181-
assert_frame_equal(ast1.lsp, lsp1)
1182-
assert_frame_equal(ast2.lsp, lsp2)
1205+
assert_frame_equal(ast1.lsp, lsp1) and\
1206+
assert_frame_equal(ast2.lsp, lsp2)
11831207

11841208
ngr1 = pd.DataFrame([[0.0, -2.90058798774592e-04]], index=['NGR'],
11851209
columns=['Area-to-mass ratio in m^2/ton',
11861210
'Yarkovsky parameter in 1E-10au/day^2'])
1187-
ngr2 = pd.DataFrame([[3.92228537753657E-01, -5.47745799289690E-02]],
1211+
ngr2 = pd.DataFrame([[2.37035178629626e-01, -1.15784215281726e-02]],
11881212
index=['NGR'],
11891213
columns=['Area-to-mass ratio in m^2/ton',
11901214
'Yarkovsky parameter in 1E-10au/day^2'])
1191-
assert_frame_equal(ast1.ngr, ngr1)
1192-
assert_frame_equal(ast2.ngr, ngr2)
1215+
assert_frame_equal(ast1.ngr, ngr1) and\
1216+
assert_frame_equal(ast2.ngr, ngr2)
11931217
# Check keplerian orbit properties
11941218
keplerian_columns = ['a', 'e', 'i', 'long. node',
11951219
'arg. peric.', 'mean anomaly']
@@ -1210,35 +1234,21 @@ def test_tabs_orbit_properties(patch_get):
12101234
assert ast1.orb_type == 'Aten'
12111235
matrix_idx = ['a', 'e', 'i', 'long. node', 'arg. peric', 'M',
12121236
'Yarkovsky parameter']
1213-
cov = pd.DataFrame([[ 7.333454e-21, -1.072918e-19, -4.176672e-18,
1214-
9.884855e-17, -1.661416e-16, 6.524001e-17, 1.597276e-16],
1215-
[-1.072918e-19, 2.019718e-18, 7.453443e-17,
1216-
-2.218919e-15, 3.445852e-15, -1.246500e-15, -1.955611e-15],
1217-
[-4.176672e-18, 7.453443e-17, 2.560049e-14,
1218-
-1.198457e-12, 1.308002e-12, -1.641254e-13, -2.361241e-13],
1219-
[ 9.884855e-17, -2.218919e-15, -1.198457e-12,
1220-
6.206716e-11, -6.634024e-11, 7.109227e-12, 1.033311e-11],
1221-
[-1.661416e-16, 3.445852e-15, 1.308002e-12,
1222-
-6.634024e-11, 7.155222e-11, -8.205136e-12, -1.199513e-11],
1223-
[ 6.524001e-17, -1.246500e-15, -1.641254e-13,
1224-
7.109227e-12, -8.205136e-12, 1.397697e-12, 2.027096e-12],
1225-
[ 1.597276e-16, -1.955611e-15, -2.361241e-13,
1226-
1.033311e-11, -1.199513e-11, 2.027096e-12, 5.549616e-12]],
1237+
cov = pd.DataFrame([[ 7.333454e-21, -1.072918e-19, -4.176672e-18, 9.884855e-17, -1.661416e-16, 6.524001e-17, 1.597276e-16],
1238+
[-1.072918e-19, 2.019718e-18, 7.453443e-17, -2.218919e-15, 3.445852e-15, -1.246500e-15, -1.955611e-15],
1239+
[-4.176672e-18, 7.453443e-17, 2.560049e-14, -1.198457e-12, 1.308002e-12, -1.641254e-13, -2.361241e-13],
1240+
[ 9.884855e-17, -2.218919e-15, -1.198457e-12, 6.206716e-11, -6.634024e-11, 7.109227e-12, 1.033311e-11],
1241+
[-1.661416e-16, 3.445852e-15, 1.308002e-12, -6.634024e-11, 7.155222e-11, -8.205136e-12, -1.199513e-11],
1242+
[ 6.524001e-17, -1.246500e-15, -1.641254e-13, 7.109227e-12, -8.205136e-12, 1.397697e-12, 2.027096e-12],
1243+
[ 1.597276e-16, -1.955611e-15, -2.361241e-13, 1.033311e-11, -1.199513e-11, 2.027096e-12, 5.549616e-12]],
12271244
index=matrix_idx, columns=matrix_idx)
1228-
cor = pd.DataFrame([[ 1.000000, -0.881591, -0.304826, 0.146516,
1229-
-0.229357, 0.644397, 0.791761],
1230-
[-0.881591, 1.000000, 0.327784, -0.198182,
1231-
0.286642, -0.741892, -0.584125],
1232-
[-0.304826, 0.327784, 1.000000, -0.950752,
1233-
0.966435, -0.867651, -0.626448],
1234-
[ 0.146516, -0.198182, -0.950752, 1.000000,
1235-
-0.995485, 0.763282, 0.556761],
1236-
[-0.229357, 0.286642, 0.966435, -0.995485,
1237-
1.000000, -0.820479, -0.601952],
1238-
[ 0.644397, -0.741892, -0.867651, 0.763282,
1239-
-0.820479, 1.000000, 0.727841],
1240-
[ 0.791761, -0.584125, -0.626448, 0.556761,
1241-
-0.601952, 0.727841, 1.000000]],
1245+
cor = pd.DataFrame([[ 1.000000, -0.881591, -0.304826, 0.146516, -0.229357, 0.644397, 0.791761],
1246+
[-0.881591, 1.000000, 0.327784, -0.198182, 0.286642, -0.741892, -0.584125],
1247+
[-0.304826, 0.327784, 1.000000, -0.950752, 0.966435, -0.867651, -0.626448],
1248+
[ 0.146516, -0.198182, -0.950752, 1.000000, -0.995485, 0.763282, 0.556761],
1249+
[-0.229357, 0.286642, 0.966435, -0.995485, 1.000000, -0.820479, -0.601952],
1250+
[ 0.644397, -0.741892, -0.867651, 0.763282, -0.820479, 1.000000, 0.727841],
1251+
[ 0.791761, -0.584125, -0.626448, 0.556761, -0.601952, 0.727841, 1.000000]],
12421252
index=matrix_idx, columns=matrix_idx)
12431253
assert_frame_equal(ast1.cov, cov)
12441254
assert_frame_equal(ast1.cor, cor)
@@ -1265,40 +1275,24 @@ def test_tabs_orbit_properties(patch_get):
12651275
assert_frame_equal(ast2.eig, eig)
12661276
assert_frame_equal(ast2.wea, wea)
12671277

1268-
cov_equ = pd.DataFrame([[9.045991e-15, -4.310036e-15, -3.623923e-15, 7.951277e-16,
1269-
2.433447e-16, -4.077556e-11, 1.856604e-09, 1.127419e-10],
1270-
[-4.310036e-15, 2.852694e-15, 1.695013e-15, -5.107617e-16,
1271-
-1.582486e-16, 2.134254e-11, -8.850409e-10, -3.395062e-11],
1272-
[-3.623923e-15, 1.695013e-15, 2.002430e-15, -3.168327e-16,
1273-
-9.416270e-17, 1.919931e-11, -1.458006e-09, -5.214811e-11],
1274-
[ 7.951277e-16, -5.107617e-16, -3.168327e-16, 1.218404e-16,
1275-
4.220573e-17, -3.756840e-12, 1.121701e-10, 5.572020e-12],
1276-
[ 2.433447e-16, -1.582486e-16, -9.416270e-17, 4.220573e-17,
1277-
1.540961e-17, -1.111871e-12, 2.171817e-11, 1.460839e-12],
1278-
[-4.077556e-11, 2.134254e-11, 1.919931e-11, -3.756840e-12,
1279-
-1.111871e-12, 2.057036e-07, -1.270112e-05, -5.031737e-07],
1280-
[ 1.856604e-09, -8.850409e-10, -1.458006e-09, 1.121701e-10,
1281-
2.171817e-11, -1.270112e-05, 1.474738e-03, 3.420817e-05],
1282-
[ 1.127419e-10, -3.395062e-11, -5.214811e-11, 5.572020e-12,
1283-
1.460839e-12, -5.031737e-07, 3.420817e-05, 2.020746e-06]],
1278+
cov_equ = pd.DataFrame([[9.045991e-15, -4.310036e-15, -3.623923e-15, 7.951277e-16, 2.433447e-16, -4.077556e-11, 1.856604e-09, 1.127419e-10],
1279+
[-4.310036e-15, 2.852694e-15, 1.695013e-15, -5.107617e-16, -1.582486e-16, 2.134254e-11, -8.850409e-10, -3.395062e-11],
1280+
[-3.623923e-15, 1.695013e-15, 2.002430e-15, -3.168327e-16, -9.416270e-17, 1.919931e-11, -1.458006e-09, -5.214811e-11],
1281+
[ 7.951277e-16, -5.107617e-16, -3.168327e-16, 1.218404e-16, 4.220573e-17, -3.756840e-12, 1.121701e-10, 5.572020e-12],
1282+
[ 2.433447e-16, -1.582486e-16, -9.416270e-17, 4.220573e-17, 1.540961e-17, -1.111871e-12, 2.171817e-11, 1.460839e-12],
1283+
[-4.077556e-11, 2.134254e-11, 1.919931e-11, -3.756840e-12, -1.111871e-12, 2.057036e-07, -1.270112e-05, -5.031737e-07],
1284+
[ 1.856604e-09, -8.850409e-10, -1.458006e-09, 1.121701e-10, 2.171817e-11, -1.270112e-05, 1.474738e-03, 3.420817e-05],
1285+
[ 1.127419e-10, -3.395062e-11, -5.214811e-11, 5.572020e-12, 1.460839e-12, -5.031737e-07, 3.420817e-05, 2.020746e-06]],
12841286
index=eig_wea_name, columns=eig_wea_name)
12851287
assert_frame_equal(ast2.cov, cov_equ)
1286-
nor = pd.DataFrame([[1.510392e+24, 3.010614e+22, -2.847190e+22, -3.923755e+22,
1287-
7.119194e+22, 3.165996e+20, 1.559455e+18, -3.200500e+19],
1288-
[ 3.010614e+22, 6.121981e+20, -5.623474e+20, -7.986576e+20,
1289-
1.446145e+21, 6.307818e+18, 3.107870e+16, -6.382017e+17],
1290-
[-2.847190e+22, -5.623474e+20, 5.389508e+20, 7.325948e+20,
1291-
-1.330387e+21, -5.969337e+18, -2.939908e+16, 6.032061e+17],
1292-
[-3.923755e+22, -7.986576e+20, 7.325948e+20, 1.042952e+21,
1293-
-1.888458e+21, -8.220830e+18, -4.050471e+16, 8.317909e+17],
1294-
[ 7.119194e+22, 1.446145e+21, -1.330387e+21, -1.888458e+21,
1295-
3.420540e+21, 1.491642e+19, 7.349240e+16, -1.509124e+18],
1296-
[ 3.165996e+20, 6.307818e+18, -5.969337e+18, -8.220830e+18,
1297-
1.491642e+19, 6.636445e+16, 3.268853e+14, -6.708642e+15],
1298-
[ 1.559455e+18, 3.107870e+16, -2.939908e+16, -4.050471e+16,
1299-
7.349240e+16, 3.268853e+14, 1.610115e+12, -3.304453e+13],
1300-
[-3.200500e+19, -6.382017e+17, 6.032061e+17, 8.317909e+17,
1301-
-1.509124e+18, -6.708642e+15, -3.304453e+13, 6.781869e+14]],
1288+
nor = pd.DataFrame([[1.510392e+24, 3.010614e+22, -2.847190e+22, -3.923755e+22, 7.119194e+22, 3.165996e+20, 1.559455e+18, -3.200500e+19],
1289+
[ 3.010614e+22, 6.121981e+20, -5.623474e+20, -7.986576e+20, 1.446145e+21, 6.307818e+18, 3.107870e+16, -6.382017e+17],
1290+
[-2.847190e+22, -5.623474e+20, 5.389508e+20, 7.325948e+20, -1.330387e+21, -5.969337e+18, -2.939908e+16, 6.032061e+17],
1291+
[-3.923755e+22, -7.986576e+20, 7.325948e+20, 1.042952e+21, -1.888458e+21, -8.220830e+18, -4.050471e+16, 8.317909e+17],
1292+
[ 7.119194e+22, 1.446145e+21, -1.330387e+21, -1.888458e+21, 3.420540e+21, 1.491642e+19, 7.349240e+16, -1.509124e+18],
1293+
[ 3.165996e+20, 6.307818e+18, -5.969337e+18, -8.220830e+18, 1.491642e+19, 6.636445e+16, 3.268853e+14, -6.708642e+15],
1294+
[ 1.559455e+18, 3.107870e+16, -2.939908e+16, -4.050471e+16, 7.349240e+16, 3.268853e+14, 1.610115e+12, -3.304453e+13],
1295+
[-3.200500e+19, -6.382017e+17, 6.032061e+17, 8.317909e+17, -1.509124e+18, -6.708642e+15, -3.304453e+13, 6.781869e+14]],
13021296
index=eig_wea_name, columns=eig_wea_name)
13031297
assert_frame_equal(ast2.nor, nor)
13041298

@@ -1320,7 +1314,6 @@ def test_tabs_ephemerides(patch_get):
13201314
'2020/09/02 00:00 UTC', '5 hours',
13211315
(5, 26)]
13221316
}
1323-
13241317
# Assert blank file
13251318
with pytest.raises(KeyError):
13261319
neocc.query_object(name='foo', tab='ephemerides',

0 commit comments

Comments
 (0)