Metadata-Version: 2.1
Name: ctlog
Version: 0.7.1
Summary: SAT-Based Combinatorial Testing in Python
Keywords: combinatorial-testing,sat,maxsat,constraint
Author: Logic and Optimization Group
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: Natural Language :: English
Classifier: Programming Language :: Python :: 3
Classifier: Operating System :: POSIX :: Linux
Classifier: Topic :: Scientific/Engineering
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Project-URL: Homepage, https://ulog.udl.cat
Requires-Python: >=3.8
Requires-Dist: optilog>=0.5.0
Requires-Dist: psutil
Requires-Dist: pyzlic>=1.5.1
Requires-Dist: lark==1.1.7
Requires-Dist: lark-cython==0.0.15
Requires-Dist: nanobind
Description-Content-Type: text/markdown

CTLog: SAT-Based Combinatorial Testing in Python
================================================

*Full documentation available [online](http://hardlog.udl.cat/static/doc/ctlog/html/index.html)*.

**CTLog** is a complete framework for Combinatorial Testing of Constrained Systems Under Test developed by the [Logic & Optimization Group (LOG)](http://ulog.udl.cat/) at the University of Lleida.
It uses Satisfiability (SAT) technology through the [OptiLog](http://hardlog.udl.cat/static/doc/optilog/html/index.html) Python framework, also developed and mantained by the same research group.

CTLog implements all the algorithms that we developed in our research, such as ``MaxSAT MCAC`` and ``maxsat-its`` and all the family of the ``BOT-its`` algorithms.
It also implements several state-of-the-art algorithms for generating Mixed Covering Arrays with Constraints, such as ``IPOG`` or ``CALOT``.

Additionally, we provide the ``SUT-G`` generator, which can be used to generate new Constrained Systems Under Tests where all these MCAC algorithms can be applied.

Installation
------------

CTLog currently supports Python versions 3.9, 3.10, 3.11 and 3.12 for Linux.
Wheels are provided through PyPI, you can install CTLog directly with pip:

```
pip3 install ctlog
```

CTLog also requires a software license, which must be placed in your ``${HOME}`` directory under the name ``.ctlog.lic``.
To obtain a license plese visit [this page](https://hardlog.udl.cat/static/doc/ctlog/html/ctlog/installation.html).

Before using CTLog please read our [license](http://ulog.udl.cat/static/doc/ctlog/html/ctlog/license.html) carefully.
If you need CTLog for industrial scenarios please contact us.

If you use CTLog in your research please cite our work:
    
    @article{ANSOTEGUI2024104791,
        title = {Effectively computing high strength mixed covering arrays with constraints},
        journal = {Journal of Parallel and Distributed Computing},
        volume = {185},
        pages = {104791},
        year = {2024},
        issn = {0743-7315},
        doi = {https://doi.org/10.1016/j.jpdc.2023.104791},
        url = {https://www.sciencedirect.com/science/article/pii/S0743731523001612},
        author = {Carlos Ansótegui and Eduard Torres},
        keywords = {Combinatorial testing, Satisfiability}
    }