===================== [value printing: strings] =====================
Debug Assertion failed at integration/integration.cpp:1103: void test_class<int>::something_else() [T = int]:
    debug_assert(s == "test");
    Where:
        s => "test\n"

Stack trace:
# 1 test_class<int>::something_else()
      at integration.cpp:1103
# 2 test_class<int>::something<N>(std::pair<N, int>)
      at integration.cpp:1005
# 3 main()
      at integration.cpp:403


Debug Assertion failed at integration/integration.cpp:1104: void test_class<int>::something_else() [T = int]:
    debug_assert(s[i] == 'c', ...);
    Where:
        s[i] => 't'
    Extra diagnostics:
        s => "test\n"
        i => 0

Stack trace:
# 1 test_class<int>::something_else()
      at integration.cpp:1104
# 2 test_class<int>::something<N>(std::pair<N, int>)
      at integration.cpp:1005
# 3 main()
      at integration.cpp:403


Debug Assertion failed at integration/integration.cpp:1107: void test_class<int>::something_else() [T = int]:
    debug_assert(buffer == thing);
    Where:
        buffer => nullptr
        thing  => "foo"

Stack trace:
# 1 test_class<int>::something_else()
      at integration.cpp:1107
# 2 test_class<int>::something<N>(std::pair<N, int>)
      at integration.cpp:1005
# 3 main()
      at integration.cpp:403


Debug Assertion failed at integration/integration.cpp:1108: void test_class<int>::something_else() [T = int]:
    debug_assert(buffer == +thing);
    Where:
        buffer => nullptr
        +thing => "foo"

Stack trace:
# 1 test_class<int>::something_else()
      at integration.cpp:1108
# 2 test_class<int>::something<N>(std::pair<N, int>)
      at integration.cpp:1005
# 3 main()
      at integration.cpp:403


Debug Assertion failed at integration/integration.cpp:1110: void test_class<int>::something_else() [T = int]:
    debug_assert(s == sv);
    Where:
        s  => "test\n"
        sv => "foo"

Stack trace:
# 1 test_class<int>::something_else()
      at integration.cpp:1110
# 2 test_class<int>::something<N>(std::pair<N, int>)
      at integration.cpp:1005
# 3 main()
      at integration.cpp:403


===================== [value printing: pointers] =====================
Debug Assertion failed at integration/integration.cpp:1201: void test_class<int>::something_else() [T = int]:
    debug_assert((uintptr_t)-1 == 0xff);
    Where:
        (uintptr_t)-1 => 18446744073709551615 0xffffffffffffffff
        0xff          => 255 0xff

Stack trace:
# 1 test_class<int>::something_else()
      at integration.cpp:1201
# 2 test_class<int>::something<N>(std::pair<N, int>)
      at integration.cpp:1005
# 3 main()
      at integration.cpp:403


Debug Assertion failed at integration/integration.cpp:1202: void test_class<int>::something_else() [T = int]:
    debug_assert((uintptr_t)-1 == (uintptr_t)0xff);
    Where:
        (uintptr_t)-1   => 18446744073709551615
        (uintptr_t)0xff => 255

Stack trace:
# 1 test_class<int>::something_else()
      at integration.cpp:1202
# 2 test_class<int>::something<N>(std::pair<N, int>)
      at integration.cpp:1005
# 3 main()
      at integration.cpp:403


Debug Assertion failed at integration/integration.cpp:1204: void test_class<int>::something_else() [T = int]:
    debug_assert(foo == nullptr);
    Where:
        foo => void *: 0xdeadbeef

Stack trace:
# 1 test_class<int>::something_else()
      at integration.cpp:1204
# 2 test_class<int>::something<N>(std::pair<N, int>)
      at integration.cpp:1005
# 3 main()
      at integration.cpp:403


===================== [value printing: number formats] =====================
Debug Assertion failed at integration/integration.cpp:1303: void test_class<int>::something_else() [T = int]:
    debug_assert(mask bitand flags);
    Where:
        mask  => 405 0b0000000110010101
        flags => 42 0b0000000000101010

Stack trace:
# 1 test_class<int>::something_else()
      at integration.cpp:1303
# 2 test_class<int>::something<N>(std::pair<N, int>)
      at integration.cpp:1005
# 3 main()
      at integration.cpp:403


Debug Assertion failed at integration/integration.cpp:1304: void test_class<int>::something_else() [T = int]:
    debug_assert(0xf == 16);
    Where:
        0xf => 15 0xf
        16  => 16 0x10

