Skip to content

Commit

Permalink
Added testing fxn for get_cum_fmd
Browse files Browse the repository at this point in the history
  • Loading branch information
adzubay committed Jul 14, 2023
1 parent 615f2c8 commit f2f4cb5
Show file tree
Hide file tree
Showing 2 changed files with 36 additions and 4 deletions.
6 changes: 3 additions & 3 deletions catalog_tools/plots/basics.py
Original file line number Diff line number Diff line change
Expand Up @@ -111,9 +111,9 @@ def get_cum_fmd(
mags_i = bin_to_precision(mags / delta_m - np.min(mags / delta_m), 1)
mags_i = mags_i.astype(int)
counts = np.bincount(mags_i)
bins = bin_to_precision(np.arange((np.min(mags)) * 1000,
(np.max(mags) + delta_m / 2) * 1000,
delta_m * 1000) / 1000, delta_m)
bins = bin_to_precision(np.arange((np.min(mags)) * 10000,
(np.max(mags) + delta_m / 2) * 10000,
delta_m * 10000) / 10000, delta_m)

bins = bins[::-1]
c_counts = np.cumsum(counts[::-1])
Expand Down
34 changes: 33 additions & 1 deletion catalog_tools/plots/tests/test_basics.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
import pytest
import numpy as np
from numpy.testing import assert_allclose

from catalog_tools.plots.basics import dot_size
from catalog_tools.plots.basics import dot_size, get_cum_fmd


def test_dot_size():
Expand Down Expand Up @@ -37,3 +38,34 @@ def test_dot_size():

# Check that the computed sizes are close to the expected ones
assert_allclose(sizes, expected_sizes, rtol=tolerance, atol=tolerance)


@pytest.mark.parametrize(
"magnitudes, delta_m, bins, c_counts, left",
[(np.array([0.20990507, 0.04077336, 0.27906596, 0.57406287, 0.64256544,
0.07293118, 0.58589873, 0.02678655, 0.27631233, 0.17682814]),
0.1, np.array([0.6, 0.5, 0.4, 0.3, 0.2, 0.1, 0]),
np.array([3, 3, 3, 5, 7, 8, 10]), False),
(np.array([0.02637757, 0.06353823, 0.10257919, 0.54494906, 0.03928375,
0.08825028, 0.77713586, 0.54553981, 0.69315583, 0.06656642,
0.29035447, 0.2051877, 0.30858087, 0.68896342, 0.03328782,
0.45016109, 0.40779409, 0.06788892, 0.02684032, 0.56140282,
0.29443359, 0.36328762, 0.17124489, 0.02154936, 0.36461541,
0.03613088, 0.15798366, 0.09111875, 0.16169287, 0.11986668,
0.10232035, 0.72695761, 0.19484174, 0.0459675, 0.40514163,
0.08979514, 0.0442659, 0.18672424, 0.21239088, 0.02287468,
0.1244267, 0.04939361, 0.11232758, 0.02706083, 0.04275401,
0.02732529, 0.83884229, 0.4147758, 0.07416183, 0.05636252]),
0.2, np.array([0.7, 0.5, 0.3, 0.1, -0.1]), np.array([3, 8,
15, 29, 50]), True)]
)
def test_get_cum_fmd(magnitudes: np.ndarray, delta_m: float,
bins: np.ndarray, c_counts: np.ndarray, left: bool):
errors = []
nbins, nc_counts, nmags = get_cum_fmd(magnitudes, delta_m, left=left)
if not np.allclose(bins, nbins, atol=1e-10):
errors.append("Incorrect bin values.")
if not np.allclose(c_counts, nc_counts, atol=1e-10):
errors.append("Incorrect cumulative counts.")

assert not errors, "errors occurred:\n{}".format("\n".join(errors))

0 comments on commit f2f4cb5

Please sign in to comment.