https://github.com/lmfit/lmfit-py
Raw File
Tip revision: 2720249ffd37a7cd94e3b25d442db336fc0bac4e authored by Matt Newville on 07 July 2016, 16:46:18 UTC
Merge pull request #343 from lmfit/prep0.9.4
Tip revision: 2720249
_test_make_paras_and_func.py
# -*- coding: utf-8 -*-

import lmfit


def test_wrap_function():
    get_names = lambda p: [p_key for p_key in p ]

    def func(A, b, c, d=5, e=10):
        return A + b + c + d

    x0 = [1, 2, 3]
    para, f = lmfit.make_paras_and_func(func, x0)
    assert(get_names(para) == ['A', 'b', 'c'])
    y1 = f(para)
    y2 = func(*x0)
    assert(y1==y2)

    x0 = [1, 2, 3, 4]
    para, f = lmfit.make_paras_and_func(func, x0)
    assert(get_names(para) == ['A', 'b', 'c', 'd'])
    y1 = f(para)
    y2 = func(*x0)
    assert(y1==y2)

    x0 = [1, 2, 3]
    para, f = lmfit.make_paras_and_func(func, x0, {'e': 3})
    assert(get_names(para) == ['A', 'b', 'c', 'e'])
    y1 = f(para)
    y2 = func(*x0)
    assert(y1==y2)
back to top