Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add support for MOI.ScalarNonlinearFunction #63

Merged
merged 4 commits into from
Aug 21, 2023
Merged

Add support for MOI.ScalarNonlinearFunction #63

merged 4 commits into from
Aug 21, 2023

Conversation

odow
Copy link
Member

@odow odow commented Aug 17, 2023

I don't have a local copy of BARON, so it's a bit messy to test this other than trying CI, but I hope this is all that is needed to support the new nonlinear in BARON.

@codecov
Copy link

codecov bot commented Aug 17, 2023

Codecov Report

Patch coverage: 88.88% and project coverage change: +0.25% 🎉

Comparison is base (44331c3) 80.33% compared to head (e9c5967) 80.59%.

Additional details and impacted files
@@            Coverage Diff             @@
##           master      #63      +/-   ##
==========================================
+ Coverage   80.33%   80.59%   +0.25%     
==========================================
  Files           9        9              
  Lines         534      541       +7     
==========================================
+ Hits          429      436       +7     
  Misses        105      105              
Files Changed Coverage Δ
src/moi/constraints.jl 97.50% <ø> (ø)
src/moi/objective.jl 93.33% <ø> (-0.79%) ⬇️
src/moi/util.jl 63.93% <88.88%> (+6.24%) ⬆️

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@hdavid16
Copy link

I just tested locally using the latest version of BARON (23.6.23). Note, that the compat on the test Project.toml has JuMP @ 0.23. I changed it to 1.13 prior to running the tests below. There are some syntax errors listed at the end of the log.

These tests were run on Windows with Julia 1.9.2.

(BARON) pkg> test
     Testing BARON
      Status `C:\Users\HD\AppData\Local\Temp\jl_DZC7Vu\Project.toml`
  [2e2ca445] BARON v0.8.1 `C:\Users\HD\Downloads\BARON.jl`
  [4076af6c] JuMP v1.13.0
  [b8f27783] MathOptInterface v1.19.0
  [8dfed614] Test `@stdlib/Test`
      Status `C:\Users\HD\AppData\Local\Temp\jl_DZC7Vu\Manifest.toml`
  [2e2ca445] BARON v0.8.1 `C:\Users\HD\Downloads\BARON.jl`
  [6e4b80f9] BenchmarkTools v1.3.2
