36 lines
1.3 KiB
Python
36 lines
1.3 KiB
Python
import numpy
|
|
import pathfinder.model.oscillating as model
|
|
|
|
|
|
def test_dotdipolemodel_repr():
|
|
mod = model.DotOscillatingDipoleModel((), 1)
|
|
assert repr(mod) == "DotOscillatingDipoleModel([], 1)"
|
|
|
|
|
|
def test_dotdipolemodel_m():
|
|
mod = model.DotOscillatingDipoleModel([model.DotMeasurement(1, (-1, -1, -1), 11), model.DotMeasurement(2, (0, 0, 0), 3)], 1)
|
|
assert mod.m == 2
|
|
|
|
|
|
def test_dotdipolemodel_cost():
|
|
mod = model.DotOscillatingDipoleModel([model.DotMeasurement(.05, (-1, -1, -1), 11), model.DotMeasurement(.002, (0, 0, 0), 3)], 1)
|
|
costs = mod.costs()
|
|
jac = mod.jac()
|
|
|
|
pt_to_test = numpy.array((1, 2, 3, 4, 5, 6, 7))
|
|
expected_cost = [-0.04998578036712978, -0.00191383161468913]
|
|
expected_jacobian = [
|
|
[
|
|
3.742008650059147e-6, 4.4904103800709765e-6, 5.238812110082806e-6,
|
|
-3.12967996186765e-6, -3.1568945702317167e-6, -3.184109178595783e-6,
|
|
8.603475350051953e-7
|
|
], [
|
|
0.000021542096327717702, 0.000026927620409647127, 0.000032313144491576555,
|
|
-0.000021472154456523818, -0.0000228010500092077, -0.000024129945561891588,
|
|
-8.489496089740964e-6
|
|
]
|
|
]
|
|
|
|
numpy.testing.assert_allclose(costs(pt_to_test), expected_cost, err_msg="Costs aren't as expected.")
|
|
numpy.testing.assert_allclose(jac(pt_to_test), expected_jacobian, err_msg="Jacobian aren't as expected.")
|