/solver.bak

Primary LanguageC++The UnlicenseUnlicense

A generic constaint solver in C++

ci codecov Language grade: C++ CodeQL

About the constaint solver

Constraint solver's goal is to solve [Constraint Satisfaction Problems (CSPs). The goal of this solver is to be highly configurable, letting a programmer mix-and-match different representation and solving strategies. Like C++ standard library, the configurability is intended to have an extremely low abstraction cost.

Development mode

This is project is based on Jason Turner's c++ starter project. As such, it includes the following features (copied from Jason's page):

By default (collectively known as ENABLE_DEVELOPER_MODE)

  • Address Sanitizer and Undefined Behavior Sanitizer enabled where possible
  • Warnings as errors
  • clang-tidy and cppcheck static analysis
  • conan for dependencies

It includes

  • a basic SDL example
  • examples for fuzz, unit, and constexpr testing
  • large github action testing matrix

It requires

  • cmake
  • conan
  • a compiler

More Details

Testing

See Catch2 tutorial

Fuzz testing

See libFuzzer Tutorial