⌅ [523fee87] CodecBzip2 v0.7.2
  [944b1d66] CodecZlib v0.7.2
  [bbf7d656] CommonSubexpressions v0.3.0
  [34da2185] Compat v4.9.0
  [864edb3b] DataStructures v0.18.15
  [163ba53b] DiffResults v1.1.0
  [b552c78f] DiffRules v1.15.1
  [ffbed154] DocStringExtensions v0.9.3
  [f6369f11] ForwardDiff v0.10.36
  [92d709cd] IrrationalConstants v0.2.2
  [692b3bcd] JLLWrappers v1.5.0
  [682c06a0] JSON v0.21.4
  [4076af6c] JuMP v1.13.0
  [2ab3a3ac] LogExpFunctions v0.3.24
  [1914dd2f] MacroTools v0.5.10
  [b8f27783] MathOptInterface v1.19.0
  [d8a4904e] MutableArithmetics v1.3.0
  [77ba4419] NaNMath v1.0.2
  [bac558e1] OrderedCollections v1.6.2
  [69de0a69] Parsers v2.7.2
  [aea7be01] PrecompileTools v1.1.2
  [21216c6a] Preferences v1.4.0
  [66db9d55] SnoopPrecompile v1.0.3
  [276daf66] SpecialFunctions v2.3.1
  [1e83bf80] StaticArraysCore v1.4.2
  [3bb67fe8] TranscodingStreams v0.9.13
  [6e34b625] Bzip2_jll v1.0.8+0
  [efe28fd5] OpenSpecFun_jll v0.5.5+0
  [0dad84c5] ArgTools v1.1.1 `@stdlib/ArgTools`
  [56f22d72] Artifacts `@stdlib/Artifacts`
  [2a0f44e3] Base64 `@stdlib/Base64`
  [ade2ca70] Dates `@stdlib/Dates`
  [f43a241f] Downloads v1.6.0 `@stdlib/Downloads`
  [7b1f6079] FileWatching `@stdlib/FileWatching`
  [b77e0a4c] InteractiveUtils `@stdlib/InteractiveUtils`
  [b27032c2] LibCURL v0.6.3 `@stdlib/LibCURL`
  [76f85450] LibGit2 `@stdlib/LibGit2`
  [8f399da3] Libdl `@stdlib/Libdl`
  [37e2e46d] LinearAlgebra `@stdlib/LinearAlgebra`
  [56ddb016] Logging `@stdlib/Logging`
  [d6f4376e] Markdown `@stdlib/Markdown`
  [a63ad114] Mmap `@stdlib/Mmap`
  [ca575930] NetworkOptions v1.2.0 `@stdlib/NetworkOptions`
  [44cfe95a] Pkg v1.9.2 `@stdlib/Pkg`
  [de0858da] Printf `@stdlib/Printf`
  [9abbd945] Profile `@stdlib/Profile`
  [3fa0cd96] REPL `@stdlib/REPL`
  [9a3f8284] Random `@stdlib/Random`
  [ea8e919c] SHA v0.7.0 `@stdlib/SHA`
  [9e88b42a] Serialization `@stdlib/Serialization`
  [6462fe0b] Sockets `@stdlib/Sockets`
  [2f01184e] SparseArrays `@stdlib/SparseArrays`
  [10745b16] Statistics v1.9.0 `@stdlib/Statistics`
  [fa267f1f] TOML v1.0.3 `@stdlib/TOML`
  [a4e569a6] Tar v1.10.0 `@stdlib/Tar`
  [8dfed614] Test `@stdlib/Test`
  [cf7118a7] UUIDs `@stdlib/UUIDs`
  [4ec0a83e] Unicode `@stdlib/Unicode`
  [e66e0078] CompilerSupportLibraries_jll v1.0.5+0 `@stdlib/CompilerSupportLibraries_jll`
  [deac9b47] LibCURL_jll v7.84.0+0 `@stdlib/LibCURL_jll`
  [29816b5a] LibSSH2_jll v1.10.2+0 `@stdlib/LibSSH2_jll`
  [c8ffd9c3] MbedTLS_jll v2.28.2+0 `@stdlib/MbedTLS_jll`
  [14a3606d] MozillaCACerts_jll v2022.10.11 `@stdlib/MozillaCACerts_jll`
  [4536629a] OpenBLAS_jll v0.3.21+4 `@stdlib/OpenBLAS_jll`
  [05823500] OpenLibm_jll v0.8.1+0 `@stdlib/OpenLibm_jll`
  [bea87d4a] SuiteSparse_jll v5.10.1+6 `@stdlib/SuiteSparse_jll`
  [83775a58] Zlib_jll v1.2.13+0 `@stdlib/Zlib_jll`
  [8e850b90] libblastrampoline_jll v5.8.0+0 `@stdlib/libblastrampoline_jll`
  [8e850ede] nghttp2_jll v1.48.0+0 `@stdlib/nghttp2_jll`
  [3f19e933] p7zip_jll v17.4.0+0 `@stdlib/p7zip_jll`
        Info Packages marked with ⌅ have new versions available but compatibility constraints restrict them from upgrading.
     Testing Running tests...
===========================================================================
 BARON version 23.6.23. Built: WIN-64 Fri Jun 23 12:59:09 EDT 2023

 BARON is a product of The Optimization Firm.
 For information on BARON, see https://minlp.com/about-baron
C://baron/baron.exe: syntax error on line 32
 Licensee: ***

 If you use this software, please cite publications from
 https://minlp.com/baron-publications, such as:

 Khajavirad, A. and N. V. Sahinidis,
 A hybrid LP/NLP paradigm for global optimization relaxations,
 Mathematical Programming Computation, 10, 383-421, 2018.