Stack trace:
# 1 test_class<int>::something_else()
      at integration.cpp:1304
# 2 test_class<int>::something<N>(std::pair<N, int>)
      at integration.cpp:1005
# 3 main()
      at integration.cpp:403


===================== [value printing: floating point] =====================
Debug Assertion failed at integration/integration.cpp:1401: void test_class<int>::something_else() [T = int]:
    debug_assert(1 == 1.5);

Stack trace:
# 1 test_class<int>::something_else()
      at integration.cpp:1401
# 2 test_class<int>::something<N>(std::pair<N, int>)
      at integration.cpp:1005
# 3 main()
      at integration.cpp:403


Debug Assertion failed at integration/integration.cpp:1402: void test_class<int>::something_else() [T = int]:
    debug_assert(0.5 != .5);
    Where:
        .5 => 0.5

Stack trace:
# 1 test_class<int>::something_else()
      at integration.cpp:1402
# 2 test_class<int>::something<N>(std::pair<N, int>)
      at integration.cpp:1005
# 3 main()
      at integration.cpp:403


Debug Assertion failed at integration/integration.cpp:1403: void test_class<int>::something_else() [T = int]:
    debug_assert(0.1 + 0.2 == 0.3);
    Where:
        0.1 + 0.2 => 0.30000000000000004
        0.3       => 0.29999999999999999

Stack trace:
# 1 test_class<int>::something_else()
      at integration.cpp:1403
# 2 test_class<int>::something<N>(std::pair<N, int>)
      at integration.cpp:1005
# 3 main()
      at integration.cpp:403


Assertion failed at integration/integration.cpp:1404: void test_class<int>::something_else() [T = int]:
    ASSERT(.1 + .2 == .3);
    Where:
        .1 + .2 => 0.30000000000000004
        .3      => 0.29999999999999999

Stack trace:
# 1 test_class<int>::something_else()
      at integration.cpp:1404
# 2 test_class<int>::something<N>(std::pair<N, int>)
      at integration.cpp:1005
# 3 main()
      at integration.cpp:403


Debug Assertion failed at integration/integration.cpp:1407: void test_class<int>::something_else() [T = int]:
    debug_assert(ff == .1);
    Where:
        ff => 0.100000001
        .1 => 0.10000000000000001

Stack trace:
# 1 test_class<int>::something_else()
      at integration.cpp:1407
# 2 test_class<int>::something<N>(std::pair<N, int>)
      at integration.cpp:1005
# 3 main()
      at integration.cpp:403


Debug Assertion failed at integration/integration.cpp:1408: void test_class<int>::something_else() [T = int]:
    debug_assert(.1f == .1);
    Where:
        .1f => 0.100000001
        .1  => 0.10000000000000001

Stack trace:
# 1 test_class<int>::something_else()
      at integration.cpp:1408
# 2 test_class<int>::something<N>(std::pair<N, int>)
      at integration.cpp:1005
# 3 main()
      at integration.cpp:403


===================== [value printing: ostream overloads] =====================
Debug Assertion failed at integration/integration.cpp:1502: void test_class<int>::something_else() [T = int]:
    debug_assert(p == printable{2.55});
    Where:
        p               => (printable = 1.42)
        printable{2.55} => (printable = 2.55)

Stack trace:
# 1 test_class<int>::something_else()
      at integration.cpp:1502
# 2 test_class<int>::something<N>(std::pair<N, int>)
      at integration.cpp:1005
# 3 main()
      at integration.cpp:403


===================== [value printing: no ostream overload] =====================
Debug Assertion failed at integration/integration.cpp:1602: void test_class<int>::something_else() [T = int]:
    debug_assert(p == not_printable{2.55});
    Where:
        p                   => <instance of not_printable<double>>
        not_printable{2.55} => <instance of not_printable<double>>

Stack trace:
# 1 test_class<int>::something_else()
      at integration.cpp:1602
# 2 test_class<int>::something<N>(std::pair<N, int>)
      at integration.cpp:1005
# 3 main()
      at integration.cpp:403


Debug Assertion failed at integration/integration.cpp:1603: void test_class<int>::something_else() [T = int]:
    debug_assert(p.f == not_printable{2.55}.f);
    Where:
        p.f                   => std::optional<double>: 1.4199999999999999
        not_printable{2.55}.f => std::optional<double>: 2.5499999999999998

