File tree Expand file tree Collapse file tree 4 files changed +18
-9
lines changed Expand file tree Collapse file tree 4 files changed +18
-9
lines changed Original file line number Diff line number Diff line change @@ -26,13 +26,13 @@ class Fitter:
26
26
def __init__ (self , fit_object , fit_function : Callable ):
27
27
self ._fit_object = fit_object
28
28
self ._fit_function = fit_function
29
- self ._dependent_dims = None
30
- self ._tolerance = None
31
- self ._max_evaluations = None
29
+ self ._dependent_dims : int = None
30
+ self ._tolerance : float = None
31
+ self ._max_evaluations : int = None
32
32
33
- self ._enum_current_minimizer = DEFAULT_MINIMIZER
34
- self ._minimizer : MinimizerBase # _minimizer is set in the create method
35
- self ._update_minimizer (self . _enum_current_minimizer )
33
+ self ._minimizer : MinimizerBase = None # set in _update_minimizer
34
+ self ._enum_current_minimizer : AvailableMinimizers = None # set in _update_minimizer
35
+ self ._update_minimizer (DEFAULT_MINIMIZER )
36
36
37
37
def fit_constraints (self ) -> list :
38
38
return self ._minimizer .fit_constraints ()
Original file line number Diff line number Diff line change @@ -40,7 +40,7 @@ def __init__(
40
40
self ,
41
41
obj , #: BaseObj,
42
42
fit_function : Callable ,
43
- minimizer_enum : Optional [ AvailableMinimizers ] = None ,
43
+ minimizer_enum : AvailableMinimizers ,
44
44
): # todo after constraint changes, add type hint: obj: BaseObj # noqa: E501
45
45
if minimizer_enum .method not in self .supported_methods ():
46
46
raise FitError (f'Method { minimizer_enum .method } not available in { self .__class__ } ' )
@@ -58,6 +58,10 @@ def __init__(
58
58
def all_constraints (self ) -> List [ObjConstraint ]:
59
59
return [* self ._constraints , * self ._object ._constraints ]
60
60
61
+ @property
62
+ def enum (self ) -> AvailableMinimizers :
63
+ return self ._minimizer_enum
64
+
61
65
@property
62
66
def name (self ) -> str :
63
67
return self ._minimizer_enum .name
Original file line number Diff line number Diff line change @@ -17,10 +17,11 @@ def minimizer(self):
17
17
MinimizerBase .__abstractmethods__ = set ()
18
18
MinimizerBase .supported_methods = MagicMock (return_value = ['method' ])
19
19
20
+ self ._mock_minimizer_enum = MagicMock (package = 'package' , method = 'method' )
20
21
minimizer = MinimizerBase (
21
22
obj = 'obj' ,
22
23
fit_function = 'fit_function' ,
23
- minimizer_enum = MagicMock ( package = 'package' , method = 'method' )
24
+ minimizer_enum = self . _mock_minimizer_enum
24
25
)
25
26
return minimizer
26
27
@@ -47,6 +48,9 @@ def test_init(self, minimizer: MinimizerBase):
47
48
assert minimizer ._fit_function == None
48
49
assert minimizer ._constraints == []
49
50
51
+ def test_enum (self , minimizer : MinimizerBase ):
52
+ assert minimizer .enum == self ._mock_minimizer_enum
53
+
50
54
def test_evaluate (self , minimizer : MinimizerBase ):
51
55
# When
52
56
minimizer ._fit_function = MagicMock (return_value = 'fit_function_return' )
Original file line number Diff line number Diff line change @@ -20,7 +20,8 @@ def test_constructor(self, fitter: Fitter):
20
20
assert fitter ._fit_object == self .mock_fit_object
21
21
assert fitter ._fit_function == self .mock_fit_function
22
22
assert fitter ._dependent_dims is None
23
- assert fitter ._enum_current_minimizer == AvailableMinimizers .LMFit_leastsq
23
+ assert fitter ._enum_current_minimizer is None #== AvailableMinimizers.LMFit_leastsq
24
+ assert fitter ._minimizer is None
24
25
fitter ._update_minimizer .assert_called_once_with (AvailableMinimizers .LMFit_leastsq )
25
26
26
27
def test_fit_constraints (self , fitter : Fitter ):
You can’t perform that action at this time.
0 commit comments