===========================================================================
 This BARON run may utilize the following subsolver(s)
 For LP/MIP/QP: CLP/CBC
 For NLP: IPOPT, FILTERSQP
===========================================================================
 Preprocessing found feasible solution with value 7.92406
 Preprocessing found feasible solution with value 7.75739
 Problem solved during preprocessing
 Lower bound is    7.75739

 Calculating duals

                         *** Normal completion ***

 Wall clock time:                     0.10
 Total CPU time used:                 0.00

 Total no. of BaR iterations:      -1
 Best solution found at node:      -1
 Max. no. of nodes in memory:       0

 All done
===========================================================================
===========================================================================
 BARON version 23.6.23. Built: WIN-64 Fri Jun 23 12:59:09 EDT 2023

 BARON is a product of The Optimization Firm.
 For information on BARON, see https://minlp.com/about-baron
 Licensee: ***

 If you use this software, please cite publications from
 https://minlp.com/baron-publications, such as:

 Kilinc, M. and N. V. Sahinidis, Exploiting integrality in the global
 optimization of mixed-integer nonlinear programming problems in BARON,
 Optimization Methods and Software, 33, 540-562, 2018.
===========================================================================
 This BARON run may utilize the following subsolver(s)
 For LP/MIP/QP: CLP/CBC
 For NLP: IPOPT, FILTERSQP
===========================================================================
 Preprocessing found feasible solution with value 10.0000
 Doing local search
 Solving bounding LP
 Starting multi-start local search
 Done with local search
===========================================================================
  Iteration    Open nodes         Time (s)    Lower bound      Upper bound
*         1             1             0.02     -37.8684          6.00976       
          1             0             0.03      6.00975          6.00976       

 Calculating duals

                         *** Normal completion ***

 Wall clock time:                     0.12
 Total CPU time used:                 0.03

 Total no. of BaR iterations:       1
 Best solution found at node:       1
 Max. no. of nodes in memory:       1

 All done
===========================================================================
===========================================================================
 BARON version 23.6.23. Built: WIN-64 Fri Jun 23 12:59:09 EDT 2023

 BARON is a product of The Optimization Firm.
 For information on BARON, see https://minlp.com/about-baron
 Licensee: ***

 If you use this software, please cite publications from
 https://minlp.com/baron-publications, such as:

 Khajavirad, A. and N. V. Sahinidis,
 A hybrid LP/NLP paradigm for global optimization relaxations,
 Mathematical Programming Computation, 10, 383-421, 2018.
===========================================================================
 This BARON run may utilize the following subsolver(s)
 For LP/MIP/QP: CLP/CBC
 For NLP: IPOPT, FILTERSQP
===========================================================================
 Preprocessing found feasible solution with value 0.00000
 Doing local search
 Preprocessing found feasible solution with value -6.66667
 Solving bounding LP
 Problem solved during preprocessing
 Lower bound is   -6.66667

 Calculating duals

                         *** Normal completion ***

 Wall clock time:                     0.08
 Total CPU time used:                 0.03

 Total no. of BaR iterations:      -1
 Best solution found at node:      -1
 Max. no. of nodes in memory:       0

 All done
===========================================================================
===========================================================================
 BARON version 23.6.23. Built: WIN-64 Fri Jun 23 12:59:09 EDT 2023

 BARON is a product of The Optimization Firm.
 For information on BARON, see https://minlp.com/about-baron
 Licensee: ***

 If you use this software, please cite publications from
 https://minlp.com/baron-publications, such as:

 Khajavirad, A. and N. V. Sahinidis,
 A hybrid LP/NLP paradigm for global optimization relaxations,
 Mathematical Programming Computation, 10, 383-421, 2018.
===========================================================================
 This BARON run may utilize the following subsolver(s)
 For LP/MIP/QP: CLP/CBC
 For NLP: IPOPT, FILTERSQP
