Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-10-29 08:25:02

0001 // SPDX-License-Identifier: LGPL-3.0-or-later
0002 // Copyright (C) 2026 Wouter Deconinck
0003 //
0004 // Tests for the generated version header
0005 //
0006 #include <algorithms/version.h>
0007 
0008 #include <catch2/catch_test_macros.hpp>
0009 #include <fmt/format.h>
0010 
0011 using namespace algorithms;
0012 
0013 // The macros must be usable in preprocessor conditionals
0014 #if !defined(ALGORITHMS_VERSION) || ALGORITHMS_VERSION < ALGORITHMS_VERSION_CODE(2, 1, 0)
0015 #error "ALGORITHMS_VERSION must be at least 2.1.0"
0016 #endif
0017 
0018 TEST_CASE("Version macros and constants agree", "[version]") {
0019   STATIC_CHECK(versionMajor == ALGORITHMS_VERSION_MAJOR);
0020   STATIC_CHECK(versionMinor == ALGORITHMS_VERSION_MINOR);
0021   STATIC_CHECK(versionPatch == ALGORITHMS_VERSION_PATCH);
0022   STATIC_CHECK(versionString == ALGORITHMS_VERSION_STRING);
0023   CHECK(fmt::format("{}.{}.{}", versionMajor, versionMinor, versionPatch) == versionString);
0024 }
0025 
0026 TEST_CASE("Version code is ordered like the version", "[version]") {
0027   STATIC_CHECK(ALGORITHMS_VERSION_CODE(2, 1, 0) < ALGORITHMS_VERSION_CODE(2, 1, 1));
0028   STATIC_CHECK(ALGORITHMS_VERSION_CODE(2, 1, 999) < ALGORITHMS_VERSION_CODE(2, 2, 0));
0029   STATIC_CHECK(ALGORITHMS_VERSION_CODE(2, 999, 999) < ALGORITHMS_VERSION_CODE(3, 0, 0));
0030 }
0031 
0032 TEST_CASE("versionAtLeast compares against the current version", "[version]") {
0033   STATIC_CHECK(versionAtLeast(versionMajor, versionMinor, versionPatch));
0034   STATIC_CHECK(versionAtLeast(versionMajor, versionMinor));
0035   STATIC_CHECK(versionAtLeast(versionMajor));
0036   STATIC_CHECK(!versionAtLeast(versionMajor, versionMinor, versionPatch + 1));
0037   STATIC_CHECK(!versionAtLeast(versionMajor, versionMinor + 1, 0));
0038   STATIC_CHECK(!versionAtLeast(versionMajor + 1, 0, 0));
0039   STATIC_CHECK(versionAtLeast(versionMajor - 1, versionMinor + 1, versionPatch + 1));
0040   STATIC_CHECK(versionAtLeast(0, 0, 0));
0041 }