From 5652772a303ba9e6d1333c0b0c84aa73c716d560 Mon Sep 17 00:00:00 2001 From: Joao-Dionisio Date: Wed, 24 Apr 2024 15:47:08 +0100 Subject: [PATCH 1/6] Fix overambitious locale --- src/pyscipopt/scip.pxi | 78 +++++++++++++++++++++--------------------- 1 file changed, 39 insertions(+), 39 deletions(-) diff --git a/src/pyscipopt/scip.pxi b/src/pyscipopt/scip.pxi index 3246c6f1f..84b8a8e93 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""" @@ -1461,8 +1461,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) @@ -1477,7 +1477,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 @@ -4384,13 +4384,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. @@ -4429,12 +4429,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. @@ -4444,15 +4444,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. @@ -4462,8 +4462,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. @@ -4471,7 +4471,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. @@ -4480,8 +4480,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. @@ -4489,7 +4489,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. @@ -4499,8 +4499,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. @@ -4508,7 +4508,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. @@ -4518,8 +4518,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. @@ -4527,7 +4527,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) @@ -4785,12 +4785,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""" @@ -4917,12 +4917,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. @@ -4930,8 +4930,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. @@ -4939,7 +4939,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""" @@ -5133,15 +5133,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 From 6d38c4ccff4952d3a86b77c213160ccbdcffe35f Mon Sep 17 00:00:00 2001 From: Joao-Dionisio Date: Wed, 24 Apr 2024 15:47:38 +0100 Subject: [PATCH 2/6] Update CHANGELOG --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 614152b91..11ddcfa2e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,7 @@ - Add SCIP function SCIPgetTreesizeEstimation and wrapper getTreesizeEstimation - Add recipes sub-package ### Fixed +- Fixed locale fix - Fixed incorrect writing/printing when user had a non-default locale ### Changed ### Removed From 59f99646aff528e10bb8ccdb78a1e4c5d917c55b Mon Sep 17 00:00:00 2001 From: Joao-Dionisio Date: Sun, 28 Apr 2024 18:57:54 +0100 Subject: [PATCH 3/6] Add locale fix to write methods --- src/pyscipopt/scip.pxi | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/src/pyscipopt/scip.pxi b/src/pyscipopt/scip.pxi index 94b5a87c5..f335c44a9 100644 --- a/src/pyscipopt/scip.pxi +++ b/src/pyscipopt/scip.pxi @@ -4539,9 +4539,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. @@ -4559,7 +4564,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!") @@ -5132,7 +5144,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. @@ -5181,6 +5199,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)) @@ -5188,6 +5209,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): From b0b0fcb15962489f65bd652ad81be690071e8064 Mon Sep 17 00:00:00 2001 From: Joao-Dionisio Date: Sun, 28 Apr 2024 18:58:56 +0100 Subject: [PATCH 4/6] Write locale test --- tests/data/test_locale.cip | 623 +++++++++++++++++++++++++++++++++++++ tests/test_model.py | 2 + 2 files changed, 625 insertions(+) create mode 100644 tests/data/test_locale.cip 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..ec40ffa02 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("data/test_locale.cip") locale.setlocale(locale.LC_NUMERIC,"") From ef93322528edd3b38da00c8bfd310abb6b8fcafd Mon Sep 17 00:00:00 2001 From: Joao-Dionisio Date: Sun, 28 Apr 2024 18:59:03 +0100 Subject: [PATCH 5/6] Update CHANGELOG --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1e300e7dc..6fc00c94e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,8 +2,10 @@ ## Unreleased ### Added +- Expanded locale test - Added check for pt_PT locale in test_model.py ### Fixed +- Fixed locale errors in reading ### Changed ### Removed From 92061caf89d6d6b29812e1df9619815787942515 Mon Sep 17 00:00:00 2001 From: Joao-Dionisio Date: Sun, 28 Apr 2024 19:02:27 +0100 Subject: [PATCH 6/6] Fix path --- tests/test_model.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/test_model.py b/tests/test_model.py index ec40ffa02..9dca52cde 100644 --- a/tests/test_model.py +++ b/tests/test_model.py @@ -361,6 +361,6 @@ def test_locale(): with open("model.cip") as file: assert "1,1" not in file.read() - m.readProblem("data/test_locale.cip") + m.readProblem(os.path.join("tests", "data", "test_locale.cip")) locale.setlocale(locale.LC_NUMERIC,"")