Skip to content

Commit

Permalink
Adding a bit more coverage (#199)
Browse files Browse the repository at this point in the history
* adding a bit more coverage

* no cover syntax
  • Loading branch information
dfm committed May 23, 2021
1 parent 464ce22 commit 1c78502
Show file tree
Hide file tree
Showing 4 changed files with 46 additions and 9 deletions.
19 changes: 12 additions & 7 deletions src/exoplanet/distributions/transforms.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,6 @@
# -*- coding: utf-8 -*-

__all__ = [
"quad_limb_dark",
"radius_impact",
"impact_parameter",
]
__all__ = ["quad_limb_dark", "radius_impact", "impact_parameter"]

import aesara_theano_fallback.tensor as tt
import numpy as np
Expand All @@ -26,7 +22,6 @@ def backward(self, y):
sqrtq1 = tt.sqrt(q[0])
twoq2 = 2 * q[1]
u = tt.stack([sqrtq1 * twoq2, sqrtq1 * (1 - twoq2)])

return u

def forward(self, x):
Expand All @@ -46,9 +41,13 @@ def jacobian_det(self, y):
quad_limb_dark = QuadLimbDarkTransform()


class RadiusImpactTransform(tr.Transform):
class RadiusImpactTransform(tr.Transform): # pragma: no cover
"""A reparameterization of the radius-impact parameter plane
.. note:: This transform introduces a non-uniform prior on the radius ratio
and its use is not recommended. Use the `ImpactParameter`
distribution instead.
This is an implementation of `Espinoza (2018)
<http://iopscience.iop.org/article/10.3847/2515-5172/aaef38/meta>`_
Expand Down Expand Up @@ -138,6 +137,12 @@ def jacobian_det(self, y):


class ImpactParameterTransform(tr.LogOdds):
"""A transform for a parameter specifying an impact parameter
Given a radius ratio parameter ``ror``, this will transform the impact
parameter into the range ``[0, 1+ror)`` while maintaining a uniform prior
on ``ror`` and, when ``b < 1 - ror``, a uniform prior on ``b``.
"""

name = "impact"

Expand Down
4 changes: 3 additions & 1 deletion src/exoplanet/orbits/dur_to_ecc.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,9 @@
from .keplerian import KeplerianOrbit, _get_consistent_inputs


def duration_to_eccentricity(func, duration, ror, **kwargs):
def duration_to_eccentricity(
func, duration, ror, **kwargs
): # pragma: no cover
num_planets = kwargs.pop("num_planets", 1)
orbit_type = kwargs.pop("orbit_type", KeplerianOrbit)
name = kwargs.get("name", "dur_ecc")
Expand Down
2 changes: 1 addition & 1 deletion src/exoplanet/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ def deprecation_warning(msg):
warnings.warn(msg, category=DeprecationWarning, stacklevel=2)


def deprecated(alternate=None):
def deprecated(alternate=None): # pragma: no cover
def wrapper(func, alternate=alternate):
msg = "'{0}' is deprecated.".format(func.__name__)
if alternate is not None:
Expand Down
30 changes: 30 additions & 0 deletions tests/distributions_test.py
Original file line number Diff line number Diff line change
@@ -1,12 +1,17 @@
# -*- coding: utf-8 -*-

import logging
from collections import namedtuple

import aesara_theano_fallback.tensor as tt
import numpy as np
import pymc3 as pm
import pytest
from pymc3.tests.test_distributions import R, Unit, Vector
from pymc3.tests.test_transforms import check_transform, get_values
from scipy.stats import beta, halfnorm, kstest, rayleigh

from exoplanet.distributions import transforms as tr
from exoplanet.distributions.eccentricity import kipping13, vaneylen19
from exoplanet.distributions.physical import ImpactParameter, QuadLimbDark

Expand Down Expand Up @@ -222,3 +227,28 @@ def test_impact(self):
assert s < 0.05

assert np.all(trace["b"] <= 1 + trace["ror"])


def test_quad_limb_dark_transform():
values = get_values(
tr.quad_limb_dark,
Vector(R, 2),
constructor=tt.vector,
test=np.array([0.0, 0.0]),
)
domain = namedtuple("Domain", ["vals"])(values)
check_transform(
tr.quad_limb_dark,
domain,
constructor=tt.vector,
test=np.array([0.0, 0.0]),
)


def test_impact_parameter_transform():
ror = np.float64(0.03)
check_transform(
tr.impact_parameter(ror),
Unit * (1 + ror),
test=0.5,
)

0 comments on commit 1c78502

Please sign in to comment.