diff --git a/CHANGELOG.md b/CHANGELOG.md index ca9b38e1e..1da6546e1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,12 +2,14 @@ ## Unreleased ### Added +- Expanded locale test - Added methods for creating expression constraints without adding to problem - Added methods for creating/adding/appending disjunction constraints - Added check for pt_PT locale in test_model.py - Added SCIPgetOrigConss and SCIPgetNOrigConss Cython bindings. - Added transformed=False option to getConss, getNConss, and getNVars ### Fixed +- Fixed locale errors in reading ### Changed ### Removed @@ -18,6 +20,7 @@ - Add SCIP function SCIPgetTreesizeEstimation and wrapper getTreesizeEstimation - New test for model setLogFile ### Fixed +- Fixed locale fix - Fixed model.setLogFile(None) error - Add recipes sub-package - Fixed "weakly-referenced object no longer exists" when calling dropEvent in test_customizedbenders diff --git a/src/pyscipopt/scip.pxi b/src/pyscipopt/scip.pxi index f078428cc..8db6570d7 100644 --- a/src/pyscipopt/scip.pxi +++ b/src/pyscipopt/scip.pxi @@ -1129,12 +1129,12 @@ cdef class Model: def printVersion(self): """Print version, copyright information and compile mode""" - user_locale = locale.getlocale() - locale.setlocale(locale.LC_ALL, "C") + user_locale = locale.getlocale(category=locale.LC_NUMERIC) + locale.setlocale(locale.LC_NUMERIC, "C") SCIPprintVersion(self._scip, NULL) - locale.setlocale(locale.LC_ALL, user_locale) + locale.setlocale(locale.LC_NUMERIC,user_locale) def getProbName(self): """Retrieve problem name""" @@ -1463,8 +1463,8 @@ cdef class Model: :param genericnames: indicates whether the problem should be written with generic variable and constraint names (Default value = False) """ - user_locale = locale.getlocale() - locale.setlocale(locale.LC_ALL, "C") + user_locale = locale.getlocale(category=locale.LC_NUMERIC) + locale.setlocale(locale.LC_NUMERIC, "C") str_absfile = abspath(filename) absfile = str_conversion(str_absfile) @@ -1479,7 +1479,7 @@ cdef class Model: PY_SCIP_CALL(SCIPwriteOrigProblem(self._scip, fn, ext, genericnames)) print('wrote problem to file ' + str_absfile) - locale.setlocale(locale.LC_ALL, user_locale) + locale.setlocale(locale.LC_NUMERIC,user_locale) # Variable Functions @@ -4495,13 +4495,13 @@ cdef class Model: """writes current LP to a file :param filename: file name (Default value = "LP.lp") """ - user_locale = locale.getlocale() - locale.setlocale(locale.LC_ALL, "C") + user_locale = locale.getlocale(category=locale.LC_NUMERIC) + locale.setlocale(locale.LC_NUMERIC, "C") absfile = str_conversion(abspath(filename)) PY_SCIP_CALL( SCIPwriteLP(self._scip, absfile) ) - locale.setlocale(locale.LC_ALL, user_locale) + locale.setlocale(locale.LC_NUMERIC,user_locale) def createSol(self, Heur heur = None): """Create a new primal solution. @@ -4540,12 +4540,12 @@ cdef class Model: def printBestSol(self, write_zeros=False): """Prints the best feasible primal solution.""" - user_locale = locale.getlocale() - locale.setlocale(locale.LC_ALL, "C") + user_locale = locale.getlocale(category=locale.LC_NUMERIC) + locale.setlocale(locale.LC_NUMERIC, "C") PY_SCIP_CALL(SCIPprintBestSol(self._scip, NULL, write_zeros)) - locale.setlocale(locale.LC_ALL, user_locale) + locale.setlocale(locale.LC_NUMERIC,user_locale) def printSol(self, Solution solution=None, write_zeros=False): """Print the given primal solution. @@ -4555,15 +4555,15 @@ cdef class Model: write_zeros -- include variables that are set to zero """ - user_locale = locale.getlocale() - locale.setlocale(locale.LC_ALL, "C") + user_locale = locale.getlocale(category=locale.LC_NUMERIC) + locale.setlocale(locale.LC_NUMERIC, "C") if solution is None: PY_SCIP_CALL(SCIPprintSol(self._scip, NULL, NULL, write_zeros)) else: PY_SCIP_CALL(SCIPprintSol(self._scip, solution.sol, NULL, write_zeros)) - locale.setlocale(locale.LC_ALL, user_locale) + locale.setlocale(locale.LC_NUMERIC,user_locale) def writeBestSol(self, filename="origprob.sol", write_zeros=False): """Write the best feasible primal solution to a file. @@ -4573,8 +4573,8 @@ cdef class Model: write_zeros -- include variables that are set to zero """ - user_locale = locale.getlocale() - locale.setlocale(locale.LC_ALL, "C") + user_locale = locale.getlocale(category=locale.LC_NUMERIC) + locale.setlocale(locale.LC_NUMERIC, "C") # use this doubled opening pattern to ensure that IOErrors are # triggered early and in Python not in C,Cython or SCIP. @@ -4582,7 +4582,7 @@ cdef class Model: cfile = fdopen(f.fileno(), "w") PY_SCIP_CALL(SCIPprintBestSol(self._scip, cfile, write_zeros)) - locale.setlocale(locale.LC_ALL, user_locale) + locale.setlocale(locale.LC_NUMERIC,user_locale) def writeBestTransSol(self, filename="transprob.sol", write_zeros=False): """Write the best feasible primal solution for the transformed problem to a file. @@ -4591,8 +4591,8 @@ cdef class Model: filename -- name of the output file write_zeros -- include variables that are set to zero """ - user_locale = locale.getlocale() - locale.setlocale(locale.LC_ALL, "C") + user_locale = locale.getlocale(category=locale.LC_NUMERIC) + locale.setlocale(locale.LC_NUMERIC, "C") # use this double opening pattern to ensure that IOErrors are # triggered early and in python not in C, Cython or SCIP. @@ -4600,7 +4600,7 @@ cdef class Model: cfile = fdopen(f.fileno(), "w") PY_SCIP_CALL(SCIPprintBestTransSol(self._scip, cfile, write_zeros)) - locale.setlocale(locale.LC_ALL, user_locale) + locale.setlocale(locale.LC_NUMERIC,user_locale) def writeSol(self, Solution solution, filename="origprob.sol", write_zeros=False): """Write the given primal solution to a file. @@ -4610,8 +4610,8 @@ cdef class Model: filename -- name of the output file write_zeros -- include variables that are set to zero """ - user_locale = locale.getlocale() - locale.setlocale(locale.LC_ALL, "C") + user_locale = locale.getlocale(category=locale.LC_NUMERIC) + locale.setlocale(locale.LC_NUMERIC, "C") # use this doubled opening pattern to ensure that IOErrors are # triggered early and in Python not in C,Cython or SCIP. @@ -4619,7 +4619,7 @@ cdef class Model: cfile = fdopen(f.fileno(), "w") PY_SCIP_CALL(SCIPprintSol(self._scip, solution.sol, cfile, write_zeros)) - locale.setlocale(locale.LC_ALL, user_locale) + locale.setlocale(locale.LC_NUMERIC,user_locale) def writeTransSol(self, Solution solution, filename="transprob.sol", write_zeros=False): """Write the given transformed primal solution to a file. @@ -4629,8 +4629,8 @@ cdef class Model: filename -- name of the output file write_zeros -- include variables that are set to zero """ - user_locale = locale.getlocale() - locale.setlocale(locale.LC_ALL, "C") + user_locale = locale.getlocale(category=locale.LC_NUMERIC) + locale.setlocale(locale.LC_NUMERIC, "C") # use this doubled opening pattern to ensure that IOErrors are # triggered early and in Python not in C,Cython or SCIP. @@ -4638,7 +4638,7 @@ cdef class Model: cfile = fdopen(f.fileno(), "w") PY_SCIP_CALL(SCIPprintTransSol(self._scip, solution.sol, cfile, write_zeros)) - locale.setlocale(locale.LC_ALL, user_locale) + locale.setlocale(locale.LC_NUMERIC,user_locale) # perhaps this should not be included as it implements duplicated functionality # (as does it's namesake in SCIP) @@ -4648,9 +4648,14 @@ cdef class Model: Keyword arguments: filename -- name of the input file """ + user_locale = locale.getlocale(category=locale.LC_NUMERIC) + locale.setlocale(locale.LC_NUMERIC, "C") + absfile = str_conversion(abspath(filename)) PY_SCIP_CALL(SCIPreadSol(self._scip, absfile)) + locale.setlocale(locale.LC_NUMERIC, user_locale) + def readSolFile(self, filename): """Reads a given solution file. @@ -4668,7 +4673,14 @@ cdef class Model: str_absfile = abspath(filename) absfile = str_conversion(str_absfile) solution = self.createSol() + + user_locale = locale.getlocale(category=locale.LC_NUMERIC) + locale.setlocale(locale.LC_NUMERIC, "C") + PY_SCIP_CALL(SCIPreadSolFile(self._scip, absfile, solution.sol, False, &partial, &error)) + + locale.setlocale(locale.LC_NUMERIC, user_locale) + if error: raise Exception("SCIP: reading solution from file " + str_absfile + " failed!") @@ -4896,12 +4908,12 @@ cdef class Model: :param Variable var: variable """ - user_locale = locale.getlocale() - locale.setlocale(locale.LC_ALL, "C") + user_locale = locale.getlocale(category=locale.LC_NUMERIC) + locale.setlocale(locale.LC_NUMERIC, "C") PY_SCIP_CALL(SCIPwriteVarName(self._scip, NULL, var.scip_var, False)) - locale.setlocale(locale.LC_ALL, user_locale) + locale.setlocale(locale.LC_NUMERIC,user_locale) def getStage(self): """Retrieve current SCIP stage""" @@ -5032,12 +5044,12 @@ cdef class Model: def printStatistics(self): """Print statistics.""" - user_locale = locale.getlocale() - locale.setlocale(locale.LC_ALL, "C") + user_locale = locale.getlocale(category=locale.LC_NUMERIC) + locale.setlocale(locale.LC_NUMERIC, "C") PY_SCIP_CALL(SCIPprintStatistics(self._scip, NULL)) - locale.setlocale(locale.LC_ALL, user_locale) + locale.setlocale(locale.LC_NUMERIC,user_locale) def writeStatistics(self, filename="origprob.stats"): """Write statistics to a file. @@ -5045,8 +5057,8 @@ cdef class Model: Keyword arguments: filename -- name of the output file """ - user_locale = locale.getlocale() - locale.setlocale(locale.LC_ALL, "C") + user_locale = locale.getlocale(category=locale.LC_NUMERIC) + locale.setlocale(locale.LC_NUMERIC, "C") # use this doubled opening pattern to ensure that IOErrors are # triggered early and in Python not in C,Cython or SCIP. @@ -5054,7 +5066,7 @@ cdef class Model: cfile = fdopen(f.fileno(), "w") PY_SCIP_CALL(SCIPprintStatistics(self._scip, cfile)) - locale.setlocale(locale.LC_ALL, user_locale) + locale.setlocale(locale.LC_NUMERIC,user_locale) def getNLPs(self): """gets total number of LPs solved so far""" @@ -5241,7 +5253,13 @@ cdef class Model: """ absfile = str_conversion(abspath(file)) + + user_locale = locale.getlocale(category=locale.LC_NUMERIC) + locale.setlocale(locale.LC_NUMERIC, "C") + PY_SCIP_CALL(SCIPreadParams(self._scip, absfile)) + + locale.setlocale(locale.LC_NUMERIC, user_locale) def writeParams(self, filename='param.set', comments = True, onlychanged = True): """Write parameter settings to an external file. @@ -5251,15 +5269,15 @@ cdef class Model: :param onlychanged: write only modified parameters (Default value = True) """ - user_locale = locale.getlocale() - locale.setlocale(locale.LC_ALL, "C") + user_locale = locale.getlocale(category=locale.LC_NUMERIC) + locale.setlocale(locale.LC_NUMERIC, "C") str_absfile = abspath(filename) absfile = str_conversion(str_absfile) PY_SCIP_CALL(SCIPwriteParams(self._scip, absfile, comments, onlychanged)) print('wrote parameter settings to file ' + str_absfile) - locale.setlocale(locale.LC_ALL, user_locale) + locale.setlocale(locale.LC_NUMERIC,user_locale) def resetParam(self, name): """Reset parameter setting to its default value @@ -5290,6 +5308,9 @@ cdef class Model: :param extension: specify file extension/type (Default value = None) """ + user_locale = locale.getlocale(category=locale.LC_NUMERIC) + locale.setlocale(locale.LC_NUMERIC, "C") + absfile = str_conversion(abspath(filename)) if extension is None: PY_SCIP_CALL(SCIPreadProb(self._scip, absfile, NULL)) @@ -5297,6 +5318,8 @@ cdef class Model: extension = str_conversion(extension) PY_SCIP_CALL(SCIPreadProb(self._scip, absfile, extension)) + locale.setlocale(locale.LC_NUMERIC, user_locale) + # Counting functions def count(self): diff --git a/tests/data/test_locale.cip b/tests/data/test_locale.cip new file mode 100644 index 000000000..81a6f6e0d --- /dev/null +++ b/tests/data/test_locale.cip @@ -0,0 +1,623 @@ +STATISTICS + Problem name : model + Variables : 207 (60 binary, 0 integer, 0 implicit integer, 147 continuous) + Constraints : 0 initial, 407 maximal +OBJECTIVE + Sense : minimize +VARIABLES + [binary] : obj=0, original bounds=[0,1] + [binary] : obj=0, original bounds=[0,1] + [binary] : obj=0, original bounds=[0,1] + [binary] : obj=0, original bounds=[0,1] + [binary] : obj=0, original bounds=[0,1] + [binary] : obj=0, original bounds=[0,1] + [binary] : obj=0, original bounds=[0,1] + [binary] : obj=0, original bounds=[0,1] + [binary] : obj=0, original bounds=[0,1] + [binary] : obj=0, original bounds=[0,1] + [binary] : obj=0, original bounds=[0,1] + [binary] : obj=0, original bounds=[0,1] + [binary] : obj=0, original bounds=[0,1] + [binary] : obj=0, original bounds=[0,1] + [binary] : obj=0, original bounds=[0,1] + [binary] : obj=0, original bounds=[0,1] + [binary] : obj=0, original bounds=[0,1] + [binary] : obj=0, original bounds=[0,1] + [binary] : obj=0, original bounds=[0,1] + [binary] : obj=0, original bounds=[0,1] + [binary] : obj=0, original bounds=[0,1] + [binary] : obj=0, original bounds=[0,1] + [binary] : obj=0, original bounds=[0,1] + [binary] : obj=0, original bounds=[0,1] + [binary] : obj=0, original bounds=[0,1] + [binary] : obj=0, original bounds=[0,1] + [binary] : obj=0, original bounds=[0,1] + [binary] : obj=0, original bounds=[0,1] + [binary] : obj=0, original bounds=[0,1] + [binary] : obj=0, original bounds=[0,1] + [binary] : obj=0, original bounds=[0,1] + [binary] : obj=0, original bounds=[0,1] + [binary] : obj=0, original bounds=[0,1] + [binary] : obj=0, original bounds=[0,1] + [binary] : obj=0, original bounds=[0,1] + [binary] : obj=0, original bounds=[0,1] + [binary] : obj=0, original bounds=[0,1] + [binary] : obj=0, original bounds=[0,1] + [binary] : obj=0, original bounds=[0,1] + [binary] : obj=0, original bounds=[0,1] + [binary] : obj=0, original bounds=[0,1] + [binary] : obj=0, original bounds=[0,1] + [binary] : obj=0, original bounds=[0,1] + [binary] : obj=0, original bounds=[0,1] + [binary] : obj=0, original bounds=[0,1] + [binary] : obj=0, original bounds=[0,1] + [binary] : obj=0, original bounds=[0,1] + [binary] : obj=0, original bounds=[0,1] + [binary] : obj=0, original bounds=[0,1] + [binary] : obj=0, original bounds=[0,1] + [binary] : obj=0, original bounds=[0,1] + [binary] : obj=0, original bounds=[0,1] + [binary] : obj=0, original bounds=[0,1] + [binary] : obj=0, original bounds=[0,1] + [binary] : obj=0, original bounds=[0,1] + [binary] : obj=0, original bounds=[0,1] + [binary] : obj=0, original bounds=[0,1] + [binary] : obj=0, original bounds=[0,1] + [binary] : obj=0, original bounds=[0,1] + [binary] : obj=0, original bounds=[0,1] + [continuous] : obj=0, original bounds=[0,59.75] + [continuous] : obj=0, original bounds=[0,77.42] + [continuous] : obj=0, original bounds=[0,35.4] + [continuous] : obj=0, original bounds=[0,59.75] + [continuous] : obj=0, original bounds=[0,77.42] + [continuous] : obj=0, original bounds=[0,35.4] + [continuous] : obj=0, original bounds=[0,59.75] + [continuous] : obj=0, original bounds=[0,77.42] + [continuous] : obj=0, original bounds=[0,35.4] + [continuous] : obj=0, original bounds=[0,59.75] + [continuous] : obj=0, original bounds=[0,77.42] + [continuous] : obj=0, original bounds=[0,35.4] + [continuous] : obj=0, original bounds=[0,59.75] + [continuous] : obj=0, original bounds=[0,77.42] + [continuous] : obj=0, original bounds=[0,35.4] + [continuous] : obj=0, original bounds=[0,59.75] + [continuous] : obj=0, original bounds=[0,77.42] + [continuous] : obj=0, original bounds=[0,35.4] + [continuous] : obj=0, original bounds=[0,59.75] + [continuous] : obj=0, original bounds=[0,77.42] + [continuous] : obj=0, original bounds=[0,35.4] + [continuous] : obj=0, original bounds=[0,59.75] + [continuous] : obj=0, original bounds=[0,77.42] + [continuous] : obj=0, original bounds=[0,1] + [continuous] : obj=0, original bounds=[0,1] + [continuous] : obj=0, original bounds=[0,1] + [continuous] : obj=0, original bounds=[0,1] + [continuous] : obj=0, original bounds=[0,1] + [continuous] : obj=0, original bounds=[0,1] + [continuous] : obj=0, original bounds=[0,1] + [continuous] : obj=0, original bounds=[0,1] + [continuous] : obj=0, original bounds=[0,1] + [continuous] : obj=0, original bounds=[0,1] + [continuous] : obj=0, original bounds=[0,1] + [continuous] : obj=0, original bounds=[0,1] + [continuous] : obj=0, original bounds=[0,1] + [continuous] : obj=0, original bounds=[0,1] + [continuous] : obj=0, original bounds=[0,1] + [continuous] : obj=0, original bounds=[0,1] + [continuous] : obj=0, original bounds=[0,1] + [continuous] : obj=0, original bounds=[0,1] + [continuous] : obj=0, original bounds=[0,1] + [continuous] : obj=0, original bounds=[0,1] + [continuous] : obj=0, original bounds=[0,1] + [continuous] : obj=0, original bounds=[0,1] + [continuous] : obj=0, original bounds=[0,1] + [continuous] : obj=0, original bounds=[0,1] + [continuous] : obj=0, original bounds=[0,1] + [continuous] : obj=0, original bounds=[0,1] + [continuous] : obj=0, original bounds=[0,1] + [continuous] : obj=0, original bounds=[0,1] + [continuous] : obj=0, original bounds=[0,1] + [continuous] : obj=0, original bounds=[0,1] + [continuous] : obj=0, original bounds=[0,1] + [continuous] : obj=0, original bounds=[0,1] + [continuous] : obj=0, original bounds=[0,1] + [continuous] : obj=0, original bounds=[0,1] + [continuous] : obj=0, original bounds=[0,1] + [continuous] : obj=0, original bounds=[0,1] + [continuous] : obj=0, original bounds=[0,1] + [continuous] : obj=0, original bounds=[0,1] + [continuous] : obj=0, original bounds=[0,1] + [continuous] : obj=0, original bounds=[0,1] + [continuous] : obj=0, original bounds=[0,1] + [continuous] : obj=0, original bounds=[0,1] + [continuous] : obj=0, original bounds=[0,1] + [continuous] : obj=0, original bounds=[0,1] + [continuous] : obj=0, original bounds=[0,1] + [continuous] : obj=0, original bounds=[0,1] + [continuous] : obj=0, original bounds=[0,1] + [continuous] : obj=0, original bounds=[0,1] + [continuous] : obj=0, original bounds=[0,1] + [continuous] : obj=0, original bounds=[0,1] + [continuous] : obj=0, original bounds=[0,1] + [continuous] : obj=0, original bounds=[0,1] + [continuous] : obj=0, original bounds=[0,1] + [continuous] : obj=0, original bounds=[0,1] + [continuous] : obj=0, original bounds=[0,1] + [continuous] : obj=0, original bounds=[0,1] + [continuous] : obj=0, original bounds=[0,1] + [continuous] : obj=0, original bounds=[0,1] + [continuous] : obj=0, original bounds=[0,1] + [continuous] : obj=0, original bounds=[0,1] + [continuous] : obj=0, original bounds=[0,1] + [continuous] : obj=0, original bounds=[0,1] + [continuous] : obj=0, original bounds=[0,1] + [continuous] : obj=0, original bounds=[0,1.33] + [continuous] : obj=0, original bounds=[0,1.33] + [continuous] : obj=0, original bounds=[0,1.33] + [continuous] : obj=0, original bounds=[0,1.33] + [continuous] : obj=0, original bounds=[0,1.33] + [continuous] : obj=0, original bounds=[0,1.33] + [continuous] : obj=0, original bounds=[0,1.33] + [continuous] : obj=0, original bounds=[0,1.33] + [continuous] : obj=0, original bounds=[0,1.33] + [continuous] : obj=-1, original bounds=[0,1.33] + [continuous] : obj=0, original bounds=[0,1.33] + [continuous] : obj=0, original bounds=[0,1.33] + [continuous] : obj=0, original bounds=[0,1.33] + [continuous] : obj=0, original bounds=[0,1.33] + [continuous] : obj=0, original bounds=[0,1.33] + [continuous] : obj=0, original bounds=[0,1.33] + [continuous] : obj=0, original bounds=[0,1.33] + [continuous] : obj=0, original bounds=[0,1.33] + [continuous] : obj=0, original bounds=[0,1.33] + [continuous] : obj=0, original bounds=[0,1.33] + [continuous] : obj=0, original bounds=[0,35.4] + [continuous] : obj=0, original bounds=[0,59.75] + [continuous] : obj=0, original bounds=[0,77.42] + [continuous] : obj=0, original bounds=[0,35.4] + [continuous] : obj=0, original bounds=[0,59.75] + [continuous] : obj=0, original bounds=[0,77.42] + [continuous] : obj=0, original bounds=[0,35.4] + [continuous] : obj=0, original bounds=[0,59.75] + [continuous] : obj=0, original bounds=[0,77.42] + [continuous] : obj=0, original bounds=[0,35.4] + [continuous] : obj=0, original bounds=[0,59.75] + [continuous] : obj=0, original bounds=[0,77.42] + [continuous] : obj=0, original bounds=[0,35.4] + [continuous] : obj=0, original bounds=[0,59.75] + [continuous] : obj=0, original bounds=[0,77.42] + [continuous] : obj=0, original bounds=[0,35.4] + [continuous] : obj=0, original bounds=[0,59.75] + [continuous] : obj=0, original bounds=[0,77.42] + [continuous] : obj=0, original bounds=[0,35.4] + [continuous] : obj=0, original bounds=[0,59.75] + [continuous] : obj=0, original bounds=[0,77.42] + [continuous] : obj=0, original bounds=[0,35.4] + [continuous] : obj=0, original bounds=[0,59.75] + [continuous] : obj=0, original bounds=[0,77.42] + [continuous] : obj=0, original bounds=[0,35.4] + [continuous] : obj=0, original bounds=[0,59.75] + [continuous] : obj=0, original bounds=[0,77.42] + [continuous] : obj=0, original bounds=[0,35.4] + [continuous] : obj=0, original bounds=[0,59.75] + [continuous] : obj=0, original bounds=[0,77.42] + [continuous] : obj=0, original bounds=[0,35.4] + [continuous] : obj=0, original bounds=[0,59.75] + [continuous] : obj=0, original bounds=[0,77.42] + [continuous] : obj=0, original bounds=[0,35.4] + [continuous] : obj=0, original bounds=[0,59.75] + [continuous] : obj=0, original bounds=[0,77.42] + [continuous] : obj=0, original bounds=[0,35.4] + [continuous] : obj=0, original bounds=[0,59.75] + [continuous] : obj=0, original bounds=[0,77.42] + [continuous] : obj=0, original bounds=[0,35.4] + [continuous] : obj=0, original bounds=[0,+inf] +CONSTRAINTS + [linear] : [C] -0.0282485875706215[C] == 0; + [linear] : [C] -0.0167364016736402[C] == 0; + [linear] : [C] -0.0129165590286748[C] == 0; + [linear] : [C] -0.0282485875706215[C] == 0; + [linear] : [C] -0.0167364016736402[C] == 0; + [linear] : [C] -0.0129165590286748[C] == 0; + [linear] : [C] -0.0282485875706215[C] == 0; + [linear] : [C] -0.0167364016736402[C] == 0; + [linear] : [C] -0.0129165590286748[C] == 0; + [linear] : [C] -0.0282485875706215[C] == 0; + [linear] : [C] -0.0167364016736402[C] == 0; + [linear] : [C] -0.0129165590286748[C] == 0; + [linear] : [C] -0.0282485875706215[C] == 0; + [linear] : [C] -0.0167364016736402[C] == 0; + [linear] : [C] -0.0129165590286748[C] == 0; + [linear] : [C] -0.0282485875706215[C] == 0; + [linear] : [C] -0.0167364016736402[C] == 0; + [linear] : [C] -0.0129165590286748[C] == 0; + [linear] : [C] -0.0282485875706215[C] == 0; + [linear] : [C] -0.0167364016736402[C] == 0; + [linear] : [C] -0.0129165590286748[C] == 0; + [linear] : [C] -0.0282485875706215[C] == 0; + [linear] : [C] -0.0167364016736402[C] == 0; + [linear] : [C] -0.0129165590286748[C] == 0; + [linear] : [C] -0.0282485875706215[C] == 0; + [linear] : [C] -0.0167364016736402[C] == 0; + [linear] : [C] -0.0129165590286748[C] == 0; + [linear] : [C] -0.0282485875706215[C] == 0; + [linear] : [C] -0.0167364016736402[C] == 0; + [linear] : [C] -0.0129165590286748[C] == 0; + [linear] : [C] -0.0282485875706215[C] == 0; + [linear] : [C] -0.0167364016736402[C] == 0; + [linear] : [C] -0.0129165590286748[C] == 0; + [linear] : [C] -0.0282485875706215[C] == 0; + [linear] : [C] -0.0167364016736402[C] == 0; + [linear] : [C] -0.0129165590286748[C] == 0; + [linear] : [C] -0.0282485875706215[C] == 0; + [linear] : [C] -0.0167364016736402[C] == 0; + [linear] : [C] -0.0129165590286748[C] == 0; + [linear] : [C] -0.0282485875706215[C] == 0; + [linear] : [C] -0.0167364016736402[C] == 0; + [linear] : [C] -0.0129165590286748[C] == 0; + [linear] : [C] -0.0282485875706215[C] == 0; + [linear] : [C] -0.0167364016736402[C] == 0; + [linear] : [C] -0.0129165590286748[C] == 0; + [linear] : [C] -0.0282485875706215[C] == 0; + [linear] : [C] -0.0167364016736402[C] == 0; + [linear] : [C] -0.0129165590286748[C] == 0; + [linear] : [C] -0.0282485875706215[C] == 0; + [linear] : [C] -0.0167364016736402[C] == 0; + [linear] : [C] -0.0129165590286748[C] == 0; + [linear] : [C] -0.0282485875706215[C] == 0; + [linear] : [C] -0.0167364016736402[C] == 0; + [linear] : [C] -0.0129165590286748[C] == 0; + [linear] : [C] -0.0282485875706215[C] == 0; + [linear] : [C] -0.0167364016736402[C] == 0; + [linear] : [C] -0.0129165590286748[C] == 0; + [linear] : [C] -0.0282485875706215[C] == 0; + [linear] : [C] -0.0167364016736402[C] == 0; + [linear] : [C] -0.0129165590286748[C] == 0; + [linear] : [C] -0.0282485875706215[C] == 0; + [linear] : [C] -0.0167364016736402[C] == 0; + [linear] : [C] -0.0129165590286748[C] == 0; + [linear] : [C] -13.68[B] -13.68[B] -13.68[B] -13.68[B] -13.68[B] -13.68[B] -13.68[B] -13.68[B] -13.68[B] -13.68[B] -13.68[B] -13.68[B] -13.68[B] -13.68[B] -13.68[B] -13.68[B] -13.68[B] -13.68[B] -13.68[B] -13.68[B] -4.73[B] -4.73[B] -4.73[B] -4.73[B] -4.73[B] -4.73[B] -4.73[B] -4.73[B] -4.73[B] -4.73[B] -4.73[B] -4.73[B] -4.73[B] -4.73[B] -4.73[B] -4.73[B] -4.73[B] -4.73[B] -4.73[B] -4.73[B] -3.46[B] -3.46[B] -3.46[B] -3.46[B] -3.46[B] -3.46[B] -3.46[B] -3.46[B] -3.46[B] -3.46[B] -3.46[B] -3.46[B] -3.46[B] -3.46[B] -3.46[B] -3.46[B] -3.46[B] -3.46[B] -3.46[B] -3.46[B] == 0; + [linear] : [B] -[B] == 0; + [linear] : [B] -[B] == 0; + [linear] : [B] -[B] == 0; + [linear] : [B] -[B] == 0; + [linear] : [B] -[B] == 0; + [linear] : [B] -[B] == 0; + [linear] : [B] -[B] == 0; + [linear] : [B] -[B] == 0; + [linear] : [B] -[B] == 0; + [linear] : [B] -[B] == 0; + [linear] : [B] -[B] == 0; + [linear] : [B] -[B] == 0; + [linear] : [B] -[B] == 0; + [linear] : [B] -[B] == 0; + [linear] : [B] -[B] == 0; + [linear] : [B] -[B] == 0; + [linear] : [B] -[B] == 0; + [linear] : [B] -[B] == 0; + [linear] : [B] -[B] == 0; + [linear] : [B] -[B] == 0; + [linear] : [B] -[B] == 0; + [linear] : [B] -[B] == 0; + [linear] : [B] -[B] == 0; + [linear] : [B] -[B] == 0; + [linear] : [B] -[B] == 0; + [linear] : [B] -[B] == 0; + [linear] : [B] -[B] == 0; + [linear] : [B] -[B] == 0; + [linear] : [B] -[B] == 0; + [linear] : [B] -[B] == 0; + [linear] : [B] -[B] == 0; + [linear] : [B] -[B] == 0; + [linear] : [B] -[B] == 0; + [linear] : [B] -[B] == 0; + [linear] : [B] -[B] == 0; + [linear] : [B] -[B] == 0; + [linear] : [B] -[B] == 0; + [linear] : [B] -[B] == 0; + [linear] : [B] -[B] == 0; + [linear] : [B] -[B] == 0; + [linear] : [B] -[B] == 0; + [linear] : [B] -[B] == 0; + [linear] : [B] -[B] == 0; + [linear] : [B] -[B] == 0; + [linear] : [B] -[B] == 0; + [linear] : [B] -[B] == 0; + [linear] : [B] -[B] == 0; + [linear] : [B] -[B] == 0; + [linear] : [B] -[B] == 0; + [linear] : [B] -[B] == 0; + [linear] : [B] -[B] == 0; + [linear] : [B] -[B] == 0; + [linear] : [B] -[B] == 0; + [linear] : [B] -[B] == 0; + [linear] : [B] -[B] == 0; + [linear] : [B] -[B] == 0; + [linear] : [B] -[B] == 0; + [linear] : [B] -[B] == 0; + [linear] : [B] -[B] == 0; + [linear] : [B] -[B] == 0; + [linear] : [B] -[B] <= 1e-05; + [linear] : [B] -[B] <= 1e-05; + [linear] : [B] -[B] <= 1e-05; + [linear] : [B] -[B] <= 1e-05; + [linear] : [B] -[B] <= 1e-05; + [linear] : [B] -[B] <= 1e-05; + [linear] : [B] -[B] <= 1e-05; + [linear] : [B] -[B] <= 1e-05; + [linear] : [B] -[B] <= 1e-05; + [linear] : [B] -[B] <= 1e-05; + [linear] : [B] -[B] <= 1e-05; + [linear] : [B] -[B] <= 1e-05; + [linear] : [B] -[B] <= 1e-05; + [linear] : [B] -[B] <= 1e-05; + [linear] : [B] -[B] <= 1e-05; + [linear] : [B] -[B] <= 1e-05; + [linear] : [B] -[B] <= 1e-05; + [linear] : [B] -[B] <= 1e-05; + [linear] : [B] -[B] <= 1e-05; + [linear] : [B] -[B] <= 1e-05; + [linear] : -6[B] +[B] +[B] +[B] +[B] +[B] +[B] +7[B] >= 0; + [linear] : -6[B] +[B] +[B] +[B] +[B] +[B] +[B] +7[B] >= 0; + [linear] : -6[B] +[B] +[B] +[B] +[B] +[B] +[B] +7[B] >= 0; + [linear] : -6[B] +[B] +[B] +[B] +[B] +[B] +[B] +7[B] >= 0; + [linear] : -6[B] +[B] +[B] +[B] +[B] +[B] +[B] +7[B] >= 0; + [linear] : -6[B] +[B] +[B] +[B] +[B] +[B] +[B] +7[B] >= 0; + [linear] : -6[B] +[B] +[B] +[B] +[B] +[B] +[B] +7[B] >= 0; + [linear] : -6[B] +[B] +[B] +[B] +[B] +[B] +[B] +7[B] >= 0; + [linear] : -6[B] +[B] +[B] +[B] +[B] +[B] +[B] +7[B] >= 0; + [linear] : -6[B] +[B] +[B] +[B] +[B] +[B] +[B] +7[B] >= 0; + [linear] : -6[B] +[B] +[B] +[B] +[B] +[B] +[B] +7[B] >= 0; + [linear] : -6[B] +[B] +[B] +[B] +[B] +[B] +[B] +7[B] >= 0; + [linear] : -6[B] +[B] +[B] +[B] +[B] +[B] +[B] +7[B] >= 0; + [linear] : -6[B] +[B] +[B] +[B] +[B] +[B] +[B] +7[B] >= 0; + [linear] : -6[B] +[B] +[B] +[B] +[B] +[B] +[B] +7[B] >= 0; + [linear] : -6[B] +[B] +[B] +[B] +[B] +[B] +[B] +7[B] >= 0; + [linear] : -6[B] +[B] +[B] +[B] +[B] +[B] +[B] +7[B] >= 0; + [linear] : -6[B] +[B] +[B] +[B] +[B] +[B] +[B] +7[B] >= 0; + [linear] : -6[B] +[B] +[B] +[B] +[B] +[B] +[B] +7[B] >= 0; + [linear] : -6[B] +[B] +[B] +[B] +[B] +[B] +[B] +7[B] >= 0; + [linear] : -6[B] +[B] +[B] +[B] +[B] +[B] +[B] +7[B] >= 0; + [linear] : -6[B] +[B] +[B] +[B] +[B] +[B] +[B] +7[B] >= 0; + [linear] : -6[B] +[B] +[B] +[B] +[B] +[B] +[B] +7[B] >= 0; + [linear] : -6[B] +[B] +[B] +[B] +[B] +[B] +[B] +7[B] >= 0; + [linear] : -6[B] +[B] +[B] +[B] +[B] +[B] +[B] +7[B] >= 0; + [linear] : -6[B] +[B] +[B] +[B] +[B] +[B] +[B] +7[B] >= 0; + [linear] : -5[B] +[B] +[B] +[B] +[B] +[B] +6[B] >= 0; + [linear] : -5[B] +[B] +[B] +[B] +[B] +[B] +6[B] >= 0; + [linear] : -5[B] +[B] +[B] +[B] +[B] +[B] +6[B] >= 0; + [linear] : -5[B] +[B] +[B] +[B] +[B] +[B] +6[B] >= 0; + [linear] : -5[B] +[B] +[B] +[B] +[B] +[B] +6[B] >= 0; + [linear] : -5[B] +[B] +[B] +[B] +[B] +[B] +6[B] >= 0; + [linear] : -5[B] +[B] +[B] +[B] +[B] +[B] +6[B] >= 0; + [linear] : -5[B] +[B] +[B] +[B] +[B] +[B] +6[B] >= 0; + [linear] : -5[B] +[B] +[B] +[B] +[B] +[B] +6[B] >= 0; + [linear] : -5[B] +[B] +[B] +[B] +[B] +[B] +6[B] >= 0; + [linear] : -5[B] +[B] +[B] +[B] +[B] +[B] +6[B] >= 0; + [linear] : -5[B] +[B] +[B] +[B] +[B] +[B] +6[B] >= 0; + [linear] : -5[B] +[B] +[B] +[B] +[B] +[B] +6[B] >= 0; + [linear] : -5[B] +[B] +[B] +[B] +[B] +[B] +6[B] >= 0; + [linear] : 0 <= 0; + [linear] : [B] -[B] <= 0; + [linear] : [B] -[B] <= 0; + [linear] : [B] -[B] <= 0; + [linear] : [B] -[B] <= 0; + [linear] : [B] -[B] <= 0; + [linear] : [B] -[B] <= 0; + [linear] : 0 <= 0; + [linear] : [B] -[B] <= 0; + [linear] : [B] -[B] <= 0; + [linear] : [B] -[B] <= 0; + [linear] : [B] -[B] <= 0; + [linear] : [B] -[B] <= 0; + [linear] : [B] -[B] <= 0; + [linear] : 0 <= 0; + [linear] : [B] -[B] <= 0; + [linear] : [B] -[B] <= 0; + [linear] : [B] -[B] <= 0; + [linear] : [B] -[B] <= 0; + [linear] : [B] -[B] <= 0; + [linear] : [C] +1.69[B] <= 1.69001; + [linear] : [C] +1.33[B] <= 1.33001; + [linear] : [C] +2.74[B] <= 2.74001; + [linear] : [C] +1.69[B] <= 1.69001; + [linear] : [C] +1.33[B] <= 1.33001; + [linear] : [C] +2.74[B] <= 2.74001; + [linear] : [C] +1.69[B] <= 1.69001; + [linear] : [C] +1.33[B] <= 1.33001; + [linear] : [C] +2.74[B] <= 2.74001; + [linear] : [C] +1.69[B] <= 1.69001; + [linear] : [C] +1.33[B] <= 1.33001; + [linear] : [C] +2.74[B] <= 2.74001; + [linear] : [C] +1.69[B] <= 1.69001; + [linear] : [C] +1.33[B] <= 1.33001; + [linear] : [C] +2.74[B] <= 2.74001; + [linear] : [C] +1.69[B] <= 1.69001; + [linear] : [C] +1.33[B] <= 1.33001; + [linear] : [C] +2.74[B] <= 2.74001; + [linear] : [C] +1.69[B] <= 1.69001; + [linear] : [C] +1.33[B] <= 1.33001; + [linear] : [C] +2.74[B] <= 2.74001; + [linear] : [C] +1.69[B] <= 1.69001; + [linear] : [C] +1.33[B] <= 1.33001; + [linear] : [C] +2.74[B] <= 2.74001; + [linear] : [C] +1.69[B] <= 1.69001; + [linear] : [C] +1.33[B] <= 1.33001; + [linear] : [C] +2.74[B] <= 2.74001; + [linear] : [C] +1.69[B] <= 1.69001; + [linear] : [C] +1.33[B] <= 1.33001; + [linear] : [C] +2.74[B] <= 2.74001; + [linear] : [C] +1.69[B] <= 1.69001; + [linear] : [C] +1.33[B] <= 1.33001; + [linear] : [C] +2.74[B] <= 2.74001; + [linear] : [C] +1.69[B] <= 1.69001; + [linear] : [C] +1.33[B] <= 1.33001; + [linear] : [C] +2.74[B] <= 2.74001; + [linear] : [C] +1.69[B] <= 1.69001; + [linear] : [C] +1.33[B] <= 1.33001; + [linear] : [C] +2.74[B] <= 2.74001; + [linear] : [C] +1.69[B] <= 1.69001; + [linear] : [C] +1.33[B] <= 1.33001; + [linear] : [C] +2.74[B] <= 2.74001; + [linear] : [C] +1.69[B] <= 1.69001; + [linear] : [C] +1.33[B] <= 1.33001; + [linear] : [C] +2.74[B] <= 2.74001; + [linear] : [C] +1.69[B] <= 1.69001; + [linear] : [C] +1.33[B] <= 1.33001; + [linear] : [C] +2.74[B] <= 2.74001; + [linear] : [C] +1.69[B] <= 1.69001; + [linear] : [C] +1.33[B] <= 1.33001; + [linear] : [C] +2.74[B] <= 2.74001; + [linear] : [C] +1.69[B] <= 1.69001; + [linear] : [C] +1.33[B] <= 1.33001; + [linear] : [C] +2.74[B] <= 2.74001; + [linear] : [C] +1.69[B] <= 1.69001; + [linear] : [C] +1.33[B] <= 1.33001; + [linear] : [C] +2.74[B] <= 2.74001; + [linear] : [C] +1.69[B] <= 1.69001; + [linear] : [C] +1.33[B] <= 1.33001; + [linear] : [C] +2.74[B] <= 2.74001; + [linear] : [C] == 35.4; + [linear] : [C] == 59.75; + [linear] : [C] == 77.42; + [linear] : [C] -0.9978[C] +2.233[C] -41.40677[B] <= -2.233; + [linear] : [C] -0.9682[C] +2.337[C] -65.19521[B] <= -2.337; + [linear] : [C] -0.9101[C] +0.25[C] -78.355[B] <= -0.25; + [linear] : [C] -0.9978[C] +2.233[C] -41.40677[B] <= -2.233; + [linear] : [C] -0.9682[C] +2.337[C] -65.19521[B] <= -2.337; + [linear] : [C] -0.9101[C] +0.25[C] -78.355[B] <= -0.25; + [linear] : [C] -0.9978[C] +2.233[C] -41.40677[B] <= -2.233; + [linear] : [C] -0.9682[C] +2.337[C] -65.19521[B] <= -2.337; + [linear] : [C] -0.9101[C] +0.25[C] -78.355[B] <= -0.25; + [linear] : [C] -0.9978[C] +2.233[C] -41.40677[B] <= -2.233; + [linear] : [C] -0.9682[C] +2.337[C] -65.19521[B] <= -2.337; + [linear] : [C] -0.9101[C] +0.25[C] -78.355[B] <= -0.25; + [linear] : [C] -0.9978[C] +2.233[C] -41.40677[B] <= -2.233; + [linear] : [C] -0.9682[C] +2.337[C] -65.19521[B] <= -2.337; + [linear] : [C] -0.9101[C] +0.25[C] -78.355[B] <= -0.25; + [linear] : [C] -0.9978[C] +2.233[C] -41.40677[B] <= -2.233; + [linear] : [C] -0.9682[C] +2.337[C] -65.19521[B] <= -2.337; + [linear] : [C] -0.9101[C] +0.25[C] -78.355[B] <= -0.25; + [linear] : [C] -0.9978[C] +2.233[C] -41.40677[B] <= -2.233; + [linear] : [C] -0.9682[C] +2.337[C] -65.19521[B] <= -2.337; + [linear] : [C] -0.9101[C] +0.25[C] -78.355[B] <= -0.25; + [linear] : [C] -0.9978[C] +2.233[C] -41.40677[B] <= -2.233; + [linear] : [C] -0.9682[C] +2.337[C] -65.19521[B] <= -2.337; + [linear] : [C] -0.9101[C] +0.25[C] -78.355[B] <= -0.25; + [linear] : [C] -0.9978[C] +2.233[C] -41.40677[B] <= -2.233; + [linear] : [C] -0.9682[C] +2.337[C] -65.19521[B] <= -2.337; + [linear] : [C] -0.9101[C] +0.25[C] -78.355[B] <= -0.25; + [linear] : [C] -0.9978[C] +2.233[C] -41.40677[B] <= -2.233; + [linear] : [C] -0.9682[C] +2.337[C] -65.19521[B] <= -2.337; + [linear] : [C] -0.9101[C] +0.25[C] -78.355[B] <= -0.25; + [linear] : [C] -0.9978[C] +2.233[C] -41.40677[B] <= -2.233; + [linear] : [C] -0.9682[C] +2.337[C] -65.19521[B] <= -2.337; + [linear] : [C] -0.9101[C] +0.25[C] -78.355[B] <= -0.25; + [linear] : [C] -0.9978[C] +2.233[C] -41.40677[B] <= -2.233; + [linear] : [C] -0.9682[C] +2.337[C] -65.19521[B] <= -2.337; + [linear] : [C] -0.9101[C] +0.25[C] -78.355[B] <= -0.25; + [linear] : [C] -0.9978[C] +2.233[C] -41.40677[B] <= -2.233; + [linear] : [C] -0.9682[C] +2.337[C] -65.19521[B] <= -2.337; + [linear] : [C] -0.9101[C] +0.25[C] -78.355[B] <= -0.25; + [linear] : [C] -0.9978[C] +2.233[C] -41.40677[B] <= -2.233; + [linear] : [C] -0.9682[C] +2.337[C] -65.19521[B] <= -2.337; + [linear] : [C] -0.9101[C] +0.25[C] -78.355[B] <= -0.25; + [linear] : [C] -0.9978[C] +2.233[C] -41.40677[B] <= -2.233; + [linear] : [C] -0.9682[C] +2.337[C] -65.19521[B] <= -2.337; + [linear] : [C] -0.9101[C] +0.25[C] -78.355[B] <= -0.25; + [linear] : [C] -0.9978[C] +2.233[C] -41.40677[B] <= -2.233; + [linear] : [C] -0.9682[C] +2.337[C] -65.19521[B] <= -2.337; + [linear] : [C] -0.9101[C] +0.25[C] -78.355[B] <= -0.25; + [linear] : [C] -0.9978[C] +2.233[C] -41.40677[B] <= -2.233; + [linear] : [C] -0.9682[C] +2.337[C] -65.19521[B] <= -2.337; + [linear] : [C] -0.9101[C] +0.25[C] -78.355[B] <= -0.25; + [linear] : [C] -0.9978[C] +2.233[C] -41.40677[B] <= -2.233; + [linear] : [C] -0.9682[C] +2.337[C] -65.19521[B] <= -2.337; + [linear] : [C] -0.9101[C] +0.25[C] -78.355[B] <= -0.25; + [linear] : [C] -0.9978[C] +2.233[C] -41.40677[B] <= -2.233; + [linear] : [C] -0.9682[C] +2.337[C] -65.19521[B] <= -2.337; + [linear] : [C] -0.9101[C] +0.25[C] -78.355[B] <= -0.25; + [linear] : [C] -0.9978[C] +2.233[C] -41.40677[B] <= -2.233; + [linear] : [C] -0.9682[C] +2.337[C] -65.19521[B] <= -2.337; + [linear] : [C] -0.9101[C] +0.25[C] -78.355[B] <= -0.25; + [linear] : [C] -7.59[C] <= 20.86001; + [linear] : [C] -6.37[C] <= 20.45001; + [linear] : [C] -6.25[C] <= 21.63001; + [linear] : [C] -7.59[C] <= 20.86001; + [linear] : [C] -6.37[C] <= 20.45001; + [linear] : [C] -6.25[C] <= 21.63001; + [linear] : [C] -7.59[C] <= 20.86001; + [linear] : [C] -6.37[C] <= 20.45001; + [linear] : [C] -6.25[C] <= 21.63001; + [linear] : [C] -7.59[C] <= 20.86001; + [linear] : [C] -6.37[C] <= 20.45001; + [linear] : [C] -6.25[C] <= 21.63001; + [linear] : [C] -7.59[C] <= 20.86001; + [linear] : [C] -6.37[C] <= 20.45001; + [linear] : [C] -6.25[C] <= 21.63001; + [linear] : [C] -7.59[C] <= 20.86001; + [linear] : [C] -6.37[C] <= 20.45001; + [linear] : [C] -6.25[C] <= 21.63001; + [linear] : [C] -7.59[C] <= 20.86001; + [linear] : [C] -6.37[C] <= 20.45001; + [linear] : [C] -6.25[C] <= 21.63001; + [linear] : [C] -7.59[C] <= 20.86001; + [linear] : [C] -6.37[C] <= 20.45001; + [linear] : [C] -6.25[C] <= 21.63001; + [linear] : [C] -7.59[C] <= 20.86001; + [linear] : [C] -6.37[C] <= 20.45001; + [linear] : [C] -6.25[C] <= 21.63001; + [linear] : [C] -7.59[C] <= 20.86001; + [linear] : [C] -6.37[C] <= 20.45001; + [linear] : [C] -6.25[C] <= 21.63001; + [linear] : [C] -7.59[C] <= 20.86001; + [linear] : [C] -6.37[C] <= 20.45001; + [linear] : [C] -6.25[C] <= 21.63001; + [linear] : [C] -7.59[C] <= 20.86001; + [linear] : [C] -6.37[C] <= 20.45001; + [linear] : [C] -6.25[C] <= 21.63001; + [linear] : [C] -7.59[C] <= 20.86001; + [linear] : [C] -6.37[C] <= 20.45001; + [linear] : [C] -6.25[C] <= 21.63001; + [linear] : [C] -7.59[C] <= 20.86001; + [linear] : [C] -6.37[C] <= 20.45001; + [linear] : [C] -6.25[C] <= 21.63001; + [linear] : [C] -7.59[C] <= 20.86001; + [linear] : [C] -6.37[C] <= 20.45001; + [linear] : [C] -6.25[C] <= 21.63001; + [linear] : [C] -7.59[C] <= 20.86001; + [linear] : [C] -6.37[C] <= 20.45001; + [linear] : [C] -6.25[C] <= 21.63001; + [linear] : [C] -7.59[C] <= 20.86001; + [linear] : [C] -6.37[C] <= 20.45001; + [linear] : [C] -6.25[C] <= 21.63001; + [linear] : [C] -7.59[C] <= 20.86001; + [linear] : [C] -6.37[C] <= 20.45001; + [linear] : [C] -6.25[C] <= 21.63001; + [linear] : [C] -7.59[C] <= 20.86001; + [linear] : [C] -6.37[C] <= 20.45001; + [linear] : [C] -6.25[C] <= 21.63001; + [linear] : [C] -7.59[C] <= 20.86001; + [linear] : [C] -6.37[C] <= 20.45001; + [linear] : [C] -6.25[C] <= 21.63001; + [linear] : [C] <= 1.48901; + [linear] : [C] <= 1.36501; + [linear] : [C] <= 0.59901; + [linear] : [C] <= 1.38701; + [linear] : [C] <= 1.72601; + [linear] : [C] <= 1.65601; + [linear] : [C] <= 0.85201; + [linear] : [C] <= 1.81001; + [linear] : [C] <= 1.02101; + [linear] : [C] <= 1.94701; + [linear] : [C] <= 0.82801; + [linear] : [C] <= 0.89801; + [linear] : [C] <= 1.43601; + [linear] : [C] <= 0.16201; + [linear] : [C] <= 1.74101; + [linear] : [C] <= 1.10501; + [linear] : [C] <= 0.20301; + [linear] : [C] <= 0.64801; + [linear] : [C] <= 0.86101; + [linear] : [C] <= 0.24601; +END diff --git a/tests/test_model.py b/tests/test_model.py index e705dadfb..9dca52cde 100644 --- a/tests/test_model.py +++ b/tests/test_model.py @@ -360,5 +360,7 @@ def test_locale(): with open("model.cip") as file: assert "1,1" not in file.read() + + m.readProblem(os.path.join("tests", "data", "test_locale.cip")) locale.setlocale(locale.LC_NUMERIC,"")