Beispiel #1
0
 def test_error3(self):
     #""" Empty argument list """
     try:
         convert_problem((), None, [ProblemFormat.mps])
         self.fail("Expected ConverterError exception")
     except ConverterError:
         pass
Beispiel #2
0
 def test_error4(self):
     #""" Unknown source type """
     try:
         convert_problem(("prob.foo", ), None, [ProblemFormat.mps])
         self.fail("Expected ConverterError exception")
     except ConverterError:
         pass
Beispiel #3
0
 def test_error5(self):
     #""" Unknown source type """
     try:
         convert_problem(("prob.lp", ), ProblemFormat.nl,
                         [ProblemFormat.nl])
         self.fail("Expected ConverterError exception")
     except ConverterError:
         pass
Beispiel #4
0
 def test_error2(self):
     #""" Target problem type is not valid """
     try:
         convert_problem(("test4.nl", "tmp.nl"), ProblemFormat.nl,
                         [ProblemFormat.mps])
         self.fail("Expected ConverterError exception")
     except ConverterError:
         pass
Beispiel #5
0
 def test_error1(self):
     #""" No valid problem types """
     try:
         convert_problem(("test4.nl", "tmp.nl"), ProblemFormat.nl, [])
         self.fail("Expected ConverterError exception")
     except ConverterError:
         err = sys.exc_info()[1]
         pass
Beispiel #6
0
 def test_mod_lp2(self):
     #""" Convert from MOD+DAT to LP """
     try:
         ans = convert_problem(
             (join(currdir, "test5.mod"), join(currdir, "test5.dat")), None,
             [ProblemFormat.cpxlp])
     except ApplicationError:
         err = sys.exc_info()[1]
         if Executable("glpsol").available():
             self.fail("Unexpected ApplicationError - glpsol is "
                       "enabled but not available: '%s'" % str(err))
         return
     except ConverterError:
         err = sys.exc_info()[1]
         if Executable("glpsol").available():
             self.fail("Unexpected ConverterError - glpsol is "
                       "enabled but not available: '%s'" % str(err))
         return
     self.assertTrue(ans[0][0].endswith("glpsol.lp"))
     with open(ans[0][0],
               'r') as f1, open(join(currdir, "test3_convert.lp"),
                                'r') as f2:
         for line1, line2 in zip_longest(f1, f2):
             if 'Problem' in line1:
                 continue
             self.assertEqual(line1, line2)
Beispiel #7
0
 def test_mock_nl1(self):
     #""" Convert from Pyomo to NL """
     arg = MockArg4()
     ans = convert_problem((arg, ProblemFormat.nl, arg), None,
                           [ProblemFormat.nl])
     self.assertNotEqual(re.match(".*tmp.*pyomo.nl$", ans[0][0]), None)
     os.remove(ans[0][0])
Beispiel #8
0
 def test_pyomo_lp1(self):
     #""" Convert from Pyomo to LP with file"""
     ans = convert_problem((
         join(currdir, 'model.py'),
         ProblemFormat.cpxlp,
     ), None, [ProblemFormat.cpxlp])
     self.assertNotEqual(re.match(".*tmp.*pyomo.lp$", ans[0][0]), None)
Beispiel #9
0
 def test_pyomo_nl1(self):
     #""" Convert from Pyomo to NL with file"""
     ans = convert_problem((
         join(currdir, 'model.py'),
         ProblemFormat.nl,
     ), None, [ProblemFormat.nl])
     self.assertNotEqual(re.match(".*tmp.*pyomo.nl$", ans[0][0]), None)
     os.remove(ans[0][0])
Beispiel #10
0
 def test_error6(self):
     #""" Cannot use pico_convert with more than one file """
     try:
         ans = convert_problem((join(currdir, "test4.nl"), "foo"), None,
                               [ProblemFormat.cpxlp])
         self.fail("Expected ConverterError exception")
     except ConverterError:
         pass
Beispiel #11
0
 def test_nl_lp1(self):
     #""" Convert from NL to LP """
     ans = convert_problem((join(currdir, "test4.nl"), ), None,
                           [ProblemFormat.cpxlp])
     self.assertEqual(ans[0][0][-15:], "pico_convert.lp")
     _out, _log = ans[0][0], join(currdir, "test1_convert.lp")
     self.assertTrue(cmp(_out, _log),
                     msg="Files %s and %s differ" % (_out, _log))