===========================================================================
 Doing local search
 Preprocessing found feasible solution with value -201.159
 Problem solved during preprocessing
 Lower bound is   -201.160

 Calculating duals

                         *** Normal completion ***

 Wall clock time:                     0.06
 Total CPU time used:                 0.00

 Total no. of BaR iterations:      -1
 Best solution found at node:      -1
 Max. no. of nodes in memory:       0

 All done
===========================================================================
===========================================================================
 BARON version 23.6.23. Built: WIN-64 Fri Jun 23 12:59:09 EDT 2023

 BARON is a product of The Optimization Firm.
 For information on BARON, see https://minlp.com/about-baron
 Licensee: ***

 If you use this software, please cite publications from
 https://minlp.com/baron-publications, such as:

 Khajavirad, A. and N. V. Sahinidis,
 A hybrid LP/NLP paradigm for global optimization relaxations,
 Mathematical Programming Computation, 10, 383-421, 2018.
===========================================================================
 This BARON run may utilize the following subsolver(s)
 For LP/MIP/QP: CLP/CBC
 For NLP: IPOPT, FILTERSQP
===========================================================================
 Doing local search
 Preprocessing found feasible solution with value 38.0343
 Solving bounding LP
 Starting multi-start local search
 Preprocessing found feasible solution with value 38.0343
 Preprocessing found feasible solution with value 38.0343
 Done with local search
===========================================================================
  Iteration    Open nodes         Time (s)    Lower bound      Upper bound
          1             0             0.03      38.0342          38.0343

                         *** Normal completion ***

 Wall clock time:                     0.11
 Total CPU time used:                 0.03

 Total no. of BaR iterations:       1
 Best solution found at node:      -1
 Max. no. of nodes in memory:       1

 All done
===========================================================================
Test Summary:                   | Pass  Total  Time
UnrecognizedExpressionException |    1      1  0.2s
Test Summary:     |Time
Trig unrecognized | None  0.0s
┌ Warning: The exclude string "test_unbounded_MIN_SENSE" is ambiguous because it exactly matches a test, but it also partially matches another. Use `r"^test_unbounded_MIN_SENSE$"` to exclude the exactly matching test, or `r"test_unbounded_MIN_SENSE.*"` to exclude all partially matching tests.
└ @ MathOptInterface.Test C:\Users\HD\.julia\packages\MathOptInterface\tWT4o\src\Test\Test.jl:208
┌ Warning: The exclude string "test_unbounded_MAX_SENSE" is ambiguous because it exactly matches a test, but it also partially matches another. Use `r"^test_unbounded_MAX_SENSE$"` to exclude the exactly matching test, or `r"test_unbounded_MAX_SENSE.*"` to exclude all partially matching tests.
└ @ MathOptInterface.Test C:\Users\HD\.julia\packages\MathOptInterface\tWT4o\src\Test\Test.jl:208
C://baron/baron.exe: syntax error on line 24
C://baron/baron.exe: syntax error on line 19
C://baron/baron.exe: syntax error on line 20
C://baron/baron.exe: syntax error on line 34
C://baron/baron.exe: syntax error on line 34
C://baron/baron.exe: syntax error on line 34
C://baron/baron.exe: syntax error on line 19
C://baron/baron.exe: syntax error on line 19
C://baron/baron.exe: syntax error on line 19
Test Summary: | Pass  Total      Time
MOI Unit      | 3046   3046  12m12.1s
     Testing BARON tests passed 

@odow
Copy link
Member Author

odow commented Aug 18, 2023

We test in CI, so I can see that the tests are passing.

But what about regular models? Can you have a play with the JuMP#od/nlp-expr branch?

@odow
Copy link
Member Author

odow commented Aug 18, 2023

Are the syntax errors important? If they're errors, why are the tests still passing?

@hdavid16
Copy link

