===================== [simple recursion] =====================
Debug Assertion failed at 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.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 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


===================== [Type cleaning] =====================
Debug Assertion failed at 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


===================== [Complex type resolution] =====================
Debug Assertion failed at 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