Stack trace:
# 1 test_class<int>::something_else()
      at integration.cpp:1603
# 2 test_class<int>::something<N>(std::pair<N, int>)
      at integration.cpp:1005
# 3 main()
      at integration.cpp:403


===================== [optional messages] =====================
Debug Assertion failed at integration/integration.cpp:1701: void test_class<int>::something_else() [T = int]:
    debug_assert(false, ...);
    Extra diagnostics:
        2 => 2

Stack trace:
# 1 test_class<int>::something_else()
      at integration.cpp:1701
# 2 test_class<int>::something<N>(std::pair<N, int>)
      at integration.cpp:1005
# 3 main()
      at integration.cpp:403


Debug Assertion failed at integration/integration.cpp:1702: void test_class<int>::something_else() [T = int]: foo
    debug_assert(false, ...);

Stack trace:
# 1 test_class<int>::something_else()
      at integration.cpp:1702
# 2 test_class<int>::something<N>(std::pair<N, int>)
      at integration.cpp:1005
# 3 main()
      at integration.cpp:403


Debug Assertion failed at integration/integration.cpp:1703: void test_class<int>::something_else() [T = int]: foo
    debug_assert(false, ...);

Stack trace:
# 1 test_class<int>::something_else()
      at integration.cpp:1703
# 2 test_class<int>::something<N>(std::pair<N, int>)
      at integration.cpp:1005
# 3 main()
      at integration.cpp:403


Debug Assertion failed at integration/integration.cpp:1704: void test_class<int>::something_else() [T = int]: foo
    debug_assert(false, ...);

Stack trace:
# 1 test_class<int>::something_else()
      at integration.cpp:1704
# 2 test_class<int>::something<N>(std::pair<N, int>)
      at integration.cpp:1005
# 3 main()
      at integration.cpp:403


Debug Assertion failed at integration/integration.cpp:1705: void test_class<int>::something_else() [T = int]: foo
    debug_assert(false, ...);

Stack trace:
# 1 test_class<int>::something_else()
      at integration.cpp:1705
# 2 test_class<int>::something<N>(std::pair<N, int>)
      at integration.cpp:1005
# 3 main()
      at integration.cpp:403


Debug Assertion failed at integration/integration.cpp:1706: void test_class<int>::something_else() [T = int]: foo
    debug_assert(false, ...);
    Extra diagnostics:
        2 => 2

Stack trace:
# 1 test_class<int>::something_else()
      at integration.cpp:1706
# 2 test_class<int>::something<N>(std::pair<N, int>)
      at integration.cpp:1005
# 3 main()
      at integration.cpp:403


Debug Assertion failed at integration/integration.cpp:1707: void test_class<int>::something_else() [T = int]: foo
    debug_assert(false, ...);
    Extra diagnostics:
        2 => 2

Stack trace:
# 1 test_class<int>::something_else()
      at integration.cpp:1707
# 2 test_class<int>::something<N>(std::pair<N, int>)
      at integration.cpp:1005
# 3 main()
      at integration.cpp:403


Debug Assertion failed at integration/integration.cpp:1708: void test_class<int>::something_else() [T = int]: foo
    debug_assert(false, ...);
    Extra diagnostics:
        2 => 2

Stack trace:
# 1 test_class<int>::something_else()
      at integration.cpp:1708
# 2 test_class<int>::something<N>(std::pair<N, int>)
      at integration.cpp:1005
# 3 main()
      at integration.cpp:403


Debug Assertion failed at integration/integration.cpp:1709: void test_class<int>::something_else() [T = int]: foo
    debug_assert(false, ...);
    Extra diagnostics:
        2 => 2

Stack trace:
# 1 test_class<int>::something_else()
      at integration.cpp:1709
# 2 test_class<int>::something<N>(std::pair<N, int>)
      at integration.cpp:1005
# 3 main()
      at integration.cpp:403


Debug Assertion failed at integration/integration.cpp:1710: void test_class<int>::something_else() [T = int]:
    debug_assert(false, ...);
    Extra diagnostics:
        nullptr => nullptr

Stack trace:
# 1 test_class<int>::something_else()
      at integration.cpp:1710
# 2 test_class<int>::something<N>(std::pair<N, int>)
      at integration.cpp:1005
# 3 main()
      at integration.cpp:403


