diff --git a/blueprint/src/python/functions.py b/blueprint/src/python/functions.py index d369b50..d79f937 100644 --- a/blueprint/src/python/functions.py +++ b/blueprint/src/python/functions.py @@ -672,7 +672,7 @@ def __init__(self, coeffs, domain): if len(coeffs) == 0: raise ValueError("Parameter coeffs must have at least 1 element") - if len(coeffs) == 1: + if isinstance(coeffs, list) or len(coeffs) == 1: self._num_coeffs = tuple(coeffs) self._den_coeffs = tuple([1]) else: diff --git a/blueprint/src/python/tests/test_polynomial_input_regression.py b/blueprint/src/python/tests/test_polynomial_input_regression.py new file mode 100644 index 0000000..b4c42e9 --- /dev/null +++ b/blueprint/src/python/tests/test_polynomial_input_regression.py @@ -0,0 +1,20 @@ +from functions import Interval, RationalFunction2 + + +def test_multi_coefficient_polynomial_input(): + function = RationalFunction2([1, 2, 3], Interval(0, 1)) + assert function._num_coeffs == (1, 2, 3) + assert function._den_coeffs == (1,) + assert str(function) == "x^2 + 2x + 3 on [0,1)" + + +def test_rational_pair_input_unchanged(): + function = RationalFunction2(([1, 2], [3, 4]), Interval(0, 1)) + assert function._num_coeffs == (1, 2) + assert function._den_coeffs == (3, 4) + + +def test_single_coefficient_input_unchanged(): + function = RationalFunction2([2], Interval(0, 1)) + assert function._num_coeffs == (2,) + assert function._den_coeffs == (1,)