No idea about the syntax errors. I've had issues with BARON in the past when running the latest version. I'm going to test with the one before that one to see if the syntax errors are still coming up.

Also, is there something specific you want tested on the nlp-expr branch on JuMP with BARON?

@hdavid16
Copy link

Tested on BARON 23.1.5, which also had the syntax errors and one of the tests didn't pass:

test_linear_DUAL_INFEASIBLE: Test Failed at C:\Users\HD\.julia\packages\MathOptInterface\tWT4o\src\Test\test_linear.jl:1436
  Expression: status in (MOI.DUAL_INFEASIBLE, MOI.NORM_LIMIT, MOI.INFEASIBLE_OR_UNBOUNDED)
   Evaluated: MathOptInterface.OPTIMAL in (MathOptInterface.DUAL_INFEASIBLE, MathOptInterface.NORM_LIMIT, MathOptInterface.INFEASIBLE_OR_UNBOUNDED)

I tested with the 2022 version (22.9.30), and the syntax errors are still there, with 10 tests failing:

C://baron/baron.exe: syntax error on line 24
C://baron/baron.exe: syntax error on line 19
test_linear_integration: Test Failed at C:\Users\HD\.julia\packages\MathOptInterface\tWT4o\src\Test\test_linear.jl:102
  Expression: (MOI.get(model, MOI.ObjectiveValue()), T(-1), config)
   Evaluated: (-0.1, -1.0, MathOptInterface.Test.Config{Float64}(0.001, 0.001, MathOptInterface.OPTIMAL, MathOptInterface.INFEASIBLE, Any[MathOptInterface.ConstraintBasisStatus, MathOptInterface.DualObjectiveValue, MathOptInterface.ObjectiveBound, MathOptInterface.DualStatus, MathOptInterface.ConstraintDual]))

Stacktrace:
 [1] macro expansion
   @ C:\Users\HD\.julia\juliaup\julia-1.9.2+0.x64.w64.mingw32\share\julia\stdlib\v1.9\Test\src\Test.jl:478 [inlined]
 [2] test_linear_integration(model::MathOptInterface.Bridges.LazyBridgeOptimizer{MathOptInterface.Utilities.CachingOptimizer{BARON.Optimizer, MathOptInterface.Utilities.UniversalFallback{MathOptInterface.Utilities.Model{Float64}}}}, config::MathOptInterface.Test.Config{Float64})
   @ MathOptInterface.Test C:\Users\HD\.julia\packages\MathOptInterface\tWT4o\src\Test\test_linear.jl:102
test_linear_integration: Test Failed at C:\Users\HD\.julia\packages\MathOptInterface\tWT4o\src\Test\test_linear.jl:106
  Expression: (MOI.get(model, MOI.VariablePrimal(), v), T[1, 0], config)
   Evaluated: ([0.1, 0.0], [1.0, 0.0], MathOptInterface.Test.Config{Float64}(0.001, 0.001, MathOptInterface.OPTIMAL, MathOptInterface.INFEASIBLE, Any[MathOptInterface.ConstraintBasisStatus, MathOptInterface.DualObjectiveValue, MathOptInterface.ObjectiveBound, MathOptInterface.DualStatus, MathOptInterface.ConstraintDual]))

Stacktrace:
 [1] macro expansion
   @ C:\Users\HD\.julia\juliaup\julia-1.9.2+0.x64.w64.mingw32\share\julia\stdlib\v1.9\Test\src\Test.jl:478 [inlined]
 [2] test_linear_integration(model::MathOptInterface.Bridges.LazyBridgeOptimizer{MathOptInterface.Utilities.CachingOptimizer{BARON.Optimizer, MathOptInterface.Utilities.UniversalFallback{MathOptInterface.Utilities.Model{Float64}}}}, config::MathOptInterface.Test.Config{Float64})
   @ MathOptInterface.Test C:\Users\HD\.julia\packages\MathOptInterface\tWT4o\src\Test\test_linear.jl:106
