"""
test_utils.py - Unit tests for utils.py

Copyright(C) 2024 by
Trey V. Wenger; tvwenger@gmail.com

GNU General Public License v3 (GNU GPLv3)

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published
by the Free Software Foundation, either version 3 of the License,
or (at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program.  If not, see <http://www.gnu.org/licenses/>.
"""

import pytest

from bayes_spec.utils import gaussian


@pytest.mark.parametrize(
    "x, amp, center, fwhm, expectation",
    [
        (0.0, 1.0, 0.0, 1.0, 1.0),
        (0.5, 1.0, 0.0, 1.0, 0.5),
        (0.0, 2.0, 1.0, 2.0, 1.0),
    ],
)
def test_gaussian(x, amp, center, fwhm, expectation):
    assert gaussian(x, amp, center, fwhm).eval() == pytest.approx(expectation)