Beispiel #12
0
 def get_mock_cplex_shell(self, mock_model):
     solver = MockCPLEX()
     solver._problem_files, solver._problem_format, solver._smap_id = convert_problem(
         (mock_model, ),
         ProblemFormat.cpxlp,
         [ProblemFormat.cpxlp],
         has_capability=lambda x: True,
     )
     return solver
Beispiel #13
0
 def test_error10(self):
     #""" GLPSOL can only convert file data """
     try:
         arg = MockArg3()
         ans = convert_problem((arg, ProblemFormat.cpxlp, arg), None,
                               [ProblemFormat.cpxlp])
         self.fail(
             "This test didn't fail, but glpsol cannot handle objects.")
     except ConverterError:
         pass
Beispiel #14
0
 def test_mod_lp1(self):
     #""" Convert from MOD to LP """
     ans = convert_problem((join(currdir, "test3.mod"), ), None,
                           [ProblemFormat.cpxlp])
     self.assertTrue(ans[0][0].endswith("glpsol.lp"))
     with open(ans[0][0],
               'r') as f1, open(join(currdir, "test2_convert.lp"),
                                'r') as f2:
         for line1, line2 in zip_longest(f1, f2):
             if 'Problem' in line1:
                 continue
             self.assertEqual(line1, line2)
Beispiel #15
0
 def test_error9(self):
     #""" The Opt configuration has not been initialized """
     cmd = Executable("pico_convert").disable()
     try:
         ans = convert_problem((join(currdir, "test4.nl"), ), None,
                               [ProblemFormat.cpxlp])
         self.fail(
             "This test didn't fail, but pico_convert should not be defined."
         )
     except ConverterError:
         pass
     cmd = Executable("pico_convert").rehash()
Beispiel #16
0
 def test_mock_lp2(self):
     #""" Convert from NL to LP """
     arg = MockArg2()
     try:
         ans = convert_problem((arg, ), None, [ProblemFormat.cpxlp])
     except ConverterError:
         err = sys.exc_info()[1]
         if not Executable("pico_convert"):
             return
         else:
             self.fail("Expected ApplicationError because pico_convert "
                       "is not available: '%s'" % str(err))
     self.assertEqual(ans[0][0][-15:], "pico_convert.lp")
     os.remove(ans[0][0])
Beispiel #17
0
 def test_error8(self):
     #""" Error when source file cannot be found """
     try:
         ans = convert_problem((join(currdir, "unknown.nl"), ), None,
                               [ProblemFormat.cpxlp])
         self.fail("Expected ConverterError exception")
     except ApplicationError:
         err = sys.exc_info()[1]
         if not Executable("pico_convert"):
             self.fail("Expected ApplicationError because pico_convert "
                       "is not available: '%s'" % str(err))
         return
     except ConverterError:
         pass
Beispiel #18
0
 def Xtest_mock_mps1(self):
     #""" Convert from Pyomo to MPS """
     arg = MockArg4()
     try:
         ans = convert_problem((arg, ProblemFormat.mps, arg), None,
                               [ProblemFormat.mps])
     except ConverterError:
         err = sys.exc_info()[1]
         if not Executable("pico_convert"):
             return
         else:
             self.fail("Expected ApplicationError because pico_convert "
                       "is not available: '%s'" % str(err))
     self.assertEqual(ans[0][0][-16:], "pico_convert.mps")
     os.remove(ans[0][0])
Beispiel #19
0
 def test_pyomo_mps1(self):
     #""" Convert from Pyomo to MPS with file"""
     try:
         ans = convert_problem((
             join(currdir, 'model.py'),
             ProblemFormat.mps,
         ), None, [ProblemFormat.mps])
     except ConverterError:
         err = sys.exc_info()[1]
         if not Executable("pico_convert"):
             return
         else:
             self.fail("Expected ApplicationError because pico_convert "
                       "is not available: '%s'" % str(err))
     self.assertEqual(ans[0][0][-16:], "pico_convert.mps")
     os.remove(ans[0][0])
Beispiel #20
0
 def test_error11(self):
     #""" Cannot convert MOD that contains data """
     try:
         ans = convert_problem(
             (join(currdir, "test3.mod"), join(currdir, "test5.dat")), None,
             [ProblemFormat.cpxlp])
         self.fail(
             "Expected ConverterError exception because we provided a MOD file with a 'data;' declaration"
         )
     except ApplicationError:
         err = sys.exc_info()[1]
         if Executable("glpsol"):
             self.fail("Expected ApplicationError because glpsol "
                       "is not available: '%s'" % str(err))
         return
     except ConverterError:
         pass