Debug Assertion failed at integration/integration.cpp:1711: void test_class<int>::something_else() [T = int]: (nullptr)
    debug_assert(false, ...);

Stack trace:
# 1 test_class<int>::something_else()
      at integration.cpp:1711
# 2 test_class<int>::something<N>(std::pair<N, int>)
      at integration.cpp:1005
# 3 main()
      at integration.cpp:403


===================== [errno] =====================
Debug Assertion failed at integration/integration.cpp:1802: void test_class<int>::something_else() [T = int]:
    debug_assert(false, ...);
    Extra diagnostics:
        errno =>  2 "No such file or directory"

Stack trace:
# 1 test_class<int>::something_else()
      at integration.cpp:1802
# 2 test_class<int>::something<N>(std::pair<N, int>)
      at integration.cpp:1005
# 3 main()
      at integration.cpp:403


Debug Assertion failed at integration/integration.cpp:1804: void test_class<int>::something_else() [T = int]: foo
    debug_assert(false, ...);
    Extra diagnostics:
        errno =>  2 "No such file or directory"

Stack trace:
# 1 test_class<int>::something_else()
      at integration.cpp:1804
# 2 test_class<int>::something<N>(std::pair<N, int>)
      at integration.cpp:1005
# 3 main()
      at integration.cpp:403


===================== [general] =====================
bar() called
foo() called
Debug Assertion failed at integration/integration.cpp:1901: void test_class<int>::something_else() [T = int]: foo
    debug_assert(false, ...);
    Extra diagnostics:
        false           => false
        2 * foo()       => 4
        "foobar"sv      => "foobar"
        bar()           => -2
        printable{2.55} => (printable = 2.55)

Stack trace:
# 1 test_class<int>::something_else()
      at integration.cpp:1901
# 2 test_class<int>::something<N>(std::pair<N, int>)
      at integration.cpp:1005
# 3 main()
      at integration.cpp:403


Debug Assertion failed at integration/integration.cpp:1902: void test_class<int>::something_else() [T = int]:
    debug_assert([] { return false; } ());

Stack trace:
# 1 test_class<int>::something_else()
      at integration.cpp:1902
# 2 test_class<int>::something<N>(std::pair<N, int>)
      at integration.cpp:1005
# 3 main()
      at integration.cpp:403


===================== [safe comparisons] =====================
Debug Assertion failed at integration/integration.cpp:2001: void test_class<int>::something_else() [T = int]:
    debug_assert(18446744073709551606ULL == -10);

Stack trace:
# 1 test_class<int>::something_else()
      at integration.cpp:2001
# 2 test_class<int>::something<N>(std::pair<N, int>)
      at integration.cpp:1005
# 3 main()
      at integration.cpp:403


Debug Assertion failed at integration/integration.cpp:2002: void test_class<int>::something_else() [T = int]:
    debug_assert(-1 > 1U);

Stack trace:
# 1 test_class<int>::something_else()
      at integration.cpp:2002
# 2 test_class<int>::something<N>(std::pair<N, int>)
      at integration.cpp:1005
# 3 main()
      at integration.cpp:403


===================== [expression decomposition] =====================
Debug Assertion failed at integration/integration.cpp:2102: void test_class<int>::something_else() [T = int]:
    debug_assert(1 == (1 bitand 2));
    Where:
        (1 bitand 2) => 0

Stack trace:
# 1 test_class<int>::something_else()
      at integration.cpp:2102
# 2 test_class<int>::something<N>(std::pair<N, int>)
      at integration.cpp:1005
# 3 main()
      at integration.cpp:403


Debug Assertion failed at integration/integration.cpp:2103: void test_class<int>::something_else() [T = int]:
    debug_assert(1 < 1 < 0);
    Where:
        1 < 1 => false

Stack trace:
# 1 test_class<int>::something_else()
      at integration.cpp:2103
# 2 test_class<int>::something<N>(std::pair<N, int>)
      at integration.cpp:1005
# 3 main()
      at integration.cpp:403


Debug Assertion failed at integration/integration.cpp:2104: void test_class<int>::something_else() [T = int]:
    debug_assert(0 + 0 + 0);
    Where:
        0 + 0 + 0 => 0

Stack trace:
# 1 test_class<int>::something_else()
      at integration.cpp:2104
# 2 test_class<int>::something<N>(std::pair<N, int>)
      at integration.cpp:1005
# 3 main()
      at integration.cpp:403


