mirror of
https://github.com/ANL-CEEESA/MIPLearn.git
synced 2025-12-06 09:28:51 -06:00
Components: Switch from factory methods to prototype objects
This commit is contained in:
@@ -22,6 +22,7 @@ def test_lazy_fit():
|
||||
instances[0].found_violated_lazy_constraints = ["a", "b"]
|
||||
instances[1].found_violated_lazy_constraints = ["b", "c"]
|
||||
classifier = Mock(spec=Classifier)
|
||||
classifier.clone = lambda: Mock(spec=Classifier)
|
||||
component = DynamicLazyConstraintsComponent(classifier=classifier)
|
||||
|
||||
component.fit(instances)
|
||||
|
||||
@@ -38,11 +38,13 @@ def test_x_y_predict() -> None:
|
||||
# Construct mock regressors
|
||||
lb_regressor = Mock(spec=Regressor)
|
||||
lb_regressor.predict = Mock(return_value=np.array([[5.0], [6.0]]))
|
||||
lb_regressor.clone = lambda: lb_regressor
|
||||
ub_regressor = Mock(spec=Regressor)
|
||||
ub_regressor.predict = Mock(return_value=np.array([[3.0], [3.0]]))
|
||||
ub_regressor.clone = lambda: ub_regressor
|
||||
comp = ObjectiveValueComponent(
|
||||
lb_regressor=lambda: lb_regressor,
|
||||
ub_regressor=lambda: ub_regressor,
|
||||
lb_regressor=lb_regressor,
|
||||
ub_regressor=ub_regressor,
|
||||
)
|
||||
|
||||
# Should build x correctly
|
||||
@@ -77,9 +79,10 @@ def test_obj_evaluate():
|
||||
instances, models = get_test_pyomo_instances()
|
||||
reg = Mock(spec=Regressor)
|
||||
reg.predict = Mock(return_value=np.array([[1000.0], [1000.0]]))
|
||||
reg.clone = lambda: reg
|
||||
comp = ObjectiveValueComponent(
|
||||
lb_regressor=lambda: reg,
|
||||
ub_regressor=lambda: reg,
|
||||
lb_regressor=reg,
|
||||
ub_regressor=reg,
|
||||
)
|
||||
comp.fit(instances)
|
||||
ev = comp.evaluate(instances)
|
||||
|
||||
@@ -189,10 +189,11 @@ def test_predict() -> None:
|
||||
|
||||
|
||||
def test_fit_xy():
|
||||
comp = PrimalSolutionComponent(
|
||||
classifier=lambda: Mock(spec=Classifier),
|
||||
threshold=lambda: Mock(spec=Threshold),
|
||||
)
|
||||
clf = Mock(spec=Classifier)
|
||||
clf.clone = lambda: Mock(spec=Classifier)
|
||||
thr = Mock(spec=Threshold)
|
||||
thr.clone = lambda: Mock(spec=Threshold)
|
||||
comp = PrimalSolutionComponent(classifier=clf, threshold=thr)
|
||||
x = {
|
||||
"type-a": np.array([[1.0, 2.0, 3.0], [4.0, 5.0, 6.0]]),
|
||||
"type-b": np.array([[7.0, 8.0, 9.0]]),
|
||||
|
||||
Reference in New Issue
Block a user