22import os
33import itertools
44
5- from pyscipopt import Model , SCIP_STAGE , SCIP_PARAMSETTING , quicksum
5+ from pyscipopt import Model , SCIP_STAGE , SCIP_PARAMSETTING , SCIP_BRANCHDIR , quicksum
66from helpers .utils import random_mip_1
77
88def test_model ():
@@ -528,3 +528,40 @@ def test_comparisons():
528528 assert not model .isNegative (0. )
529529
530530 assert model .isHugeValue (inf )
531+
532+ def test_getVarPseudocostScore ():
533+ m = Model ()
534+
535+ m .addVar ("x" , vtype = 'B' , obj = 1.0 )
536+ m .addVar ("y" , vtype = 'B' , obj = 2.0 )
537+
538+ m .setPresolve (SCIP_PARAMSETTING .OFF )
539+ m .presolve ()
540+
541+ var = m .getVars (transformed = True )[0 ]
542+
543+ p = m .getVarPseudocostScore (var , 1 )
544+ assert m .isEQ (p , 1 )
545+
546+ p = m .getVarPseudocostScore (var , 0.5 )
547+ assert m .isEQ (p , 0.25 )
548+
549+ def test_getVarPseudocost ():
550+ m = Model ()
551+
552+ m .addVar ("x" , vtype = 'B' , obj = 1.0 )
553+ m .addVar ("y" , vtype = 'B' , obj = 2.0 )
554+
555+ m .setPresolve (SCIP_PARAMSETTING .OFF )
556+ m .presolve ()
557+
558+ var = m .getVars (transformed = True )[0 ]
559+
560+ p = m .getVarPseudocost (var , SCIP_BRANCHDIR .UPWARDS )
561+ assert m .isEQ (p , 1 )
562+
563+ m .updateVarPseudocost (var , 1 , 12 , 1 )
564+ p = m .getVarPseudocost (var , SCIP_BRANCHDIR .UPWARDS )
565+
566+ # Not exactly 12 because the new value is a weighted sum of all the updates
567+ assert m .isEQ (p , 12.0001 )
0 commit comments