Beispiel #21
0
 def test_mod_nl1(self):
     #""" Convert from MOD to NL """
     try:
         ans = convert_problem((join(currdir, "test3.mod"), ), None,
                               [ProblemFormat.nl])
     except ApplicationError:
         err = sys.exc_info()[1]
         if Executable("ampl").available():
             self.fail("Unexpected ApplicationError - ampl is "
                       "enabled but not available: '%s'" % str(err))
         return
     except ConverterError:
         err = sys.exc_info()[1]
         if Executable("ampl").available():
             self.fail("Unexpected ConverterError - ampl is "
                       "enabled but not available: '%s'" % str(err))
         return
     self.assertTrue(ans[0][0].endswith('.nl'))
Beispiel #22
0
 def test_nl_lp1(self):
     #""" Convert from NL to LP """
     try:
         ans = convert_problem((currdir + "test4.nl", ), None,
                               [ProblemFormat.cpxlp])
     except ApplicationError:
         err = sys.exc_info()[1]
         if Executable("pico_convert").available():
             self.fail("Unexpected ApplicationError - pico_convert is "
                       "enabled but not available: '%s'" % str(err))
         return
     except ConverterError:
         err = sys.exc_info()[1]
         if Executable("pico_convert").available():
             self.fail("Unexpected ConverterError - pico_convert is "
                       "enabled but not available: '%s'" % str(err))
         return
     self.assertEqual(ans[0][0][-15:], "pico_convert.lp")
     self.assertFileEqualsBaseline(ans[0][0], currdir + "test1_convert.lp")
Beispiel #23
0
 def test_nl_lp1(self):
     #""" Convert from NL to LP """
     try:
         ans = convert_problem((join(currdir, "test4.nl"), ), None,
                               [ProblemFormat.cpxlp])
     except ApplicationError:
         err = sys.exc_info()[1]
         if Executable("pico_convert").available():
             self.fail("Unexpected ApplicationError - pico_convert is "
                       "enabled but not available: '%s'" % str(err))
         return
     except ConverterError:
         err = sys.exc_info()[1]
         if Executable("pico_convert").available():
             self.fail("Unexpected ConverterError - pico_convert is "
                       "enabled but not available: '%s'" % str(err))
         return
     self.assertEqual(ans[0][0][-15:], "pico_convert.lp")
     _out, _log = ans[0][0], join(currdir, "test1_convert.lp")
     self.assertTrue(cmp(_out, _log),
                     msg="Files %s and %s differ" % (_out, _log))
Beispiel #24
0
 def test_mod_lp1(self):
     #""" Convert from MOD to LP """
     try:
         ans = convert_problem((currdir + "test3.mod", ), None,
                               [ProblemFormat.cpxlp])
     except ApplicationError:
         err = sys.exc_info()[1]
         if Executable("glpsol").available():
             self.fail("Unexpected ApplicationError - glpsol is "
                       "enabled but not available: '%s'" % str(err))
         return
     except ConverterError:
         err = sys.exc_info()[1]
         if Executable("glpsol").available():
             self.fail("Unexpected ConverterError - glpsol is "
                       "enabled but not available: '%s'" % str(err))
         return
     self.assertTrue(ans[0][0].endswith("glpsol.lp"))
     self.assertFileEqualsBaseline(ans[0][0],
                                   currdir + "test2_convert.lp",
                                   filter=filter)
Beispiel #25
0
 def test_nl_nl2(self):
     #""" Convert from NL to NL """
     ans = convert_problem(("test4.nl", "tmp.nl"), None, [ProblemFormat.nl])
     self.assertEqual(ans[0], ("test4.nl", "tmp.nl"))
Beispiel #26
0
 def test_mod_nl2(self):
     #""" Convert from MOD+DAT to NL """
     ans = convert_problem(
         (join(currdir, "test5.mod"), join(currdir, "test5.dat")), None,
         [ProblemFormat.nl])
     self.assertTrue(ans[0][0].endswith('.nl'))
Beispiel #27
0
 def test_mock_lp1(self):
     #""" Convert from Pyomo to LP """
     arg = MockArg()
     ans = convert_problem((arg, ProblemFormat.cpxlp, arg), None,
                           [ProblemFormat.cpxlp])
     self.assertNotEqual(re.match(".*tmp.*pyomo.lp$", ans[0][0]), None)