Show / Hide Table of Contents

    Unittests

    This page is a collection of technical prerequisites and known issues, that need to be considered when executing the unittests of OPTANO Algorithm Tuner and its adapters.

    Additional Files

    In order to build the OPTANO Algorithm Tuner examples and run their unittests, you need to download some additional tools and add them to the provided Tools directory. The following table provides detailed information about these tools and their area of application within the unittests.

    Adapter Needed File Our Recommendation Unittest Class Name in Code
    Generic OAT Application (resp. SAPS) target algorithm executable ubcsat.exe Use UBCSAT version 1.1.0, available at UBCSAT homepage. TestUtils.cs (resp. SapsRunnerTests.cs) PathToTargetAlgorithm (resp. PathToExecutable)
    BBOB bbobbenchmarks python script bbobbenchmarks.py Use bbobbenchmarks.py from BBOB 2013, availabe at COCO homepage. --- ---
    Gurobi mps instance file glass4.mps Use glass4.mps, available at MIPLIP homepage. GurobiRunnerTests.cs PathToTestInstance
    Lingeling lingeling executable lingeling Use lingeling version lingeling-bbc-9230380-160707 from SAT competition 2016, available at JKU homepage. LingelingRunnerTests.cs PathToExecutable

    Adapter specific Issues

    Generic OAT Application & SAPS Adapter

    Since ubcsat.exe is referenced in PathToTargetAlgorithm (resp. PathToExecutable) in the unittests of the Generic OAT Application (resp. SAPS adapter), you need to adapt these references, if you want to execute these unittests on an operation system other than Windows.

    ACLib Adapter

    Some unittests of the ACLib adapter make use of a simple test scenario, written in python 2.7. These unittests will be skipped, if you don't have python 2.7 installed on your system - in a way so that it can be loaded from your PATH environment variable. The ACLib unit test project will automatically use the python 2.7 version that it retrieves from the PATH environment variable.

    BBOB Adapter

    Some unittests of the BBOB adapter make use of the BBOB python 2.7 adapter script bbobeval.py, provided in Tools. These unittests will be skipped, if you don't have python 2.7 together with the NumPy python package installed on your system - in a way so that it can be loaded from your PATH environment variable. The BBOB unit test project will automatically use the python 2.7 version that it retrieves from the PATH environment variable.

    Note that starting the actual tuning process still requires an explicit path to python, so that you can also run it in environments where you cannot modify the PATH variable.

    Lingeling Adapter

    Since Lingeling is written for execution on a Linux machine, you need to execute the unittests, provided by the Lingeling adapter, on a Linux machine. On operation systems other than Linux the affected unittests will be skipped.

    Moreover do not forget to make lingeling and lingelingMemoryLimited.sh executable by using the command chmod +x before executing the unittests.

    TestApplication.dll

    Some unittests of OPTANO Algorithm Tuner and its adapters make use of the provided .Net Core 3.1 application TestApplication.dll, which takes on multiple roles.

    • By calling dotnet TestApplication.dll returnExitCode [int] it will return the given integer as exit code.
    • By calling dotnet TestApplication.dll returnInput [args] it will return the given arguments as line-by-line output, before returning exit code 0.
    • By calling dotnet TestApplication.dll idle [int] it will sleep the given amount of seconds, before returning exit code 0.
    Back to top Copyright © OPTANO GmbH generated with DocFX
    Privacy Policy | Impressum – Legal Notice