test_linear_integration: Test Failed at C:\Users\HD\.julia\packages\MathOptInterface\tWT4o\src\Test\test_linear.jl:107
  Expression: (MOI.get(model, MOI.ConstraintPrimal(), c), T(1), config)
   Evaluated: (0.1, 1.0, MathOptInterface.Test.Config{Float64}(0.001, 0.001, MathOptInterface.OPTIMAL, MathOptInterface.INFEASIBLE, Any[MathOptInterface.ConstraintBasisStatus, MathOptInterface.DualObjectiveValue, MathOptInterface.ObjectiveBound, MathOptInterface.DualStatus, MathOptInterface.ConstraintDual]))

Stacktrace:
 [1] macro expansion
   @ C:\Users\HD\.julia\juliaup\julia-1.9.2+0.x64.w64.mingw32\share\julia\stdlib\v1.9\Test\src\Test.jl:478 [inlined]
 [2] test_linear_integration(model::MathOptInterface.Bridges.LazyBridgeOptimizer{MathOptInterface.Utilities.CachingOptimizer{BARON.Optimizer, MathOptInterface.Utilities.UniversalFallback{MathOptInterface.Utilities.Model{Float64}}}}, config::MathOptInterface.Test.Config{Float64})
   @ MathOptInterface.Test C:\Users\HD\.julia\packages\MathOptInterface\tWT4o\src\Test\test_linear.jl:107
test_linear_integration: Test Failed at C:\Users\HD\.julia\packages\MathOptInterface\tWT4o\src\Test\test_linear.jl:131
  Expression: (MOI.get(model, MOI.ObjectiveValue()), T(1), config)
   Evaluated: (0.1, 1.0, MathOptInterface.Test.Config{Float64}(0.001, 0.001, MathOptInterface.OPTIMAL, MathOptInterface.INFEASIBLE, Any[MathOptInterface.ConstraintBasisStatus, MathOptInterface.DualObjectiveValue, MathOptInterface.ObjectiveBound, MathOptInterface.DualStatus, MathOptInterface.ConstraintDual]))

Stacktrace:
 [1] macro expansion
   @ C:\Users\HD\.julia\juliaup\julia-1.9.2+0.x64.w64.mingw32\share\julia\stdlib\v1.9\Test\src\Test.jl:478 [inlined]
 [2] test_linear_integration(model::MathOptInterface.Bridges.LazyBridgeOptimizer{MathOptInterface.Utilities.CachingOptimizer{BARON.Optimizer, MathOptInterface.Utilities.UniversalFallback{MathOptInterface.Utilities.Model{Float64}}}}, config::MathOptInterface.Test.Config{Float64})
   @ MathOptInterface.Test C:\Users\HD\.julia\packages\MathOptInterface\tWT4o\src\Test\test_linear.jl:131
test_linear_integration: Test Failed at C:\Users\HD\.julia\packages\MathOptInterface\tWT4o\src\Test\test_linear.jl:135
  Expression: (MOI.get(model, MOI.VariablePrimal(), v), T[1, 0], config)
   Evaluated: ([0.1, 0.0], [1.0, 0.0], MathOptInterface.Test.Config{Float64}(0.001, 0.001, MathOptInterface.OPTIMAL, MathOptInterface.INFEASIBLE, Any[MathOptInterface.ConstraintBasisStatus, MathOptInterface.DualObjectiveValue, MathOptInterface.ObjectiveBound, MathOptInterface.DualStatus, MathOptInterface.ConstraintDual]))

Stacktrace:
 [1] macro expansion
   @ C:\Users\HD\.julia\juliaup\julia-1.9.2+0.x64.w64.mingw32\share\julia\stdlib\v1.9\Test\src\Test.jl:478 [inlined]
 [2] test_linear_integration(model::MathOptInterface.Bridges.LazyBridgeOptimizer{MathOptInterface.Utilities.CachingOptimizer{BARON.Optimizer, MathOptInterface.Utilities.UniversalFallback{MathOptInterface.Utilities.Model{Float64}}}}, config::MathOptInterface.Test.Config{Float64})
   @ MathOptInterface.Test C:\Users\HD\.julia\packages\MathOptInterface\tWT4o\src\Test\test_linear.jl:135
test_linear_integration_2: Test Failed at C:\Users\HD\.julia\packages\MathOptInterface\tWT4o\src\Test\test_linear.jl:541
  Expression: (MOI.get(model, MOI.ObjectiveValue()), T(-1), atol = atol, rtol = rtol)
   Evaluated: -0.1  -1.0 (atol=0.001, rtol=0.001)

Stacktrace:
 [1] macro expansion
   @ C:\Users\HD\.julia\juliaup\julia-1.9.2+0.x64.w64.mingw32\share\julia\stdlib\v1.9\Test\src\Test.jl:478 [inlined]
 [2] test_linear_integration_2(model::MathOptInterface.Bridges.LazyBridgeOptimizer{MathOptInterface.Utilities.CachingOptimizer{BARON.Optimizer, MathOptInterface.Utilities.UniversalFallback{MathOptInterface.Utilities.Model{Float64}}}}, config::MathOptInterface.Test.Config{Float64})
   @ MathOptInterface.Test C:\Users\HD\.julia\packages\MathOptInterface\tWT4o\src\Test\test_linear.jl:541
test_linear_integration_2: Test Failed at C:\Users\HD\.julia\packages\MathOptInterface\tWT4o\src\Test\test_linear.jl:547
  Expression: (MOI.get(model, MOI.VariablePrimal(), x), T(1), atol = atol, rtol = rtol)
   Evaluated: 0.1  1.0 (atol=0.001, rtol=0.001)

Stacktrace:
 [1] macro expansion
   @ C:\Users\HD\.julia\juliaup\julia-1.9.2+0.x64.w64.mingw32\share\julia\stdlib\v1.9\Test\src\Test.jl:478 [inlined]
 [2] test_linear_integration_2(model::MathOptInterface.Bridges.LazyBridgeOptimizer{MathOptInterface.Utilities.CachingOptimizer{BARON.Optimizer, MathOptInterface.Utilities.UniversalFallback{MathOptInterface.Utilities.Model{Float64}}}}, config::MathOptInterface.Test.Config{Float64})
   @ MathOptInterface.Test C:\Users\HD\.julia\packages\MathOptInterface\tWT4o\src\Test\test_linear.jl:547
test_linear_integration_2: Test Failed at C:\Users\HD\.julia\packages\MathOptInterface\tWT4o\src\Test\test_linear.jl:551
  Expression: (MOI.get(model, MOI.ConstraintPrimal(), c), T(1), atol = atol, rtol = rtol)
   Evaluated: 0.1  1.0 (atol=0.001, rtol=0.001)

Stacktrace:
 [1] macro expansion
   @ C:\Users\HD\.julia\juliaup\julia-1.9.2+0.x64.w64.mingw32\share\julia\stdlib\v1.9\Test\src\Test.jl:478 [inlined]
 [2] test_linear_integration_2(model::MathOptInterface.Bridges.LazyBridgeOptimizer{MathOptInterface.Utilities.CachingOptimizer{BARON.Optimizer, MathOptInterface.Utilities.UniversalFallback{MathOptInterface.Utilities.Model{Float64}}}}, config::MathOptInterface.Test.Config{Float64})
   @ MathOptInterface.Test C:\Users\HD\.julia\packages\MathOptInterface\tWT4o\src\Test\test_linear.jl:551