Debug Assertion failed at integration/integration.cpp:2105: void test_class<int>::something_else() [T = int]:
    debug_assert(false == false == false);
    Where:
        false == false => true

Stack trace:
# 1 test_class<int>::something_else()
      at integration.cpp:2105
# 2 test_class<int>::something<N>(std::pair<N, int>)
      at integration.cpp:1005
# 3 main()
      at integration.cpp:403


Debug Assertion failed at integration/integration.cpp:2106: void test_class<int>::something_else() [T = int]:
    debug_assert(1 << 1 == 200);
    Where:
        1 << 1 => 2

Stack trace:
# 1 test_class<int>::something_else()
      at integration.cpp:2106
# 2 test_class<int>::something<N>(std::pair<N, int>)
      at integration.cpp:1005
# 3 main()
      at integration.cpp:403


Debug Assertion failed at integration/integration.cpp:2107: void test_class<int>::something_else() [T = int]:
    debug_assert(1 << 1 << 31);
    Where:
        1 << 1 => 2

Stack trace:
# 1 test_class<int>::something_else()
      at integration.cpp:2107
# 2 test_class<int>::something<N>(std::pair<N, int>)
      at integration.cpp:1005
# 3 main()
      at integration.cpp:403


Debug Assertion failed at integration/integration.cpp:2109: void test_class<int>::something_else() [T = int]:
    debug_assert(x -= 2);
    Where:
        x => 0

Stack trace:
# 1 test_class<int>::something_else()
      at integration.cpp:2109
# 2 test_class<int>::something<N>(std::pair<N, int>)
      at integration.cpp:1005
# 3 main()
      at integration.cpp:403


Debug Assertion failed at integration/integration.cpp:2111: void test_class<int>::something_else() [T = int]:
    debug_assert(x -= x -= 1);
    Where:
        x      => 0
        x -= 1 => 0

Stack trace:
# 1 test_class<int>::something_else()
      at integration.cpp:2111
# 2 test_class<int>::something<N>(std::pair<N, int>)
      at integration.cpp:1005
# 3 main()
      at integration.cpp:403


Debug Assertion failed at integration/integration.cpp:2113: void test_class<int>::something_else() [T = int]:
    debug_assert(x -= x -= x -= 1);
    Where:
        x           => 0
        x -= x -= 1 => 0

Stack trace:
# 1 test_class<int>::something_else()
      at integration.cpp:2113
# 2 test_class<int>::something<N>(std::pair<N, int>)
      at integration.cpp:1005
# 3 main()
      at integration.cpp:403


Debug Assertion failed at integration/integration.cpp:2114: void test_class<int>::something_else() [T = int]: pffft
    debug_assert(true ? false : true, ...);

Stack trace:
# 1 test_class<int>::something_else()
      at integration.cpp:2114
# 2 test_class<int>::something<N>(std::pair<N, int>)
      at integration.cpp:1005
# 3 main()
      at integration.cpp:403


Debug Assertion failed at integration/integration.cpp:2116: void test_class<int>::something_else() [T = int]:
    debug_assert(a >> 1);
    Where:
        a => 1

Stack trace:
# 1 test_class<int>::something_else()
      at integration.cpp:2116
# 2 test_class<int>::something<N>(std::pair<N, int>)
      at integration.cpp:1005
# 3 main()
      at integration.cpp:403


===================== [ensure values are only computed once] =====================
foo() called
bar() called
Debug Assertion failed at integration/integration.cpp:2201: void test_class<int>::something_else() [T = int]:
    debug_assert(foo() < bar());
    Where:
        foo() => 2
        bar() => -2

Stack trace:
# 1 test_class<int>::something_else()
      at integration.cpp:2201
# 2 test_class<int>::something<N>(std::pair<N, int>)
      at integration.cpp:1005
# 3 main()
      at integration.cpp:403


===================== [value forwarding: lvalue references] =====================
logger_type::logger_type() [n=2]
logger_type::operator==(int) const & [n=2, other=2]
Debug Assertion failed at integration/integration.cpp:601: decltype(auto) test_class<int>::get_lt_a(logger_type &) [T = int]:
    assert_val(l == 2);
    Where:
        l => logger_type [n = 2]

Stack trace:
# 1 test_class<int>::get_lt_a(logger_type&)
      at integration.cpp:601
# 2 test_class<int>::something_else()
      at integration.cpp:2403
# 3 test_class<int>::something<N>(std::pair<N, int>)
      at integration.cpp:1005
# 4 main()
      at integration.cpp:403


logger_type::operator==(int) const & [n=3, other=1]
Debug Assertion failed at integration/integration.cpp:2405: void test_class<int>::something_else() [T = int]:
    debug_assert(lt == 1);
    Where:
        lt => logger_type [n = 3]

Stack trace:
# 1 test_class<int>::something_else()
      at integration.cpp:2405
# 2 test_class<int>::something<N>(std::pair<N, int>)
      at integration.cpp:1005
# 3 main()
      at integration.cpp:403


logger_type::operator==(int) const & [n=3, other=1]
Debug Assertion failed at integration/integration.cpp:2406: void test_class<int>::something_else() [T = int]:
    debug_assert(x == 1);
    Where:
        x => logger_type [n = 3]

Stack trace:
# 1 test_class<int>::something_else()
      at integration.cpp:2406
# 2 test_class<int>::something<N>(std::pair<N, int>)
      at integration.cpp:1005
# 3 main()
      at integration.cpp:403


--------------------------------------------

Debug Assertion failed at integration/integration.cpp:2411: void test_class<int>::something_else() [T = int]:
    debug_assert(x ^= 1);
    Where:
        x => 0 0b00000000000000000000000000000000
        1 => 1 0b00000000000000000000000000000001

Stack trace:
# 1 test_class<int>::something_else()
      at integration.cpp:2411
# 2 test_class<int>::something<N>(std::pair<N, int>)
      at integration.cpp:1005
# 3 main()
      at integration.cpp:403


===================== [value forwarding: rvalues] =====================
logger_type::logger_type() [n=2]
logger_type::operator==(int) const & [n=2, other=2]
Debug Assertion failed at integration/integration.cpp:605: decltype(auto) test_class<int>::get_lt_b() [T = int]:
    assert_val(logger_type(2) == 2);
    Where:
        logger_type(2) => logger_type [n = 2]

Stack trace:
# 1 test_class<int>::get_lt_b()
      at integration.cpp:605
# 2 test_class<int>::something_else()
      at integration.cpp:2503
# 3 test_class<int>::something<N>(std::pair<N, int>)
      at integration.cpp:1005
# 4 main()
      at integration.cpp:403


Debug Assertion failed at integration/integration.cpp:2503: void test_class<int>::something_else() [T = int]:
    debug_assert(false, ...);
    Extra diagnostics:
        x => logger_type [n = 2]

Stack trace:
# 1 test_class<int>::something_else()
      at integration.cpp:2503
# 2 test_class<int>::something<N>(std::pair<N, int>)
      at integration.cpp:1005
# 3 main()
      at integration.cpp:403


--------------------------------------------

===================== [simple recursion] =====================
Debug Assertion failed at integration/integration.cpp:501: void rec(int):
    debug_assert(false);

Stack trace:
# 1 rec(int)
      at integration.cpp:501
# 2 rec(int)
      at integration.cpp:503
|                                   |
| 8 layers of recursion were folded |
|                                   |
#11 rec(int)
      at integration.cpp:503
#12 test_class<int>::something_else()
      at integration.cpp:2602
#13 test_class<int>::something<N>(std::pair<N, int>)
      at integration.cpp:1005
#14 main()
      at integration.cpp:403


===================== [other recursion] =====================
Debug Assertion failed at integration/integration.cpp:508: void recursive_a(int):
    debug_assert(false);

Stack trace:
# 1 recursive_a(int)
      at integration.cpp:508
# 2 recursive_b(int)
      at integration.cpp:515
# 3 recursive_a(int)
      at integration.cpp:510
# 4 recursive_b(int)
      at integration.cpp:515
# 5 recursive_a(int)
      at integration.cpp:510
# 6 recursive_b(int)
      at integration.cpp:515
# 7 recursive_a(int)
      at integration.cpp:510
# 8 recursive_b(int)
      at integration.cpp:515
# 9 recursive_a(int)
      at integration.cpp:510
#10 recursive_b(int)
      at integration.cpp:515
#11 recursive_a(int)
      at integration.cpp:510
#12 test_class<int>::something_else()
      at integration.cpp:2703
#13 test_class<int>::something<N>(std::pair<N, int>)
      at integration.cpp:1005
#14 main()
      at integration.cpp:403


===================== [Path differentiation] =====================
Debug Assertion failed at integration/x/a.cpp:5: void test_path_differentiation_2():
    debug_assert(false);

