OMS-NetZero / FAIR

Finite-amplitude Impulse Response simple climate model
https://docs.fairmodel.net
Apache License 2.0
123 stars 62 forks source link

Improve test coverage #24

Closed rgieseke closed 6 years ago

rgieseke commented 6 years ago

Hi,

this adds a few more tests to improve test coverage.

Before (master):

 pytest --cov=fair
=============================================================================================== test session starts ===============================================================================================
platform linux -- Python 3.6.3, pytest-3.3.2, py-1.5.2, pluggy-0.6.0
rootdir: /home/robert/sources/FAIR, inifile:
plugins: cov-2.5.1
collected 17 items                                                                                                                                                                                                

tests/test_fair.py .................                                                                                                                                                                        [100%]

----------- coverage: platform linux, python 3.6.3-final-0 -----------
Name                                 Stmts   Miss  Cover
--------------------------------------------------------
fair/RCPs/__init__.py                    0      0   100%
fair/RCPs/rcp3pd.py                     71      0   100%
fair/RCPs/rcp45.py                      71      0   100%
fair/RCPs/rcp6.py                       71      0   100%
fair/RCPs/rcp85.py                      71      0   100%
fair/__init__.py                         4      0   100%
fair/_version.py                       277    159    43%
fair/ancil/__init__.py                   0      0   100%
fair/ancil/cmip5_annex2_forcing.py      18     18     0%
fair/ancil/cmip6_solar.py                7      0   100%
fair/ancil/cmip6_volcanic.py             7      0   100%
fair/ancil/natural.py                    9      0   100%
fair/constants/__init__.py               0      0   100%
fair/constants/br_atoms.py              17      0   100%
fair/constants/cl_atoms.py              17      0   100%
fair/constants/fracrel.py               17      0   100%
fair/constants/general.py                1      0   100%
fair/constants/lifetime.py              32      0   100%
fair/constants/molwt.py                 42      0   100%
fair/constants/radeff.py                32      0   100%
fair/forcing/__init__.py                 0      0   100%
fair/forcing/aerosols.py                50     11    78%
fair/forcing/bc_snow.py                  4      0   100%
fair/forcing/contrails.py                9      0   100%
fair/forcing/ghg.py                     21      6    71%
fair/forcing/h2o_st.py                   5      0   100%
fair/forcing/landuse.py                  4      0   100%
fair/forcing/ozone_st.py                11      0   100%
fair/forcing/ozone_tr.py                40      1    98%
fair/forward.py                        174     33    81%
fair/tools/__init__.py                   0      0   100%
fair/tools/constrain.py                 19     19     0%
fair/tools/magicc.py                    61     20    67%
--------------------------------------------------------
TOTAL                                 1162    267    77%

After:

pytest --cov=fair
=============================================================================================== test session starts ===============================================================================================
platform linux -- Python 3.6.3, pytest-3.3.2, py-1.5.2, pluggy-0.6.0
rootdir: /home/robert/sources/FAIR, inifile:
plugins: cov-2.5.1
collected 18 items                                                                                                                                                                                                

tests/test_fair.py ..................                                                                                                                                                                       [100%]

----------- coverage: platform linux, python 3.6.3-final-0 -----------
Name                                 Stmts   Miss  Cover
--------------------------------------------------------
fair/RCPs/__init__.py                    0      0   100%
fair/RCPs/rcp3pd.py                     71      0   100%
fair/RCPs/rcp45.py                      71      0   100%
fair/RCPs/rcp6.py                       71      0   100%
fair/RCPs/rcp85.py                      71      0   100%
fair/__init__.py                         4      0   100%
fair/ancil/__init__.py                   0      0   100%
fair/ancil/cmip5_annex2_forcing.py      18     18     0%
fair/ancil/cmip6_solar.py                7      0   100%
fair/ancil/cmip6_volcanic.py             7      0   100%
fair/ancil/natural.py                    9      0   100%
fair/constants/__init__.py               0      0   100%
fair/constants/br_atoms.py              17      0   100%
fair/constants/cl_atoms.py              17      0   100%
fair/constants/fracrel.py               17      0   100%
fair/constants/general.py                1      0   100%
fair/constants/lifetime.py              32      0   100%
fair/constants/molwt.py                 42      0   100%
fair/constants/radeff.py                32      0   100%
fair/forcing/__init__.py                 0      0   100%
fair/forcing/aerosols.py                50     11    78%
fair/forcing/bc_snow.py                  4      0   100%
fair/forcing/contrails.py                9      0   100%
fair/forcing/ghg.py                     21      0   100%
fair/forcing/h2o_st.py                   5      0   100%
fair/forcing/landuse.py                  4      0   100%
fair/forcing/ozone_st.py                11      0   100%
fair/forcing/ozone_tr.py                40      1    98%
fair/forward.py                        174     33    81%
fair/tools/__init__.py                   0      0   100%
fair/tools/constrain.py                 19     19     0%
fair/tools/magicc.py                    61      0   100%
--------------------------------------------------------
TOTAL                                  885     82    91%

(Edited with correct data)

rgieseke commented 6 years ago

To clarify, this also fixes two minor bugs (I believe)

https://github.com/OMS-NetZero/FAIR/pull/24/commits/e8e770228b81d9bc53c35930ef90a31858041ec1

https://github.com/OMS-NetZero/FAIR/pull/24/commits/cdcd073fee1c139d76927ba71ef9dffe0db6e9f6

chrisroadmap commented 6 years ago

Awesome, thanks Robert. All looks good!