C://baron/baron.exe: syntax error on line 20
C://baron/baron.exe: syntax error on line 34
C://baron/baron.exe: syntax error on line 34
C://baron/baron.exe: syntax error on line 34
C://baron/baron.exe: syntax error on line 19
C://baron/baron.exe: syntax error on line 19
C://baron/baron.exe: syntax error on line 19
test_variable_solve_Integer_with_upper_bound: Test Failed at C:\Users\HD\.julia\packages\MathOptInterface\tWT4o\src\Test\Test.jl:397
  Expression: isapprox(MOI.get(model, MOI.ObjectiveValue()), objective_value, config)
   Evaluated: isapprox(0.0, -2.0, MathOptInterface.Test.Config{Float64}(0.001, 0.001, MathOptInterface.OPTIMAL, MathOptInterface.INFEASIBLE, Any[MathOptInterface.ConstraintBasisStatus, MathOptInterface.DualObjectiveValue, MathOptInterface.ObjectiveBound, MathOptInterface.DualStatus, MathOptInterface.ConstraintDual]))

Stacktrace:
 [1] macro expansion
   @ C:\Users\HD\.julia\juliaup\julia-1.9.2+0.x64.w64.mingw32\share\julia\stdlib\v1.9\Test\src\Test.jl:478 [inlined]
 [2] _test_model_solution(model::MathOptInterface.Bridges.LazyBridgeOptimizer{MathOptInterface.Utilities.CachingOptimizer{BARON.Optimizer, MathOptInterface.Utilities.UniversalFallback{MathOptInterface.Utilities.Model{Float64}}}}, config::MathOptInterface.Test.Config{Float64}; objective_value::Float64, variable_primal::Vector{Tuple{MathOptInterface.VariableIndex, Float64}}, constraint_primal::Nothing, constraint_dual::Nothing)
   @ MathOptInterface.Test C:\Users\HD\.julia\packages\MathOptInterface\tWT4o\src\Test\Test.jl:397
test_variable_solve_Integer_with_upper_bound: Test Failed at C:\Users\HD\.julia\packages\MathOptInterface\tWT4o\src\Test\Test.jl:407
  Expression: isapprox(MOI.get(model, MOI.VariablePrimal(), index), solution_value, config)
   Evaluated: isapprox(0.0, 1.0, MathOptInterface.Test.Config{Float64}(0.001, 0.001, MathOptInterface.OPTIMAL, MathOptInterface.INFEASIBLE, Any[MathOptInterface.ConstraintBasisStatus, MathOptInterface.DualObjectiveValue, MathOptInterface.ObjectiveBound, MathOptInterface.DualStatus, MathOptInterface.ConstraintDual]))

Stacktrace:
 [1] macro expansion
   @ C:\Users\HD\.julia\juliaup\julia-1.9.2+0.x64.w64.mingw32\share\julia\stdlib\v1.9\Test\src\Test.jl:478 [inlined]
 [2] _test_model_solution(model::MathOptInterface.Bridges.LazyBridgeOptimizer{MathOptInterface.Utilities.CachingOptimizer{BARON.Optimizer, MathOptInterface.Utilities.UniversalFallback{MathOptInterface.Utilities.Model{Float64}}}}, config::MathOptInterface.Test.Config{Float64}; objective_value::Float64, variable_primal::Vector{Tuple{MathOptInterface.VariableIndex, Float64}}, constraint_primal::Nothing, constraint_dual::Nothing)
   @ MathOptInterface.Test C:\Users\HD\.julia\packages\MathOptInterface\tWT4o\src\Test\Test.jl:407

So not sure what is going on in the recent BARON releases. Since the tests still pass on the latest BARON, I'm not sure where the issues are so that I can bring this up to the folks at BARON...

@odow
Copy link
Member Author

odow commented Aug 18, 2023

Also, is there something specific you want tested on the nlp-expr branch on JuMP with BARON?

Just, does it work for a few problems? Should I merge this PR as-is and declare success, or does it need something else?

@odow
Copy link
Member Author

odow commented Aug 21, 2023

Merging because this is a feature addition and it seems like it works. We can always improve in future.

@odow odow merged commit f9d16d4 into master Aug 21, 2023
5 checks passed
@odow odow deleted the od/nonlinear branch August 21, 2023 22:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging this pull request may close these issues.

2 participants