Skip to content

MOI.Test: make it easy to understand what tests are run #1029

Closed
@odow

Description

@odow

In discussions with @kdheepak and @jd-lara:

Calling unittest(solver, config) (etc) is a little opaque with respect to what tests are actually run.

  • Add verbose flag that prints out the name of the tests
  • Make it easy to obtain a list of tests that will be run so you can add them to exclude when developing the wrapper of a new solver
  • Or document that the function calls the dictionary of the same name, e.g.,:
julia> using MathOptInterface

julia> MathOptInterface.Test.unittests
Dict{String,Function} with 44 entries:
  "number_threads"        => number_threads
  "solve_qcp_edge_cases"  => solve_qcp_edge_cases
  "solve_zero_one_with_b… => solve_zero_one_with_bounds_1
  "solve_with_lowerbound" => solve_with_lowerbound
  "delete_nonnegative_va => delete_nonnegative_variables
  "solve_affine_greatert… => solve_affine_greaterthan
  "add_variable"          => add_variable
  "solve_singlevariable_ => solve_singlevariable_obj
  "solve_duplicate_terms… => solve_duplicate_terms_vector_affine
  "solve_unbounded_model" => solve_unbounded_model
  "solve_constant_obj"    => solve_constant_obj
  "solve_single_variable => solve_single_variable_dual_max
  "solve_single_variable… => solve_single_variable_dual_min
  "solver_name"           => solver_name
  "delete_variable"       => delete_variable
  "solve_time"            => solve_time
  "solve_duplicate_terms => solve_duplicate_terms_obj
  "delete_variables"      => delete_variable
  "raw_status_string"     => raw_status_string
  "add_variables"         => add_variables
  "feasibility_sense"     => feasibility_sense
  "solve_affine_equalto"  => solve_affine_equalto
  "max_sense"             => max_sense
  "variablenames"         => variablenames
  "solve_integer_edge_ca… => solve_integer_edge_cases
  "silent"                => silent
  "update_dimension_nonn => update_dimension_nonnegative_variables
  "solve_blank_obj"       => solve_blank_obj
  "min_sense"             => min_sense
  "solve_zero_one_with_b… => solve_zero_one_with_bounds_3
  "solve_affine_interval" => solve_affine_interval
  "solve_with_upperbound" => solve_with_upperbound
  "solve_duplicate_terms => solve_duplicate_terms_scalar_affine
  "time_limit_sec"        => time_limit_sec
  "delete_soc_variables"  => delete_soc_variables
  "getvariable"           => getvariable
  "solve_zero_one_with_b… => solve_zero_one_with_bounds_2
  "solve_qp_edge_cases"   => solve_qp_edge_cases
  "getconstraint"         => getconstraint
  "solve_result_index"    => solve_result_index
  "get_objective_functio => get_objective_function
  "solve_affine_lessthan" => solve_affine_lessthan
  "solve_objbound_edge_c… => solve_objbound_edge_cases
  "solve_affine_deletion => solve_affine_deletion_edge_cases

Metadata

Metadata

Assignees

No one assigned

    Labels

    Submodule: TestsAbout the Tests submoduleType: DocumentationThis issue requires changes to the documentation

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions