dummy-link

MINLPTests

Unit and Integration Tests for JuMP NLP and MINLP solvers

Readme

MINLPTests.jl

master: Build Status

This is a collection of JuMP models for testing nonlinear/polynomial solvers with and without discrete variables in JuMP.

This version is compatible with the current release of JuMP (using MathOptInterface). Past versions are compatable with previous releases of JuMP (using MathProgBase).

Test Design Guidelines

  • The tests are organized into broad categories based on the scope of typical solvers (e.g. continuous, convex functions, polynomial, ...)
  • Unit tests for JuMP integration testing should be "easy" models. For example, it should be possible for a non-global solver to find the global solution in these tests
  • Mathematical property tests can be more difficult but should strive to be as simple as possible

Test Naming Conventions

Directories:

  • nlp - nonconvex NLP models
  • nlp-cvx - convex NLP models
  • nlp-mi - nonconvex MINLP models
  • nlp-mi-cvx - convex MINLP models
  • poly - nonconvex polynomial models
  • poly-cvx - convex polynomial models
  • poly-mi - nonconvex polynomial models
  • poly-mi-cvx - convex polynomial models

File Names:

  • 0xx_yyz - unit tests
  • 1xx_yyz - 2D mathematical properties
  • 2xx_yyz - 3D mathematical properties
  • 5xx_yyz - nD mathematical properties
  • 9xx_yyz - integration tests

z indicates a variant of a base problem

Test Coverage Overview

NLP

  • non-linear model without stating values (nlp/003_010)
  • non-linear model with stating values (nlp/002_010)
  • non-linear model partial stating values (nlp/001_010)

  • non-linear objective only (nlp/001_010)

  • non-linear constraints only (nlp/002_010)

  • non-linear objective and constraints (nlp/003_010)

  • non-linear objective + linear constraints (nlp/004_010)

  • non-linear objective + linear constraints (as NL) (nlp/004_011)

  • non-linear objective + quard constraints (nlp/004_010)

  • non-linear objective + quard constraints (as NL) (nlp/004_011)

  • minimization objective (nlp/001_010)

  • maximization objective (nlp/003_010)

  • linear objective + non-linear constraints (nlp/003_012)

  • linear objective (as NL) + non-linear constraints (nlp/003_013)

  • quad objective + non-linear constraints (nlp/003_014)

  • quad objective (as NL) + non-linear constraints (nlp/003_015)

  • non-linear objective (with offset const) + non-linear constraints (nlp/003_011)

  • objective (with offset const) + non-linear constraints (nlp/003_016)

  • status infeasible (nlp/007_010)

  • get duals (nlp/008_010, 008_011)

  • non-linear functions

    • * (nlp/004_010)
    • / (nlp/005_010)
    • \ (nlp/005_011)
    • ^ (nlp/001_010)
    • sqrt (nlp/003_010)
    • abs (nlp/004_010)
    • exp (nlp/001_010)
    • log (nlp/002_010)
    • sin (nlp/003_010)
    • cos (nlp/001_010)
    • tan (nlp/004_010)
    • user defined (nlp/006_010)

MINLP

  • non-linear integer variable (nlp-mi/001_010)
  • non-linear binary variable (nlp-mi/002_010)
  • mix of continuous and discrete variables (nlp-mi/001_010)
  • non-linear model without stating values (nlp-mi/003_010)
  • non-linear model with stating values (nlp-mi/002_010)
  • non-linear model partial stating values (nlp-mi/001_010)

  • non-linear objective only (nlp-mi/001_010)

  • non-linear constraints only (nlp-mi/002_010)

  • non-linear objective and constraints (nlp-mi/003_010)

  • non-linear objective + linear constraints (nlp-mi/004_010)

  • non-linear objective + linear constraints (as NL) (nlp-mi/004_011)

  • non-linear objective + quard constraints (nlp-mi/004_010)

  • non-linear objective + quard constraints (as NL) (nlp-mi/004_011)

  • minimization objective (nlp-mi/001_010)

  • maximization objective (nlp-mi/003_010)

  • linear objective + non-linear constraints (nlp-mi/003_012)

  • linear objective (as NL) + non-linear constraints (nlp-mi/003_013)

  • quad objective + non-linear constraints (nlp-mi/003_014)

  • quad objective (as NL) + non-linear constraints (nlp-mi/003_015)

  • non-linear objective (with offset const) + non-linear constraints (nlp-mi/003_011)

  • objective (with offset const) + non-linear constraints (nlp-mi/003_016)

  • status infeasible (nlp-mi/007_010, nlp-mi/070_020)

  • non-linear functions

    • * (nlp-mi/004_010)
    • / (nlp-mi/005_010)
    • \ (nlp-mi/005_011)
    • ^ (nlp-mi/001_010)
    • sqrt (nlp-mi/003_010)
    • abs (nlp-mi/004_010)
    • exp (nlp-mi/001_010)
    • log (nlp-mi/002_010)
    • sin (nlp-mi/003_010)
    • cos (nlp-mi/001_010)
    • tan (nlp-mi/004_010)
    • user defined (nlp-mi/006_010)

Untested Julia Functions

A complete list is available here

  • roots
    • cbrt
    • hypot
  • exponentials
    • log2
    • log10
    • exp2
    • exp10
  • transcendentals
    • sincos
    • sind, cosd, tand
    • sinh, cosh, tanh
    • asin, acos, atan (x and x,y)
    • sec, csc, cot
    • asec, acsc, acot
    • sech, csch, coth
    • asinh, acosh, atanh
    • asech, acsch, acoth
  • discontinuous
    • rem
    • mod
    • ceil
    • floor
    • min
    • max

First Commit

01/13/2019

Last Touched

9 days ago

Commits

52 commits

Used By: