mirror of
https://github.com/wassname/scikit-image.git
synced 2026-08-07 11:28:14 +08:00
Add test cases for line model
This commit is contained in:
@@ -0,0 +1,43 @@
|
||||
import numpy as np
|
||||
from numpy.testing import assert_equal, assert_raises, assert_almost_equal
|
||||
from skimage.measure import LineModel, CircleModel, EllipseModel
|
||||
|
||||
|
||||
def test_line_model_invalid_input():
|
||||
assert_raises(ValueError, LineModel().estimate, np.empty((5, 3)))
|
||||
|
||||
|
||||
def test_line_model_predict():
|
||||
model = LineModel()
|
||||
model._params = (10, 1)
|
||||
x = np.arange(-10, 10)
|
||||
y = model.predict_y(x)
|
||||
assert_almost_equal(x, model.predict_x(y))
|
||||
|
||||
|
||||
def test_line_model_is_degenerate():
|
||||
assert_equal(LineModel().is_degenerate(np.empty((1, 2))), True)
|
||||
|
||||
|
||||
def test_line_model_estimate():
|
||||
# generate original data without noise
|
||||
model0 = LineModel()
|
||||
model0._params = (10, 1)
|
||||
x0 = np.arange(-100, 100)
|
||||
y0 = model0.predict_y(x0)
|
||||
data0 = np.column_stack([x0, y0])
|
||||
|
||||
# add gaussian noise to data
|
||||
np.random.seed(1234)
|
||||
data = data0 + np.random.normal(size=data0.shape)
|
||||
|
||||
# estimate parameters of noisy data
|
||||
model_est = LineModel()
|
||||
model_est.estimate(data)
|
||||
|
||||
# test whether estimated parameters almost equals original parameters
|
||||
assert_almost_equal(model0._params, model_est._params, 1)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
np.testing.run_module_suite()
|
||||
Reference in New Issue
Block a user