Stack trace:
# 1 test_path_differentiation_2()
      at x/a.cpp:5
# 2 test_path_differentiation()
      at integration/a.cpp:8
# 3 test_class<int>::something_else()
      at integration.cpp:2801
# 4 test_class<int>::something<N>(std::pair<N, int>)
      at integration.cpp:1005
# 5 main()
      at integration.cpp:403


===================== [Enum handling] =====================
Debug Assertion failed at integration/integration.cpp:2904: void test_class<int>::something_else() [T = int]:
    debug_assert(a != A);
    Where:
        a => A

Stack trace:
# 1 test_class<int>::something_else()
      at integration.cpp:2904
# 2 test_class<int>::something<N>(std::pair<N, int>)
      at integration.cpp:1005
# 3 main()
      at integration.cpp:403


Debug Assertion failed at integration/integration.cpp:2906: void test_class<int>::something_else() [T = int]:
    debug_assert(b != bar::A);
    Where:
        b      => A
        bar::A => A

Stack trace:
# 1 test_class<int>::something_else()
      at integration.cpp:2906
# 2 test_class<int>::something<N>(std::pair<N, int>)
      at integration.cpp:1005
# 3 main()
      at integration.cpp:403


===================== [Literal format handling] =====================
Debug Assertion failed at integration/integration.cpp:3001: void test_class<int>::something_else() [T = int]:
    debug_assert(0xff == 077);
    Where:
        0xff => 255 0xff 0377
        077  => 63 0x3f 077

Stack trace:
# 1 test_class<int>::something_else()
      at integration.cpp:3001
# 2 test_class<int>::something<N>(std::pair<N, int>)
      at integration.cpp:1005
# 3 main()
      at integration.cpp:403


Debug Assertion failed at integration/integration.cpp:3002: void test_class<int>::something_else() [T = int]:
    debug_assert('x' == 20);
    Where:
        'x' => 'x' 120
        20  => '\x14' 20

Stack trace:
# 1 test_class<int>::something_else()
      at integration.cpp:3002
# 2 test_class<int>::something<N>(std::pair<N, int>)
      at integration.cpp:1005
# 3 main()
      at integration.cpp:403


Debug Assertion failed at integration/integration.cpp:3003: void test_class<int>::something_else() [T = int]:
    debug_assert('x' == 'y');

Stack trace:
# 1 test_class<int>::something_else()
      at integration.cpp:3003
# 2 test_class<int>::something<N>(std::pair<N, int>)
      at integration.cpp:1005
# 3 main()
      at integration.cpp:403


Debug Assertion failed at integration/integration.cpp:3005: void test_class<int>::something_else() [T = int]:
    debug_assert(c == 20);
    Where:
        c  => 'x' 120
        20 => '\x14' 20

Stack trace:
# 1 test_class<int>::something_else()
      at integration.cpp:3005
# 2 test_class<int>::something<N>(std::pair<N, int>)
      at integration.cpp:1005
# 3 main()
      at integration.cpp:403


===================== [Container printing] =====================
Debug Assertion failed at integration/integration.cpp:3104: void test_class<int>::something_else() [T = int]:
    debug_assert(a == b, ...);
    Where:
        a => std::set<int>: [2, 4, 6, 10]
        b => std::set<int>: [2, 5, 6, 10]
    Extra diagnostics:
        c => std::vector<double>: [1.2000000476837158, 2.440000057220459, 3.15159010887146, 5.1999998092651367]

Stack trace:
# 1 test_class<int>::something_else()
      at integration.cpp:3104
# 2 test_class<int>::something<N>(std::pair<N, int>)
      at integration.cpp:1005
# 3 main()
      at integration.cpp:403


Debug Assertion failed at integration/integration.cpp:3109: void test_class<int>::something_else() [T = int]:
    debug_assert(false, ...);
    Extra diagnostics:
        m0 => std::map<std::string, int>: [["bar", -2], ["foo", 2]]

Stack trace:
# 1 test_class<int>::something_else()
      at integration.cpp:3109
# 2 test_class<int>::something<N>(std::pair<N, int>)
      at integration.cpp:1005
# 3 main()
      at integration.cpp:403


Debug Assertion failed at integration/integration.cpp:3114: void test_class<int>::something_else() [T = int]:
    debug_assert(false, ...);
    Extra diagnostics:
        m1 => std::map<std::string, std::vector<int>>: [["bar", [-100, 200, 400, -800]], ["foo", [1, -2, 3, -4]]]

