• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

LSDOlab / modopt / 15457293041

05 Jun 2025 02:50AM UTC coverage: 80.272% (+4.3%) from 75.929%
15457293041

push

github

anugrahjo
Fix a failing test

5725 of 7132 relevant lines covered (80.27%)

0.8 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

97.37
/modopt/core/optimize.py
1
from modopt.core.optimization_algorithms.opensqp import OpenSQP
1✔
2
from modopt.external_libraries.scipy import SLSQP, COBYLA, BFGS, LBFGSB, NelderMead, TrustConstr
1✔
3
from modopt.external_libraries.cobyqa import COBYQA
1✔
4
from modopt.external_libraries.pyslsqp import PySLSQP
1✔
5
from modopt.external_libraries.snopt import SNOPTc as SNOPT
1✔
6
from modopt.external_libraries.ipopt import IPOPT
1✔
7
from modopt.external_libraries.cvxopt import CVXOPT
1✔
8
from modopt.external_libraries.qpsolvers import ConvexQPSolvers
1✔
9

10
def optimize(prob, solver='SLSQP', **kwargs):
1✔
11
    """
12
    Optimize given problem with the specified solver.
13

14
    Only performant algorithms can be used with this function
15
    and is made available for users who are only interested in
16
    solving their optimization problems with solvers in the modOpt library.
17
    Developers of instructional algorithms are recommended to use
18
    ``Optimizer`` subclasses such as ``SLSQP``, ``Newton``, ``OpenSQP``, etc. directly.
19

20
    Parameters
21
    ----------
22
    prob : Problem or ProblemLite
23
        The problem to be solved.
24
        Needs to be an instance of ``Problem`` or ``ProblemLite``.
25
    solver : str, default='SLSQP'
26
        The solver to be used.
27
        Available solvers are ``'SLSQP'``, ``'PySLSQP'``, ``'COBYLA'``, ``'BFGS'``,
28
        ``'LBFGSB'``, ``'NelderMead'``, ``'COBYQA'``, ``'TrustConstr'``, ``'OpenSQP'``,
29
        ``'SNOPT'``, ``'IPOPT'``, ``'CVXOPT'``, and ``'ConvexQPSolvers'``.
30
    **kwargs
31
        Additional keyword arguments to be passed to the solver.
32

33
    Returns
34
    -------
35
    dict
36
        The results of the optimization.
37
    """
38
    valid_solvers = ['SLSQP', 'PySLSQP', 'COBYLA', 'BFGS',
1✔
39
                     'LBFGSB', 'NelderMead', 'COBYQA', 'TrustConstr', 'OpenSQP',
40
                     'SNOPT', 'IPOPT', 'CVXOPT', 'ConvexQPSolvers']
41
    if solver == 'SLSQP':
1✔
42
        optimizer = SLSQP(prob, **kwargs)
1✔
43
    elif solver == 'PySLSQP':
1✔
44
        optimizer = PySLSQP(prob, **kwargs)
1✔
45
    elif solver == 'COBYLA':
1✔
46
        optimizer = COBYLA(prob, **kwargs)
1✔
47
    elif solver == 'BFGS':
1✔
48
        optimizer = BFGS(prob, **kwargs)
1✔
49
    elif solver == 'LBFGSB':
1✔
50
        optimizer = LBFGSB(prob, **kwargs)
1✔
51
    elif solver == 'NelderMead':
1✔
52
        optimizer = NelderMead(prob, **kwargs)
1✔
53
    elif solver == 'COBYQA':
1✔
54
        optimizer = COBYQA(prob, **kwargs)
1✔
55
    elif solver == 'TrustConstr':
1✔
56
        optimizer = TrustConstr(prob, **kwargs)
1✔
57
    elif solver == 'OpenSQP':
1✔
58
        optimizer = OpenSQP(prob, **kwargs)
1✔
59
    elif solver == 'SNOPT':
1✔
60
        optimizer = SNOPT(prob, **kwargs)
×
61
    elif solver == 'IPOPT':
1✔
62
        optimizer = IPOPT(prob, **kwargs)
1✔
63
    elif solver == 'CVXOPT':
1✔
64
        optimizer = CVXOPT(prob, **kwargs)
1✔
65
    elif solver == 'ConvexQPSolvers':
1✔
66
        optimizer = ConvexQPSolvers(prob, **kwargs)
1✔
67
    else:
68
        raise ValueError(f"Invalid solver named '{solver}' is specified. Valid solvers are: {valid_solvers}.")
1✔
69

70
    return optimizer.solve()
1✔
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc