{"id":29204754,"url":"https://github.com/jfalcou/tts","last_synced_at":"2025-07-02T15:07:06.103Z","repository":{"id":38303019,"uuid":"165122254","full_name":"jfalcou/tts","owner":"jfalcou","description":"Tiny Test System","archived":false,"fork":false,"pushed_at":"2025-06-20T13:57:04.000Z","size":6697,"stargazers_count":27,"open_issues_count":4,"forks_count":4,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-07-02T08:18:00.926Z","etag":null,"topics":["cpp","cpp20","cpp20-library","mit-license","tdd","tdd-workflow","testing-tools"],"latest_commit_sha":null,"homepage":"https://jfalcou.github.io/tts/","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsl-1.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jfalcou.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-01-10T19:57:08.000Z","updated_at":"2025-06-20T13:55:21.000Z","dependencies_parsed_at":"2023-11-08T23:21:43.180Z","dependency_job_id":"948d2bc7-aeac-4a77-8af5-90f5252df82a","html_url":"https://github.com/jfalcou/tts","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/jfalcou/tts","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jfalcou%2Ftts","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jfalcou%2Ftts/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jfalcou%2Ftts/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jfalcou%2Ftts/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jfalcou","download_url":"https://codeload.github.com/jfalcou/tts/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jfalcou%2Ftts/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263163163,"owners_count":23423495,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cpp","cpp20","cpp20-library","mit-license","tdd","tdd-workflow","testing-tools"],"created_at":"2025-07-02T15:07:05.473Z","updated_at":"2025-07-02T15:07:06.083Z","avatar_url":"https://github.com/jfalcou.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# The TTS Library\n\n[![Licence](https://img.shields.io/github/license/jfalcou/tts?style=plastic)](https://img.shields.io/github/license/jfalcou/tts?style=plastic)\n[![Discord](https://img.shields.io/discord/692734675726237696?style=plastic)](https://discord.com/channels/692734675726237696/692735300522344468)\n[![Build status](https://ci.appveyor.com/api/projects/status/020yd3e6dwhu4dae/branch/master?svg=true)](https://ci.appveyor.com/project/jfalcou/tts/branch/master)\n\n**Tiny Test System** is a C++20 open-source Unit Test library designed following the ideas of\nlibraries like CATCH or LEST.\n\nIn addition to classical TDD features, its main goal is to provide:\n\n- Test over data sets\n- Support for template test cases generation\n- IEEE precision-related tests: ULP, absolute and relative error\n- Customization points for 3rd party types\n- Streamlined behavior for interaction with post-processing scripts\n\nTTS is thus suitable for numerical-heavy testing.\n\n# Supported Compilers\n  * g++ 10.3 and superior\n  * clang 12 and superior\n  * Visual Studio 17 2022 v19.30.30709.0\n  * clang-CL 15.0.1 or superior\n  * emscripten 3.1.14\n\n# A Short Example\n\n[See it live on Compiler Explorer](https://godbolt.org/z/cM5sxMxjo)\n\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ c++\n#define TTS_MAIN\n#include \u003ctts/tts.hpp\u003e\n\nTTS_CASE( \"Check expectations\" )\n{\n  TTS_EXPECT(true == true);\n  TTS_EXPECT_NOT(1+1 == 3);\n};\n\nTTS_CASE( \"Check relationship between values\" )\n{\n  double x = 12.5;\n  TTS_EQUAL( 12.5f, x );\n  TTS_NOT_EQUAL( 17.65, x );\n  TTS_LESS(1.95f, x);\n  TTS_GREATER(2*x, x);\n  TTS_LESS_EQUAL(x,13);\n  TTS_GREATER_EQUAL(x,3.5f);\n};\n\nvoid foo(bool x)  { if(x) throw std::runtime_error{\"THIS IS AN ERROR\"}; }\n\nTTS_CASE( \"Check runtime exceptions\" )\n{\n  TTS_THROW(foo(true), std::runtime_error);\n  TTS_NO_THROW(foo(false));\n};\n\nTTS_CASE( \"Check precision tests\" )\n{\n  double x = 1.;\n\n  TTS_ABSOLUTE_EQUAL(x ,1.001, 1e-3 );\n  TTS_RELATIVE_EQUAL(1,1.1,10);\n  TTS_ULP_EQUAL(1. + 1e-16, x, 0.5 );\n  TTS_IEEE_EQUAL(1., x );\n};\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n# Licence\n\n\nThis library is licensed under the [Boost Software License 1.0 License](https://spdx.org/licenses/BSL-1.0.html):\n\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ none\nBoost Software License - Version 1.0 - August 17th, 2003\n\nPermission is hereby granted, free of charge, to any person or organization\nobtaining a copy of the software and accompanying documentation covered by\nthis license (the \"Software\") to use, reproduce, display, distribute,\nexecute, and transmit the Software, and to prepare derivative works of the\nSoftware, and to permit third-parties to whom the Software is furnished to\ndo so, all subject to the following:\n\nThe copyright notices in the Software and this entire statement, including\nthe above license grant, this restriction and the following disclaimer,\nmust be included in all copies of the Software, in whole or in part, and\nall derivative works of the Software, unless such copies or derivative\nworks are solely in the form of machine-executable object code generated by\na source language processor.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT\nSHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE\nFOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,\nARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER\nDEALINGS IN THE SOFTWARE.\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjfalcou%2Ftts","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjfalcou%2Ftts","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjfalcou%2Ftts/lists"}