Stack trace:
# 1 test_class<int>::something_else()
      at integration.cpp:3114
# 2 test_class<int>::something<N>(std::pair<N, int>)
      at integration.cpp:1005
# 3 main()
      at integration.cpp:403


Debug Assertion failed at integration/integration.cpp:3116: void test_class<int>::something_else() [T = int]:
    debug_assert(false, ...);
    Extra diagnostics:
        t => std::tuple<int, double, const char *>: [1, 0.30000000000000004, "foobars"]

Stack trace:
# 1 test_class<int>::something_else()
      at integration.cpp:3116
# 2 test_class<int>::something<N>(std::pair<N, int>)
      at integration.cpp:1005
# 3 main()
      at integration.cpp:403


Debug Assertion failed at integration/integration.cpp:3118: void test_class<int>::something_else() [T = int]:
    debug_assert(false, ...);
    Extra diagnostics:
        arr => std::array<int, 10>: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

Stack trace:
# 1 test_class<int>::something_else()
      at integration.cpp:3118
# 2 test_class<int>::something<N>(std::pair<N, int>)
      at integration.cpp:1005
# 3 main()
      at integration.cpp:403


Debug Assertion failed at integration/integration.cpp:3120: void test_class<int>::something_else() [T = int]:
    debug_assert(false, ...);
    Extra diagnostics:
        carr => int[5]: [5, 4, 3, 2, 1]

Stack trace:
# 1 test_class<int>::something_else()
      at integration.cpp:3120
# 2 test_class<int>::something<N>(std::pair<N, int>)
      at integration.cpp:1005
# 3 main()
      at integration.cpp:403


===================== [Type cleaning] =====================
Debug Assertion failed at integration/integration.cpp:3305: void test_class<int>::test_pretty_function_cleaning(const std::map<std::string, std::vector<std::string_view>> &) [T = int]:
    debug_assert(map == other);
    Where:
        map   => std::map<std::string, std::vector<std::string_view>>: [["bar", ["b1", "b3", "b5"]], ["foo", ["f1", "f3", "f5"]]]
        other => std::map<std::string, std::vector<std::string_view>>: []

Stack trace:
# 1 test_class<int>::test_pretty_function_cleaning(std::map<std::string, std::vector<std::string_view>, std::less<std::string>>&)
      at integration.cpp:3305
# 2 test_class<int>::something_else()
      at integration.cpp:3201
# 3 test_class<int>::something<N>(std::pair<N, int>)
      at integration.cpp:1005
# 4 main()
      at integration.cpp:403


===================== [Debug stringification customization point] =====================
Debug Assertion failed at integration/integration.cpp:3402: void test_class<int>::something_else() [T = int]:
    debug_assert(x == y, ...);
    Where:
        x => (debug_print_customization = 2)
        y => (debug_print_customization = 1)
    Extra diagnostics:
        x => (debug_print_customization = 2)
        y => (debug_print_customization = 1)

Stack trace:
# 1 test_class<int>::something_else()
      at integration.cpp:3402
# 2 test_class<int>::something<N>(std::pair<N, int>)
      at integration.cpp:1005
# 3 main()
      at integration.cpp:403


===================== [Complex type resolution] =====================
Debug Assertion failed at integration/integration.cpp:3602: void test_class<int>::test_complex_typing(const volatile std::vector<std::string> *const &, int *, const char (&)[4], decltype(&complex_typing::S::foo), int complex_typing::S::*) [T = int]:
    debug_assert(false);

Stack trace:
# 1 test_class<int>::test_complex_typing()
      at integration.cpp:3602
# 2 test_class<int>::something_else()
      at integration.cpp:3504
# 3 test_class<int>::something<N>(std::pair<N, int>)
      at integration.cpp:1005
# 4 main()
      at integration.cpp:403


===================== [Panics] =====================
Panic at integration/integration.cpp:3703: void test_class<T>::something_else() [T = int]: message
    PANIC(...);
    Extra diagnostics:
        vec => std::vector<std::string>: ["foo", "bar", "baz"]

Stack trace:
# 1 test_class<int>::something_else()
      at integration.cpp:3703
# 2 test_class<int>::something<N>(std::pair<N, int>)
      at integration.cpp:1004
# 3 main()
      at integration.cpp:402


