From 7c9ab5fba2334d63b055bbb631010998ed6d2c51 Mon Sep 17 00:00:00 2001 From: Ichthyostega Date: Fri, 17 Oct 2014 20:02:25 +0200 Subject: [PATCH] reorganise test suite compartments this change is prerequisite to allow linking against different scopes (#938) --- doc/technical/infra/TestSupport.txt | 51 +- tests/00helloworld.tests | 1518 +++++++++++++++++ tests/{15list.tests => 11list.tests} | 0 tests/{15locking.tests => 11locking.tests} | 0 tests/{15luid.tests => 11luid.tests} | 0 tests/{15mpool.tests => 11mpool.tests} | 0 tests/{15priqueue.tests => 11priqueue.tests} | 0 tests/{15safeclib.tests => 11safeclib.tests} | 0 tests/{15slist.tests => 11slist.tests} | 0 tests/{15time.tests => 11time.tests} | 0 tests/12metaprogramming.tests | 1518 +++++++++++++++++ tests/15library.tests | 1518 +++++++++++++++++ tests/25fundamental.tests | 1518 +++++++++++++++++ tests/basics/DIR_INFO | 1 + .../streamtypebasicstest.cpp | 0 .../streamtypelifecycletest.cpp | 0 tests/{library => basics}/teststreamtypes.hpp | 0 .../time/digxel-configurations-test.cpp | 0 .../{library => basics}/time/digxel-test.cpp | 0 .../time/format-support-test.cpp | 0 .../time/quantiser-basics-test.cpp | 0 .../time/time-basics-test.cpp | 0 .../time/time-control-test.cpp | 0 .../time/time-formats-test.cpp | 0 .../time/time-mutation-test.cpp | 0 .../time/time-parsing-test.cpp | 0 .../time/time-quantisation-test.cpp | 0 .../time/time-value-test.cpp | 0 .../visitingtoolconcept.cpp | 0 .../visitingtoolextendedtest.cpp | 0 .../{library => basics}/visitingtooltest.cpp | 0 .../application}/subsystem-runner-test.cpp | 0 tests/operation/bugs/hello-bug-test.cpp | 2 +- 33 files changed, 6105 insertions(+), 21 deletions(-) create mode 100644 tests/00helloworld.tests rename tests/{15list.tests => 11list.tests} (100%) rename tests/{15locking.tests => 11locking.tests} (100%) rename tests/{15luid.tests => 11luid.tests} (100%) rename tests/{15mpool.tests => 11mpool.tests} (100%) rename tests/{15priqueue.tests => 11priqueue.tests} (100%) rename tests/{15safeclib.tests => 11safeclib.tests} (100%) rename tests/{15slist.tests => 11slist.tests} (100%) rename tests/{15time.tests => 11time.tests} (100%) create mode 100644 tests/12metaprogramming.tests create mode 100644 tests/15library.tests create mode 100644 tests/25fundamental.tests create mode 100644 tests/basics/DIR_INFO rename tests/{library => basics}/streamtypebasicstest.cpp (100%) rename tests/{library => basics}/streamtypelifecycletest.cpp (100%) rename tests/{library => basics}/teststreamtypes.hpp (100%) rename tests/{library => basics}/time/digxel-configurations-test.cpp (100%) rename tests/{library => basics}/time/digxel-test.cpp (100%) rename tests/{library => basics}/time/format-support-test.cpp (100%) rename tests/{library => basics}/time/quantiser-basics-test.cpp (100%) rename tests/{library => basics}/time/time-basics-test.cpp (100%) rename tests/{library => basics}/time/time-control-test.cpp (100%) rename tests/{library => basics}/time/time-formats-test.cpp (100%) rename tests/{library => basics}/time/time-mutation-test.cpp (100%) rename tests/{library => basics}/time/time-parsing-test.cpp (100%) rename tests/{library => basics}/time/time-quantisation-test.cpp (100%) rename tests/{library => basics}/time/time-value-test.cpp (100%) rename tests/{library => basics}/visitingtoolconcept.cpp (100%) rename tests/{library => basics}/visitingtoolextendedtest.cpp (100%) rename tests/{library => basics}/visitingtooltest.cpp (100%) rename tests/{library => core/application}/subsystem-runner-test.cpp (100%) diff --git a/doc/technical/infra/TestSupport.txt b/doc/technical/infra/TestSupport.txt index 0de3eb350..5afcad052 100644 --- a/doc/technical/infra/TestSupport.txt +++ b/doc/technical/infra/TestSupport.txt @@ -16,11 +16,11 @@ running test cases Tests are the only form of documentation, known to provides some resilience against becoming outdated. Tests help to focus on the usage, instead of engaging in spurious -implementation details. Developers are highly encourraged to write the tests _before_ +implementation details. Developers are highly encouraged to write the tests _before_ the actual implementation, or at least alongside and interleaved with expanding the feature set of the actual code. There may be exceptions to this rule. Not every single bit needs to be covered by tests. -Some features are highly cross-cutting and exceptionally difficult to cover with thests. +Some features are highly cross-cutting and exceptionally difficult to cover with tests. And sometimes, just an abstract specification is a better choice. As a rule of thumb, consider to write test code which is easy to read and understand, @@ -33,37 +33,44 @@ Test Structure - simple test cases may be written as stand-alone application, while the more tightly integrated test cases can be written as classes within the Lumiera application framework. - test cases should use the +CHECK+ macro of NoBug to verify test results, since the normal - assertions may be deconfigured for optimised release builds. -- our test runner script 'test.sh' provides mechanisms for checking for expected output + assertions may be de-configured for optimised release builds. +- our test runner script 'test.sh' provides mechanisms to check for expected output Several levels of aggregation are available. At the lowest level, a test typically runs several functions within the same test fixture. This allows to create a ``narrative'' in the code: first do this, than do that, and now that, and now this should happen... Generally speaking, it is up to the individual test to take care or isolate himself from any _dependencies_. Test code and application code uses the same mechanisms -for accessing other components within the application. Up to now (2012), there +for accessing other components within the application. Up to now (2014), there was no need for any kind of _dependency injection_, nor did we face any difficulties with tainted state. Test classes are organised into a tree closely mirroring the main application source -code tree. Large sections of this test tree are linked together into *test runners* +code tree. Large sections of this test tree are linked together into *test libraries*. +Some of these are linked against a specific (sub)scope of the application, like e.g. +only against the support library, the application framework or the backend. Since we +use _strict dependencies_, this linking step will spot code not being placed at the +correct scope within the whole system. As a final step, the build system creates a +*test runner* application (`target/test-suite`), which links dynamically against _all_ +the test libraries and thus against all application dependencies. Individual test classes integrate into this framework by placing a simple declaration (actually using the `LAUNCHER` macro), which typically also defines some tags and classification alongside. -Using command line parameters for invocation of the test runners, it is possible to -run some category or especially tagged test classes, or to invoke just a single test class +This way, using command line parameters for invocation of the test runners, it is possible +to run some category or especially tagged test classes, or to invoke just a single test class in isolation (using the ID, which is also the class name). The next level of aggregation is provided by the top level test collection definitions located in the 'test/' subdirectory. For running these collections as automatic tests within -the build process, we use Cehteh's simple `test.sh` shell script. +the build process, we use Cehteh's `test.sh` shell script. + Tools and conventions --------------------- Test code and application code has to be kept separate; the application may be built without any -tests, since test code has a tendency to bloat the executables, especially in debug mode. Generic -test support code may be included in the library, and it is common for core components to offer -dedicated test support and diagnostic features as part of the main application. +tests, since test code has a tendency to bloat the executables, especially in debug mode. As an +exception, generic _test support code_ may be included in the library, and it is common for core +components to offer dedicated _test support_ and _diagnostic features_ as part of the main application. Conventions for the Buildsystem ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -84,7 +91,7 @@ to help with automating the build and test execution, test code should adhere to * subtrees of test classes (C++) are linked into one shared library per subtree. In the final linking step, these are linked together into a single testrunner, which is also linked against the application core. The resulting executable 'test-suite' is able to invoke any of the test classes in - isolation, or a group / categroy of tests. + + isolation, or a group / category of tests. + * simple plain-C tests (names starting with 'test-*') are grouped into several directories thematically, and linked according to the application layer. Each of those simple tests needs to be self contained and provide a main method. @@ -92,9 +99,10 @@ to help with automating the build and test execution, test code should adhere to Internal testsuite runner ~~~~~~~~~~~~~~~~~~~~~~~~~ The class `test::Suite` (as used by 'tests/testrunner.cpp') helps building an executable which will run _all registered -test case objects,_ or some group of such testcases. Each test case implements a simple interface and thus provides +test case objects,_ or some group of such test cases. Each test case implements a simple interface and thus provides a `run (args)` function, moreover, it registers itself immediately alongside with his definition; this works by the -usual trick of defining a static class object and calling some registration function from the constructor of this static var. See the following +usual trick of defining a static class object and calling some registration function from the constructor of this static var. +See the following .hello-world-test example [source,C] @@ -130,16 +138,17 @@ namespace test { .Notes: * type Arg is compatible to `std::vector &` -* this vector may be `arg.size()==0`, which means no comandline args available. +* this vector may be `arg.size()==0`, which means no commandline args available. * these args may contain further arguments passed from system commandline (or the testsuite definition). * the test can/should produce output that can be checked with 'test.sh' -* the macro `LAUNCHER` expands to `Launch run_HelloWorld_test("HelloWorld_test","unit function common");` +* the macro `LAUNCHER` expands to + + `Launch run_HelloWorld_test("HelloWorld_test","unit function common");` * note the second parameter to the macro (or the `Laucher`-ctor) is a space-delimited list of group names * thus any test can declare itself as belonging to some groups, and we can create a `test::Suite` for each group if we want. invoking a testrunner executable ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -The class `test::TestOption` predefines a boost-commandlineparser to support the following optons: +The class `test::TestOption` predefines a boost-commandlineparser to support the following options: [width="90%",cols="<.<,^4"] |==== @@ -149,7 +158,9 @@ The class `test::TestOption` predefines a boost-commandlineparser to support the |`[testID]` | (optional) one single testcase. If missing, all testcases of the group will be invoked |`--describe`| print all registered tests to stdout in a format suited for use with test.sh |==== -Further commandline arguments are deliverd to a single testcase only if you specify a `testID`. Otherwise, all commandline arguments remaining after options parsing will be discarded and all tests of the suite will be run with an commandline vector of `size()==0` +Further commandline arguments are deliverd to a single testcase only if you specify a `testID`. +Otherwise, all commandline arguments remaining after options parsing will be discarded and all tests of the suite +ill be run with an commandline vector of `size()==0` @@ -190,7 +201,7 @@ Writing test collection definitions ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ The definitions for test collections usable with `test.sh` are written in files named '##name.tests' in the 'tests/' directory dir, where ## is a number defining the order of the various test files. -Of course, ``name'' should be a descriptive name about whats going to be tested. Each test collection +Of course, ``name'' should be a descriptive name about what is going to be tested. Each test collection may invoke _only a single binary_ -- yet it may define numerous test cases, each invoking this binary while supplementing different arguments. Combined with the ability of our test runner executables to invoke individual test classes, this allows for fine grained test case specifications. diff --git a/tests/00helloworld.tests b/tests/00helloworld.tests new file mode 100644 index 000000000..6f1a67df1 --- /dev/null +++ b/tests/00helloworld.tests @@ -0,0 +1,1518 @@ +TESTING "Core Component Test Suite: common and basic components" ./test-suite --group=common + + + +TEST "Hello test world" HelloWorld_test 3 <Binding[] +out-lit: aSymbol --->Binding[aSymbol/0()] +out-lit: a.compound_Symbol-with-various.parts --->Binding[a.compound_Symbol-with-various.parts/0()] +out-lit: trailing Garbage allowed. ☢☢ eat ☠☠☠ atomic ☠☠☠ waste ☢☢ --->Binding[Garbage/0(), allowed/0(), trailing/0()] +out-lit: a, list , of ,symbols. --->Binding[a/0(), list/0(), of/0(), symbols/0()] +out-lit: nullary(). --->Binding[nullary/0()] +out-lit: nullary( ) --->Binding[nullary/0()] +out-lit: nullary . --->Binding[nullary/0()] +out-lit: predicate( with-argument ) --->Binding[predicate/1(with-argument)] +out-lit: Binding[advice.type.n7lumiera6advice4test12_GLOBAL__N_111DummyAdviceE/0(), one/0(), three/1(four), two/0()] +out-lit: b0==Binding[] +out-lit: b1==Binding[cat1/0(), cat2/0()] +out-lit: b2==Binding[cat1/0(), cat2/0()] +out-lit: b2==Binding[advice.type.n3lib4time4TimeE/0(), cat1/0(), cat2/0(), cat3/1(zzz)] +return: 0 +END + + +TEST "Advice index implementation" AdviceIndex_test < +out-lit: wrapping cmdline: +out-lit: ... +out-lit: --> +out-lit: wrapping cmdline:spam... +out-lit: 0|spam| +out-lit: -->spam +out-lit: wrapping cmdline: +out-lit: spam... +out-lit: 0|spam| +out-lit: -->spam +out-lit: wrapping cmdline:eat more spam... +out-lit: 0|eat| +out-lit: 1|more| +out-lit: 2|spam| +out-lit: -->eat more spam +out-lit: wrapping cmdline: oo _O()O_ ☭ + €... +out-lit: 0|oo| +out-lit: 1|_O()O_| +out-lit: 2|☭| +out-lit: 3|+| +out-lit: 4|€| +out-lit: -->oo _O()O_ ☭ + € +out-lit: wrapping cmdline:Ω ooΩ oΩo Ωoo... +out-lit: 0|Ω| +out-lit: 1|ooΩ| +out-lit: 2|oΩo| +out-lit: 3|Ωoo| +out-lit: -->Ω ooΩ oΩo Ωoo +out-lit: Standard Cmdlineformat:one two +END + + +TEST "ConfigFlags_test" ConfigFlags_test <- +out-lit: Conf2 :-<2>- +out-lit: Conf3 :-<3>- +out-lit: Conf4 :-<2>-<4>- +out-lit: AllFlags :-<1>-<2>-<3>-<4>- +out-lit: __________________________ +out-lit: __________________________ check_flags() +out-lit: Flags1 :-<2>-<4>- +out-lit: Flags2 :-<2>-<4>- +out-lit: SimpleConfig_defined_by_Typelist :-<1>- +out-lit: AnotherConfig_defined_by_Typelist :-<1>-<2>-<3>-<4>- +out-lit: __________________________ +out-lit: __________________________ check_instantiation() +out-lit: defined Conf0? ---> 0 +out-lit: defined Conf1? ---> 1 +out-lit: defined Conf2? ---> 1 +out-lit: defined Conf3? ---> 1 +out-lit: defined Conf4? ---> 1 +out-lit: defined Trash? ---> 0 +out-lit: __________________________ +out-lit: __________________________ check_filter() +out-lit: SomeFlagsets : +out-lit: +---<1>-<3>-+ +out-lit: +---<2>-<4>-+- +out-lit: Configs_defined_by_Flagsets : +out-lit: +-Conf-[-<1>-<3>-] +out-lit: +-Conf-[-<2>-<4>-]- +out-lit: Filter_possible_Configs : +out-lit: +-Conf-[-<2>-<4>-]- +out-lit: AllFlagCombinations : +out-lit: +---<1>-<2>-<3>-<4>-<·>-+ +out-lit: +---<1>-<2>-<3>-<·>-+ +out-lit: +---<1>-<2>-<4>-<·>-+ +out-lit: +---<1>-<2>-<·>-+ +out-lit: +---<1>-<3>-<4>-<·>-+ +out-lit: +---<1>-<3>-<·>-+ +out-lit: +---<1>-<4>-<·>-+ +out-lit: +---<1>-<·>-+ +out-lit: +---<2>-<3>-<4>-<·>-+ +out-lit: +---<2>-<3>-<·>-+ +out-lit: +---<2>-<4>-<·>-+ +out-lit: +---<2>-<·>-+ +out-lit: +---<3>-<4>-<·>-+ +out-lit: +---<3>-<·>-+ +out-lit: +---<4>-<·>-+ +out-lit: +---<·>-+- +out-lit: ListAllConfigs : +out-lit: +-Conf-[-<1>-<2>-<3>-<4>-] +out-lit: +-Conf-[-<1>-<2>-<3>-] +out-lit: +-Conf-[-<1>-<2>-<4>-] +out-lit: +-Conf-[-<1>-<2>-] +out-lit: +-Conf-[-<1>-<3>-<4>-] +out-lit: +-Conf-[-<1>-<3>-] +out-lit: +-Conf-[-<1>-<4>-] +out-lit: +-Conf-[-<1>-] +out-lit: +-Conf-[-<2>-<3>-<4>-] +out-lit: +-Conf-[-<2>-<3>-] +out-lit: +-Conf-[-<2>-<4>-] +out-lit: +-Conf-[-<2>-] +out-lit: +-Conf-[-<3>-<4>-] +out-lit: +-Conf-[-<3>-] +out-lit: +-Conf-[-<4>-] +out-lit: +-Conf-[-]- +out-lit: Filter_all_possible_Configs : +out-lit: +-Conf-[-<1>-] +out-lit: +-Conf-[-<2>-<3>-] +out-lit: +-Conf-[-<2>-<4>-] +out-lit: +-Conf-[-<2>-] +out-lit: +-Conf-[-<3>-]- +out-lit: __________________________ +out-lit: __________________________ check_FlagInfo() +out-lit: Flags1 :-<1>-<3>- +out-lit: max bit : 3 +out-lit: binary code: 10 +out-lit: SomeConfigs : +out-lit: +-Conf-[-<1>-<3>-] +out-lit: +-Conf-[-<2>-<4>-]- +out-lit: max bit in [SomeConfigs] : 4 +out-lit: TestVisitor application: +out-lit: visit(code=10) --> +out-lit: +-Conf-[-<1>-<3>-]- +out-lit: visit(code=20) --> +out-lit: +-Conf-[-<2>-<4>-]- +out-lit: __________________________ +out-lit: __________________________ check_ConfigSelector() +out-lit: Possible_Configs : +out-lit: +-Conf-[-<1>-] +out-lit: +-Conf-[-<2>-<3>-] +out-lit: +-Conf-[-<2>-<4>-] +out-lit: +-Conf-[-<2>-] +out-lit: +-Conf-[-<3>-]- +out-lit: Flag-code = 2 ConfigSelector() ---> 1010 +out-lit: Flag-code = 12 ConfigSelector() ---> 1023 +out-lit: Flag-code = 20 ConfigSelector() ---> 1024 +out-lit: Flag-code = 4 ConfigSelector() ---> 1020 +out-lit: Flag-code = 8 ConfigSelector() ---> 1030 +out: LUMIERA_ERROR_INVALID:invalid input or parameters.+No preconfigured factory for config-bits=10111 +return: 0 +END + + +TEST "CustomSharedPtr_test" CustomSharedPtr_test < : Yes +out: HasNested_Core : No +out: HasMember_honk : Yes +out: HasMember_honk : Yes +out: HasFunSig_honk : Yes +out: HasFunSig_honk : No +return: 0 +END + + +TEST "ExceptionError_test" ExceptionError_test < +out: ^hey Joe! +out: ^he says: hey Joe! +out: ^the truth: 0 +out: ^just a number: 1.234.*e\+56 +out: ^12345X +return: 0 +END + + +TEST "formatting by string template" FormatString_test <-<2>-<3>- +out-lit: List2 :-<5>-<6>-<7>- +out-lit: Args :-<5>-<9>- +out-lit: NewArgs :-<1>-<5>-<9>- +out-lit: : +out-lit: : ---Apply--- +out-lit: tup0 :...Tuple() +out-lit: tup1 :...Tuple(11) +out-lit: tup2 :...Tuple(11,12) +out-lit: tup3 :...Tuple(11,12,13) +out-lit: : +out-lit: : ---Bind---- +return: 0 +END + + +TEST "functional composition" FunctionComposition_test <: +out-lit: DD<5>: ***** +out-lit: DD<9>: I'm fine* +out-lit: I'm special, what the f** is going on here?************ +return: 0 +END + + +TEST "inline val/ref wrapper" ItemWrapper_test < : Yes +out: can_STL_ForEach : Yes +out: can_STL_ForEach : Yes +out: can_STL_ForEach : Yes +out: can_STL_ForEach : Yes +out: can_STL_ForEach : Yes +out: can_STL_ForEach : No +out: can_STL_ForEach : No +out: can_STL_ForEach : No +out: can_STL_ForEach : No +out: can_IterForEach : No +out: can_IterForEach : No +out: can_IterForEach : No +out: can_IterForEach : No +out: can_IterForEach : No +out: can_IterForEach : No +out: can_IterForEach : Yes +out: can_IterForEach : Yes +out: can_IterForEach : Yes +out: can_IterForEach : Yes +END + + +TEST "Linked iterable elements" LinkedElements_test < [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, ] +out-lit: removed 0 ---> [ 1, 2, 3, 4, 5, 6, 7, 8, 9, ] +out-lit: removed 9 ---> [ 0, 1, 2, 3, 4, 5, 6, 7, 8, ] +out-lit: removed 5 ---> [ 0, 1, 2, 3, 4, 6, 7, 8, 9, ] +out-lit: removed 0 2 4 6 8 ---> [ 1, 3, 5, 7, 9, ] +out-lit: removed 1 3 5 7 9 ---> [ 0, 2, 4, 6, 8, ] +out-lit: removed 0 1 2 3 4 5 6 7 8 9 ---> [ ] +out-lit: removed 0 1 2 3 4 5 6 7 8 ---> [ 9, ] +out-lit: removed 1 2 3 4 5 6 7 8 9 ---> [ 0, ] +out-lit: removed 0 1 2 3 4 6 7 8 9 ---> [ 5, ] +END + + +TEST "SanitizedIdentifier_test" SanitizedIdentifier_test < 'Word' +out-lit: 'a Sentence' --> 'a_Sentence' +out-lit: 'trailing Withespace +out-lit: ' --> 'trailing_Withespace' +out-lit: 'with a lot +out-lit: of Whitespace' --> 'with_a_lot_of_Whitespace' +out-lit: 'with"much (punctuation)[]!' --> 'withmuch_(punctuation)' +out-lit: '§&Ω%€ leading garbage' --> 'leading_garbage' +out-lit: 'mixed Ω garbage' --> 'mixed_garbage' +out-lit: 'Bääääh!!' --> 'Bh' +out-lit: '§&Ω%€' --> '' +END + + +TEST "ScopedHolder_test" ScopedHolder_test <... +out: checking ScopedPtrHolder... +END + + +TEST "ScopedHolderTransfer_test" ScopedHolderTransfer_test <... +out-lit: . +out-lit: ..install one element at index[0] +out-lit: . +out-lit: ..*** resize table to 16 elements +out-lit: . +out-lit: .throw some exceptions... +out-lit: checking ScopedPtrHolder... +out-lit: . +out-lit: ..install one element at index[0] +out-lit: . +out-lit: ..*** resize table to 16 elements +out-lit: . +out-lit: .throw some exceptions... +END + + +TEST "Managed Collection (I)" ScopedCollection_test < Testgroup=ALL +out: --> Test-ID =--missing-- +out: --> remaining= +out: Testing invocation with cmdline: --help... +out: --> Testgroup=ALL +out: --> Test-ID =--missing-- +out: --> remaining= +out: Testing invocation with cmdline: --group TestGroupID... +out: --> Testgroup=TestGroupID +out: --> Test-ID =--missing-- +out: --> remaining= +out: Testing invocation with cmdline: SingleTestID... +out: --> Testgroup=ALL +out: --> Test-ID =SingleTestID +out: --> remaining=SingleTestID +out: Testing invocation with cmdline: SingleTestID --group TestGroupID... +out: --> Testgroup=TestGroupID +out: --> Test-ID =SingleTestID +out: --> remaining=SingleTestID +out: Testing invocation with cmdline: --group TestGroupID SingleTestID ... +out: --> Testgroup=TestGroupID +out: --> Test-ID =SingleTestID +out: --> remaining=SingleTestID +out: Testing invocation with cmdline: --group TestGroupID SingleTestID spam eggs... +out: --> Testgroup=TestGroupID +out: --> Test-ID =SingleTestID +out: --> remaining=SingleTestID spam eggs +out: Testing invocation with cmdline: SingleTestID spam --group TestGroupID --eggs... +out: --> Testgroup=TestGroupID +out: --> Test-ID =SingleTestID +out: --> remaining=SingleTestID spam --eggs +END + + +TEST "TypeList_test" TypeList_test < > +out: ctor DoIt > +out: ctor DoIt > +out: ctor DoIt > +out: ctor DoIt > +out: ctor DoIt > +out: devouring__Block< 2>__ +out: devouring__Block< 5>__ +out: devouring__Block<13>__ +out: gulp! +out: dtor DoIt > +out: dtor DoIt > +out: dtor DoIt > +out: dtor DoIt > +out: dtor DoIt > +out: dtor DoIt > +return: 0 +END + + +TEST "typelist manipulation" TypeListManip_test <-<2>-<3>- +out-lit: List2 :-<5>-<6>-<7>- +out-lit: Added2 :-<3>-<4>-<5>- +out-lit: FilterEven :-<2>-<6>- +out-lit: Append1 :- +out-lit: Append2 :-<11>-<22>- +out-lit: Append3 :-<111>- +out-lit: Append4 :-<222>- +out-lit: Append5 :-<1>-<2>-<3>- +out-lit: Append6 :-<5>-<6>-<7>- +out-lit: Append7 :-<111>-<5>-<6>-<7>- +out-lit: Append8 :-<1>-<2>-<3>-<222>- +out-lit: Append9 :-<1>-<2>-<3>-<5>-<6>-<7>- +out-lit: Overl01 :- +out-lit: Overl02 :- +out-lit: Overl03 :- +out-lit: Overl04 :-<9>-<8>-<3>- +out-lit: Overl05 :-<1>-<9>-<8>- +out-lit: Overl06 :-<1>-<2>-<9>- +out-lit: Overl07 :-<1>-<2>-<3>- +out-lit: Overl08 :-<1>-<2>-<3>- +out-lit: Overl09 :-<1>-<2>-<3>- +out-lit: Overl10 :-<1>-<1>-<2>- +out-lit: Overl11 :-<1>-<2>-<3>- +out-lit: Overl12 :-<1>-<2>-<3>- +out-lit: Overl13 :-<1>-<2>-<3>- +out-lit: Front1 :- +out-lit: Front2 :-<1>- +out-lit: Front3 :-<1>-<2>-<3>- +out-lit: Back1 :-<2>-<3>- +out-lit: Back2 :-<3>- +out-lit: Back3 :- +out-lit: Front4 :-<1>- +out-lit: Back4 :-<2>-<3>- +out-lit: Prefix :-<1>-<2>- +out-lit: ElmL :-<3>- +out-lit: NPrefix :- +out-lit: Types :-<3>- +out-lit: NList :- +out-lit: Types :- +out-lit: LL :-<1>-<2>-<3>-<5>-<6>-<7>- +out-lit: List :-<1>-<2>-<3>-<5>-<6>-<7>- +out-lit: First :-<1>- +out-lit: Tail :-<2>-<3>-<5>-<6>-<7>- +out-lit: Prefix :-<1>-<2>-<3>-<5>-<6>- +out-lit: Last :-<7>- +out-lit: HeadEnd :-<1>-<7>- +out-lit: Prefix1 : +out-lit: +---<11>-<22>-+- +out-lit: Prefix2 : +out-lit: +---<101>-<1>-+ +out-lit: +---<101>-<2>-+ +out-lit: +---<101>-<3>-+- +out-lit: Prefix3 : +out-lit: +---<1>-+ +out-lit: +---<2>-+ +out-lit: +---<3>-+- +out-lit: Prefix4 : +out-lit: +---<111>-<1>-<2>-<3>-+ +out-lit: +---<111>-<0>-+ +out-lit: +---<111>-<5>-<6>-<7>-+- +out-lit: Prefix5 : +out-lit: +---<1>-<2>-<3>-<5>-+ +out-lit: +---<1>-<2>-<3>-<6>-+ +out-lit: +---<1>-<2>-<3>-<7>-+- +out-lit: Prefix6 : +out-lit: +---<1>-<2>-<3>-<1>-<2>-<3>-+ +out-lit: +---<1>-<2>-<3>-<0>-+ +out-lit: +---<1>-<2>-<3>-<5>-<6>-<7>-+- +out-lit: Dist1 : +out-lit: +---<11>-<1>-+ +out-lit: +---<11>-<2>-+ +out-lit: +---<11>-<3>-+- +out-lit: Dist2 : +out-lit: +---<11>-<0>-+ +out-lit: +---<22>-<0>-+ +out-lit: +---<33>-<0>-+- +out-lit: Dist3 : +out-lit: +---<11>-<1>-+ +out-lit: +---<11>-<2>-+ +out-lit: +---<11>-<3>-+ +out-lit: +---<22>-<1>-+ +out-lit: +---<22>-<2>-+ +out-lit: +---<22>-<3>-+ +out-lit: +---<33>-<1>-+ +out-lit: +---<33>-<2>-+ +out-lit: +---<33>-<3>-+- +out-lit: Dist4 : +out-lit: +---<11>-<1>-<2>-<3>-+ +out-lit: +---<11>-<5>-<6>-<7>-+ +out-lit: +---<22>-<1>-<2>-<3>-+ +out-lit: +---<22>-<5>-<6>-<7>-+ +out-lit: +---<33>-<1>-<2>-<3>-+ +out-lit: +---<33>-<5>-<6>-<7>-+- +out-lit: Down :-<11>-<10>-<9>-<8>-<7>-<6>-<5>-<4>-<3>-<2>-<1>-<0>- +out-lit: Combi : +out-lit: +---<1>-<2>-<3>-<·>-+ +out-lit: +---<1>-<2>-<2>-<·>-+ +out-lit: +---<1>-<2>-<1>-<·>-+ +out-lit: +---<1>-<2>-<0>-<·>-+ +out-lit: +---<1>-<1>-<3>-<·>-+ +out-lit: +---<1>-<1>-<2>-<·>-+ +out-lit: +---<1>-<1>-<1>-<·>-+ +out-lit: +---<1>-<1>-<0>-<·>-+ +out-lit: +---<1>-<0>-<3>-<·>-+ +out-lit: +---<1>-<0>-<2>-<·>-+ +out-lit: +---<1>-<0>-<1>-<·>-+ +out-lit: +---<1>-<0>-<0>-<·>-+ +out-lit: +---<0>-<2>-<3>-<·>-+ +out-lit: +---<0>-<2>-<2>-<·>-+ +out-lit: +---<0>-<2>-<1>-<·>-+ +out-lit: +---<0>-<2>-<0>-<·>-+ +out-lit: +---<0>-<1>-<3>-<·>-+ +out-lit: +---<0>-<1>-<2>-<·>-+ +out-lit: +---<0>-<1>-<1>-<·>-+ +out-lit: +---<0>-<1>-<0>-<·>-+ +out-lit: +---<0>-<0>-<3>-<·>-+ +out-lit: +---<0>-<0>-<2>-<·>-+ +out-lit: +---<0>-<0>-<1>-<·>-+ +out-lit: +---<0>-<0>-<0>-<·>-+- +out-lit: OnOff : +out-lit: +---<1>-<2>-<3>-<·>-+ +out-lit: +---<1>-<2>-<·>-+ +out-lit: +---<1>-<3>-<·>-+ +out-lit: +---<1>-<·>-+ +out-lit: +---<2>-<3>-<·>-+ +out-lit: +---<2>-<·>-+ +out-lit: +---<3>-<·>-+ +out-lit: +---<·>-+- +return: 0 +END + + +TEST "type sequence manipulation" TypeSeqManipl_test <-<2>-<3>-<7>-<8>-<9>- +out: Seq :-<1>-<2>-<3>-<7>-<8>-<9>- +out: SeqList :-<1>-<2>-<3>-<7>-<8>-<9>- +out: NulS :- +out: Prepend1 :-<5>-<1>-<2>-<3>- +out: Prepend2 :-<·>-<1>-<2>-<3>- +out: Prepend3 :-<5>- +out: Prepend4 :- +out: Seq_0 :-<7>-<8>-<9>-<1>-<2>-<3>- +out: Seq_1 :-<8>-<9>-<1>-<2>-<3>- +out: Seq_2 :-<9>-<1>-<2>-<3>- +out: Seq_3 :-<1>-<2>-<3>- +out: Seq_4 :-<2>-<3>- +out: Seq_5 :-<3>- +out: Seq_6 :- +out: Head_0 :-<7>- +out: Head_1 :-<8>- +out: Head_2 :-<9>- +out: Head_3 :-<1>- +out: Head_4 :-<2>- +out: Head_5 :-<3>- +out: Head_6 :- +out: Seq :-<1>-<2>-<3>-<7>-<8>-<9>- +out: List :-<1>-<2>-<3>-<7>-<8>-<9>- +out: First :-<1>- +out: Tail :-<2>-<3>-<7>-<8>-<9>- +out: Prefix :-<1>-<2>-<3>-<7>-<8>- +out: Last :-<9>- +out: HeadEnd :-<1>-<9>- +return: 0 +END + + +TEST "TypeTuple_test" TypeTuple_test <-<3>-<5>- +out-lit: L2 :-<2>-<4>- +out-lit: L3 :-<7>- +out-lit: Tup1 :TYPES-<>-<1>-<3>-<5>- +out-lit: Tup1() :...Tuple((1),(3),(5)) +out-lit: tup1x :...Tuple({11},(3),(5)) +out-lit: Type1 :-<1>-<3>-<5>- +out-lit: T_L1 :TYPES-[]-<1>-<3>-<5>- +out-lit: T1 :TYPES-<>-<1>-<3>-<5>- +out-lit: tup1 :...Tuple({8},(3),(5)) +out-lit: tup2 :...Tuple({9},(3),(5)) +out-lit: Prepend :TYPES-[]--<1>-<3>-<5>- +out-lit: prepend :...Tuple(22,{9},(3),(5)) +out-lit: : +out-lit: : ---Sub-Tuple-Types---- +out-lit: T_L2 :TYPES-[]-<2>-<4>-<1>-<3>-<5>- +out-lit: Head :-<2>- +out-lit: Tail :-<4>-<1>-<3>-<5>- +out-lit: T2 :TYPES-<>-<2>-<4>-<1>-<3>-<5>- +out-lit: Head2 :-<2>- +out-lit: Tail2 :-<4>-<1>-<3>-<5>- +out-lit: T2::Type :-<2>-<4>-<1>-<3>-<5>- +out-lit: T2::TailType :-<4>-<1>-<3>-<5>- +out-lit: T2::TupleType :TYPES-<>-<2>-<4>-<1>-<3>-<5>- +out-lit: T2::ThisType :TYPES-<>-<2>-<4>-<1>-<3>-<5>- +out-lit: T2::Tail :TYPES-<>-<4>-<1>-<3>-<5>- +out-lit: T2::ArgList :-<2>-<4>-<1>-<3>-<5>- +out-lit: T_L2::Type :-<2>-<4>-<1>-<3>-<5>- +out-lit: T_L2::TailType :-<4>-<1>-<3>-<5>- +out-lit: T_L2::TupleType :TYPES-<>-<2>-<4>-<1>-<3>-<5>- +out-lit: T_L2::ThisType :TYPES-[]-<2>-<4>-<1>-<3>-<5>- +out-lit: T_L2::Tail :TYPES-[]-<4>-<1>-<3>-<5>- +out-lit: T_L2::ArgList :-<2>-<4>-<1>-<3>-<5>- +out-lit: NulT::Type :- +out-lit: NulT::TailType :- +out-lit: NulT::TupleType :TYPES-<>- +out-lit: NulT::ThisType :TYPES-<>- +out-lit: NulT::Tail :TYPES-<>- +out-lit: NulT::ArgList :- +out-lit: NulL::Type :- +out-lit: NulL::TailType :- +out-lit: NulL::TupleType :TYPES-<>- +out-lit: NulL::ThisType :TYPES-[]- +out-lit: NulL::Tail :TYPES-[]- +out-lit: NulL::ArgList :- +out-lit: : +out-lit: : ---Shifted-Tuple--- +out-lit: Ty_0 :-<2>-<4>-<7>- +out-lit: Ty_1 :-<4>-<7>- +out-lit: Ty_2 :-<7>- +out-lit: Ty_3 :- +out-lit: Ty_4 :- +out-lit: T_0 :TYPES-[]-<2>-<4>-<7>- +out-lit: T_1 :TYPES-[]-<4>-<7>- +out-lit: T_2 :TYPES-[]-<7>- +out-lit: T_3 :TYPES-[]- +out-lit: T_4 :TYPES-[]- +out-lit: tu3 :...Tuple((2),(4),(7)) +out-lit: tu3_0 :...Tuple((2),(4),(7)) +out-lit: tu3_1 :...Tuple((4),(7)) +out-lit: tu3_2 :...Tuple((7)) +out-lit: tu3_3 :...Tuple() +out-lit: tu3_4 :...Tuple() +out-lit: : +out-lit: : ---creating-Tuples--- +out-lit: tup1 :...Tuple((1),(3),(5)) +out-lit: tup11 :...Tuple({11},(3),(5)) +out-lit: tup12 :...Tuple((1),{33},(5)) +out-lit: tup13 :...Tuple({11},{33},(5)) +out-lit: Tup2 :TYPES-<>---<11>- +out-lit: tup2 :...Tuple(41,42,{43}) +out-lit: Tup22 :TYPES-<>--<11>- +out-lit: tup22 :...Tuple(42,{43}) +out-lit: Tup222 :TYPES-<>-<11>- +out-lit: tup222 :...Tuple({43}) +out-lit: T0T :TYPES-<>- +out-lit: T0L :TYPES-[]- +out-lit: nullT :...Tuple() +out-lit: nullL :...Tuple() +out-lit: nulTcpy :...Tuple() +out-lit: nulTref :...Tuple() +out-lit: : +out-lit: : ---build-from-sub-Tuples--- +out-lit: T1357L :TYPES-[]-<1>-<3>-<5>-<7>- +out-lit: T1357T :TYPES-<>-<1>-<3>-<5>-<7>- +out-lit: T135L :TYPES-[]-<1>-<3>-<5>- +out-lit: T57T :TYPES-<>-<5>-<7>- +out-lit: T35T :TYPES-<>-<3>-<5>- +out-lit: sub135 :...Tuple((1),(3),(5)) +out-lit: b_135 :...Tuple((1),(3),(5),(7)) +out-lit: b_135 :...Tuple((1),(3),(5),(7)) +out-lit: b_135 :...Tuple((1),(3),(5),(7)) +out-lit: b_135 :...Tuple((1),(3),(5),(7)) +out-lit: sub57 :...Tuple((5),(7)) +out-lit: b_57 :...Tuple((1),(3),(5),(7)) +out-lit: sub35 :...Tuple({8},{8}) +out-lit: b_35 :...Tuple((1),{8},{8},(7)) +out-lit: b_35 :...Tuple((1),(3),(5),(7)) +out-lit: b_35 :...Tuple((1),(3),(5),(7)) +out-lit: sub78 :...Tuple({77},{88}) +out-lit: b_78 :...Tuple((1),(3),(5),{77}) +out-lit: b_nul :...Tuple((1),(3),(5),(7)) +out-lit: b_nul :...Tuple((1),(3),(5),(7)) +out-lit: b_nul2 :...Tuple() +out-lit: b_nul2 :...Tuple() +out-lit: : +out-lit: : ---copy-operations--- +out-lit: tup1 :...Tuple({11},{33},(5)) +out-lit: tup11 :...Tuple({11},{33},{44}) +out-lit: tup1 :...Tuple({11},{33},{44}) +out-lit: tupL :...Tuple({11},{33},{44}) +out-lit: tup1L :...Tuple({11},{33},{44}) +out-lit: : +out-lit: : ---value-access--- +out-lit: TupX :TYPES-[]-<2>-<4>-<2>-<4>- +out-lit: tupX :...Tuple((2),(4),(2),(4)) +out-lit: tu2 :...Tuple((2),(4)) +out-lit: tu2 :...Tuple({5},{5}) +out-lit: tupX :...Tuple((2),(4),{5},{5}) +out-lit: T4 :TYPES-<>-<2>-<4>- +out-lit: t4 :...Tuple({5},{5}) +out-lit: TupX::Type :-<2>-<4>-<2>-<4>- +out-lit: TupX::TailType :-<4>-<2>-<4>- +out-lit: TupX::ThisType :TYPES-[]-<2>-<4>-<2>-<4>- +out-lit: TupX::TupleType :TYPES-<>-<2>-<4>-<2>-<4>- +out-lit: TupT::Type :-<2>-<4>-<2>-<4>- +out-lit: TupT::TailType :-<4>-<2>-<4>- +out-lit: TupT::ThisType :TYPES-<>-<2>-<4>-<2>-<4>- +out-lit: TupT::TupleType :TYPES-<>-<2>-<4>-<2>-<4>- +out-lit: tupXcopy :...Tuple((2),(4),{5},{5}) +out-lit: tupXcast :...Tuple((2),(4),{5},{5}) +return: 0 +END + + +TEST "Typelist combinations generator" GeneratorCombinations_test <-<2>-+ +out-lit: +---<1>-<4>-+ +out-lit: +---<1>-<6>-+ +out-lit: +---<3>-<2>-+ +out-lit: +---<3>-<4>-+ +out-lit: +---<3>-<6>-+ +out-lit: +---<5>-<2>-+ +out-lit: +---<5>-<4>-+ +out-lit: +---<5>-<6>-+- +out-lit: All-Test-Combinations--<12>-<14>-<16>-<32>-<34>-<36>-<52>-<54>-<56>-| +return: 0 +END + + +TEST "custom allocator(I)" SimpleAllocator_test <Binding[] +out-lit: aSymbol --->Binding[aSymbol/0()] +out-lit: a.compound_Symbol-with-various.parts --->Binding[a.compound_Symbol-with-various.parts/0()] +out-lit: trailing Garbage allowed. ☢☢ eat ☠☠☠ atomic ☠☠☠ waste ☢☢ --->Binding[Garbage/0(), allowed/0(), trailing/0()] +out-lit: a, list , of ,symbols. --->Binding[a/0(), list/0(), of/0(), symbols/0()] +out-lit: nullary(). --->Binding[nullary/0()] +out-lit: nullary( ) --->Binding[nullary/0()] +out-lit: nullary . --->Binding[nullary/0()] +out-lit: predicate( with-argument ) --->Binding[predicate/1(with-argument)] +out-lit: Binding[advice.type.n7lumiera6advice4test12_GLOBAL__N_111DummyAdviceE/0(), one/0(), three/1(four), two/0()] +out-lit: b0==Binding[] +out-lit: b1==Binding[cat1/0(), cat2/0()] +out-lit: b2==Binding[cat1/0(), cat2/0()] +out-lit: b2==Binding[advice.type.n3lib4time4TimeE/0(), cat1/0(), cat2/0(), cat3/1(zzz)] +return: 0 +END + + +TEST "Advice index implementation" AdviceIndex_test < +out-lit: wrapping cmdline: +out-lit: ... +out-lit: --> +out-lit: wrapping cmdline:spam... +out-lit: 0|spam| +out-lit: -->spam +out-lit: wrapping cmdline: +out-lit: spam... +out-lit: 0|spam| +out-lit: -->spam +out-lit: wrapping cmdline:eat more spam... +out-lit: 0|eat| +out-lit: 1|more| +out-lit: 2|spam| +out-lit: -->eat more spam +out-lit: wrapping cmdline: oo _O()O_ ☭ + €... +out-lit: 0|oo| +out-lit: 1|_O()O_| +out-lit: 2|☭| +out-lit: 3|+| +out-lit: 4|€| +out-lit: -->oo _O()O_ ☭ + € +out-lit: wrapping cmdline:Ω ooΩ oΩo Ωoo... +out-lit: 0|Ω| +out-lit: 1|ooΩ| +out-lit: 2|oΩo| +out-lit: 3|Ωoo| +out-lit: -->Ω ooΩ oΩo Ωoo +out-lit: Standard Cmdlineformat:one two +END + + +TEST "ConfigFlags_test" ConfigFlags_test <- +out-lit: Conf2 :-<2>- +out-lit: Conf3 :-<3>- +out-lit: Conf4 :-<2>-<4>- +out-lit: AllFlags :-<1>-<2>-<3>-<4>- +out-lit: __________________________ +out-lit: __________________________ check_flags() +out-lit: Flags1 :-<2>-<4>- +out-lit: Flags2 :-<2>-<4>- +out-lit: SimpleConfig_defined_by_Typelist :-<1>- +out-lit: AnotherConfig_defined_by_Typelist :-<1>-<2>-<3>-<4>- +out-lit: __________________________ +out-lit: __________________________ check_instantiation() +out-lit: defined Conf0? ---> 0 +out-lit: defined Conf1? ---> 1 +out-lit: defined Conf2? ---> 1 +out-lit: defined Conf3? ---> 1 +out-lit: defined Conf4? ---> 1 +out-lit: defined Trash? ---> 0 +out-lit: __________________________ +out-lit: __________________________ check_filter() +out-lit: SomeFlagsets : +out-lit: +---<1>-<3>-+ +out-lit: +---<2>-<4>-+- +out-lit: Configs_defined_by_Flagsets : +out-lit: +-Conf-[-<1>-<3>-] +out-lit: +-Conf-[-<2>-<4>-]- +out-lit: Filter_possible_Configs : +out-lit: +-Conf-[-<2>-<4>-]- +out-lit: AllFlagCombinations : +out-lit: +---<1>-<2>-<3>-<4>-<·>-+ +out-lit: +---<1>-<2>-<3>-<·>-+ +out-lit: +---<1>-<2>-<4>-<·>-+ +out-lit: +---<1>-<2>-<·>-+ +out-lit: +---<1>-<3>-<4>-<·>-+ +out-lit: +---<1>-<3>-<·>-+ +out-lit: +---<1>-<4>-<·>-+ +out-lit: +---<1>-<·>-+ +out-lit: +---<2>-<3>-<4>-<·>-+ +out-lit: +---<2>-<3>-<·>-+ +out-lit: +---<2>-<4>-<·>-+ +out-lit: +---<2>-<·>-+ +out-lit: +---<3>-<4>-<·>-+ +out-lit: +---<3>-<·>-+ +out-lit: +---<4>-<·>-+ +out-lit: +---<·>-+- +out-lit: ListAllConfigs : +out-lit: +-Conf-[-<1>-<2>-<3>-<4>-] +out-lit: +-Conf-[-<1>-<2>-<3>-] +out-lit: +-Conf-[-<1>-<2>-<4>-] +out-lit: +-Conf-[-<1>-<2>-] +out-lit: +-Conf-[-<1>-<3>-<4>-] +out-lit: +-Conf-[-<1>-<3>-] +out-lit: +-Conf-[-<1>-<4>-] +out-lit: +-Conf-[-<1>-] +out-lit: +-Conf-[-<2>-<3>-<4>-] +out-lit: +-Conf-[-<2>-<3>-] +out-lit: +-Conf-[-<2>-<4>-] +out-lit: +-Conf-[-<2>-] +out-lit: +-Conf-[-<3>-<4>-] +out-lit: +-Conf-[-<3>-] +out-lit: +-Conf-[-<4>-] +out-lit: +-Conf-[-]- +out-lit: Filter_all_possible_Configs : +out-lit: +-Conf-[-<1>-] +out-lit: +-Conf-[-<2>-<3>-] +out-lit: +-Conf-[-<2>-<4>-] +out-lit: +-Conf-[-<2>-] +out-lit: +-Conf-[-<3>-]- +out-lit: __________________________ +out-lit: __________________________ check_FlagInfo() +out-lit: Flags1 :-<1>-<3>- +out-lit: max bit : 3 +out-lit: binary code: 10 +out-lit: SomeConfigs : +out-lit: +-Conf-[-<1>-<3>-] +out-lit: +-Conf-[-<2>-<4>-]- +out-lit: max bit in [SomeConfigs] : 4 +out-lit: TestVisitor application: +out-lit: visit(code=10) --> +out-lit: +-Conf-[-<1>-<3>-]- +out-lit: visit(code=20) --> +out-lit: +-Conf-[-<2>-<4>-]- +out-lit: __________________________ +out-lit: __________________________ check_ConfigSelector() +out-lit: Possible_Configs : +out-lit: +-Conf-[-<1>-] +out-lit: +-Conf-[-<2>-<3>-] +out-lit: +-Conf-[-<2>-<4>-] +out-lit: +-Conf-[-<2>-] +out-lit: +-Conf-[-<3>-]- +out-lit: Flag-code = 2 ConfigSelector() ---> 1010 +out-lit: Flag-code = 12 ConfigSelector() ---> 1023 +out-lit: Flag-code = 20 ConfigSelector() ---> 1024 +out-lit: Flag-code = 4 ConfigSelector() ---> 1020 +out-lit: Flag-code = 8 ConfigSelector() ---> 1030 +out: LUMIERA_ERROR_INVALID:invalid input or parameters.+No preconfigured factory for config-bits=10111 +return: 0 +END + + +TEST "CustomSharedPtr_test" CustomSharedPtr_test < : Yes +out: HasNested_Core : No +out: HasMember_honk : Yes +out: HasMember_honk : Yes +out: HasFunSig_honk : Yes +out: HasFunSig_honk : No +return: 0 +END + + +TEST "ExceptionError_test" ExceptionError_test < +out: ^hey Joe! +out: ^he says: hey Joe! +out: ^the truth: 0 +out: ^just a number: 1.234.*e\+56 +out: ^12345X +return: 0 +END + + +TEST "formatting by string template" FormatString_test <-<2>-<3>- +out-lit: List2 :-<5>-<6>-<7>- +out-lit: Args :-<5>-<9>- +out-lit: NewArgs :-<1>-<5>-<9>- +out-lit: : +out-lit: : ---Apply--- +out-lit: tup0 :...Tuple() +out-lit: tup1 :...Tuple(11) +out-lit: tup2 :...Tuple(11,12) +out-lit: tup3 :...Tuple(11,12,13) +out-lit: : +out-lit: : ---Bind---- +return: 0 +END + + +TEST "functional composition" FunctionComposition_test <: +out-lit: DD<5>: ***** +out-lit: DD<9>: I'm fine* +out-lit: I'm special, what the f** is going on here?************ +return: 0 +END + + +TEST "inline val/ref wrapper" ItemWrapper_test < : Yes +out: can_STL_ForEach : Yes +out: can_STL_ForEach : Yes +out: can_STL_ForEach : Yes +out: can_STL_ForEach : Yes +out: can_STL_ForEach : Yes +out: can_STL_ForEach : No +out: can_STL_ForEach : No +out: can_STL_ForEach : No +out: can_STL_ForEach : No +out: can_IterForEach : No +out: can_IterForEach : No +out: can_IterForEach : No +out: can_IterForEach : No +out: can_IterForEach : No +out: can_IterForEach : No +out: can_IterForEach : Yes +out: can_IterForEach : Yes +out: can_IterForEach : Yes +out: can_IterForEach : Yes +END + + +TEST "Linked iterable elements" LinkedElements_test < [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, ] +out-lit: removed 0 ---> [ 1, 2, 3, 4, 5, 6, 7, 8, 9, ] +out-lit: removed 9 ---> [ 0, 1, 2, 3, 4, 5, 6, 7, 8, ] +out-lit: removed 5 ---> [ 0, 1, 2, 3, 4, 6, 7, 8, 9, ] +out-lit: removed 0 2 4 6 8 ---> [ 1, 3, 5, 7, 9, ] +out-lit: removed 1 3 5 7 9 ---> [ 0, 2, 4, 6, 8, ] +out-lit: removed 0 1 2 3 4 5 6 7 8 9 ---> [ ] +out-lit: removed 0 1 2 3 4 5 6 7 8 ---> [ 9, ] +out-lit: removed 1 2 3 4 5 6 7 8 9 ---> [ 0, ] +out-lit: removed 0 1 2 3 4 6 7 8 9 ---> [ 5, ] +END + + +TEST "SanitizedIdentifier_test" SanitizedIdentifier_test < 'Word' +out-lit: 'a Sentence' --> 'a_Sentence' +out-lit: 'trailing Withespace +out-lit: ' --> 'trailing_Withespace' +out-lit: 'with a lot +out-lit: of Whitespace' --> 'with_a_lot_of_Whitespace' +out-lit: 'with"much (punctuation)[]!' --> 'withmuch_(punctuation)' +out-lit: '§&Ω%€ leading garbage' --> 'leading_garbage' +out-lit: 'mixed Ω garbage' --> 'mixed_garbage' +out-lit: 'Bääääh!!' --> 'Bh' +out-lit: '§&Ω%€' --> '' +END + + +TEST "ScopedHolder_test" ScopedHolder_test <... +out: checking ScopedPtrHolder... +END + + +TEST "ScopedHolderTransfer_test" ScopedHolderTransfer_test <... +out-lit: . +out-lit: ..install one element at index[0] +out-lit: . +out-lit: ..*** resize table to 16 elements +out-lit: . +out-lit: .throw some exceptions... +out-lit: checking ScopedPtrHolder... +out-lit: . +out-lit: ..install one element at index[0] +out-lit: . +out-lit: ..*** resize table to 16 elements +out-lit: . +out-lit: .throw some exceptions... +END + + +TEST "Managed Collection (I)" ScopedCollection_test < Testgroup=ALL +out: --> Test-ID =--missing-- +out: --> remaining= +out: Testing invocation with cmdline: --help... +out: --> Testgroup=ALL +out: --> Test-ID =--missing-- +out: --> remaining= +out: Testing invocation with cmdline: --group TestGroupID... +out: --> Testgroup=TestGroupID +out: --> Test-ID =--missing-- +out: --> remaining= +out: Testing invocation with cmdline: SingleTestID... +out: --> Testgroup=ALL +out: --> Test-ID =SingleTestID +out: --> remaining=SingleTestID +out: Testing invocation with cmdline: SingleTestID --group TestGroupID... +out: --> Testgroup=TestGroupID +out: --> Test-ID =SingleTestID +out: --> remaining=SingleTestID +out: Testing invocation with cmdline: --group TestGroupID SingleTestID ... +out: --> Testgroup=TestGroupID +out: --> Test-ID =SingleTestID +out: --> remaining=SingleTestID +out: Testing invocation with cmdline: --group TestGroupID SingleTestID spam eggs... +out: --> Testgroup=TestGroupID +out: --> Test-ID =SingleTestID +out: --> remaining=SingleTestID spam eggs +out: Testing invocation with cmdline: SingleTestID spam --group TestGroupID --eggs... +out: --> Testgroup=TestGroupID +out: --> Test-ID =SingleTestID +out: --> remaining=SingleTestID spam --eggs +END + + +TEST "TypeList_test" TypeList_test < > +out: ctor DoIt > +out: ctor DoIt > +out: ctor DoIt > +out: ctor DoIt > +out: ctor DoIt > +out: devouring__Block< 2>__ +out: devouring__Block< 5>__ +out: devouring__Block<13>__ +out: gulp! +out: dtor DoIt > +out: dtor DoIt > +out: dtor DoIt > +out: dtor DoIt > +out: dtor DoIt > +out: dtor DoIt > +return: 0 +END + + +TEST "typelist manipulation" TypeListManip_test <-<2>-<3>- +out-lit: List2 :-<5>-<6>-<7>- +out-lit: Added2 :-<3>-<4>-<5>- +out-lit: FilterEven :-<2>-<6>- +out-lit: Append1 :- +out-lit: Append2 :-<11>-<22>- +out-lit: Append3 :-<111>- +out-lit: Append4 :-<222>- +out-lit: Append5 :-<1>-<2>-<3>- +out-lit: Append6 :-<5>-<6>-<7>- +out-lit: Append7 :-<111>-<5>-<6>-<7>- +out-lit: Append8 :-<1>-<2>-<3>-<222>- +out-lit: Append9 :-<1>-<2>-<3>-<5>-<6>-<7>- +out-lit: Overl01 :- +out-lit: Overl02 :- +out-lit: Overl03 :- +out-lit: Overl04 :-<9>-<8>-<3>- +out-lit: Overl05 :-<1>-<9>-<8>- +out-lit: Overl06 :-<1>-<2>-<9>- +out-lit: Overl07 :-<1>-<2>-<3>- +out-lit: Overl08 :-<1>-<2>-<3>- +out-lit: Overl09 :-<1>-<2>-<3>- +out-lit: Overl10 :-<1>-<1>-<2>- +out-lit: Overl11 :-<1>-<2>-<3>- +out-lit: Overl12 :-<1>-<2>-<3>- +out-lit: Overl13 :-<1>-<2>-<3>- +out-lit: Front1 :- +out-lit: Front2 :-<1>- +out-lit: Front3 :-<1>-<2>-<3>- +out-lit: Back1 :-<2>-<3>- +out-lit: Back2 :-<3>- +out-lit: Back3 :- +out-lit: Front4 :-<1>- +out-lit: Back4 :-<2>-<3>- +out-lit: Prefix :-<1>-<2>- +out-lit: ElmL :-<3>- +out-lit: NPrefix :- +out-lit: Types :-<3>- +out-lit: NList :- +out-lit: Types :- +out-lit: LL :-<1>-<2>-<3>-<5>-<6>-<7>- +out-lit: List :-<1>-<2>-<3>-<5>-<6>-<7>- +out-lit: First :-<1>- +out-lit: Tail :-<2>-<3>-<5>-<6>-<7>- +out-lit: Prefix :-<1>-<2>-<3>-<5>-<6>- +out-lit: Last :-<7>- +out-lit: HeadEnd :-<1>-<7>- +out-lit: Prefix1 : +out-lit: +---<11>-<22>-+- +out-lit: Prefix2 : +out-lit: +---<101>-<1>-+ +out-lit: +---<101>-<2>-+ +out-lit: +---<101>-<3>-+- +out-lit: Prefix3 : +out-lit: +---<1>-+ +out-lit: +---<2>-+ +out-lit: +---<3>-+- +out-lit: Prefix4 : +out-lit: +---<111>-<1>-<2>-<3>-+ +out-lit: +---<111>-<0>-+ +out-lit: +---<111>-<5>-<6>-<7>-+- +out-lit: Prefix5 : +out-lit: +---<1>-<2>-<3>-<5>-+ +out-lit: +---<1>-<2>-<3>-<6>-+ +out-lit: +---<1>-<2>-<3>-<7>-+- +out-lit: Prefix6 : +out-lit: +---<1>-<2>-<3>-<1>-<2>-<3>-+ +out-lit: +---<1>-<2>-<3>-<0>-+ +out-lit: +---<1>-<2>-<3>-<5>-<6>-<7>-+- +out-lit: Dist1 : +out-lit: +---<11>-<1>-+ +out-lit: +---<11>-<2>-+ +out-lit: +---<11>-<3>-+- +out-lit: Dist2 : +out-lit: +---<11>-<0>-+ +out-lit: +---<22>-<0>-+ +out-lit: +---<33>-<0>-+- +out-lit: Dist3 : +out-lit: +---<11>-<1>-+ +out-lit: +---<11>-<2>-+ +out-lit: +---<11>-<3>-+ +out-lit: +---<22>-<1>-+ +out-lit: +---<22>-<2>-+ +out-lit: +---<22>-<3>-+ +out-lit: +---<33>-<1>-+ +out-lit: +---<33>-<2>-+ +out-lit: +---<33>-<3>-+- +out-lit: Dist4 : +out-lit: +---<11>-<1>-<2>-<3>-+ +out-lit: +---<11>-<5>-<6>-<7>-+ +out-lit: +---<22>-<1>-<2>-<3>-+ +out-lit: +---<22>-<5>-<6>-<7>-+ +out-lit: +---<33>-<1>-<2>-<3>-+ +out-lit: +---<33>-<5>-<6>-<7>-+- +out-lit: Down :-<11>-<10>-<9>-<8>-<7>-<6>-<5>-<4>-<3>-<2>-<1>-<0>- +out-lit: Combi : +out-lit: +---<1>-<2>-<3>-<·>-+ +out-lit: +---<1>-<2>-<2>-<·>-+ +out-lit: +---<1>-<2>-<1>-<·>-+ +out-lit: +---<1>-<2>-<0>-<·>-+ +out-lit: +---<1>-<1>-<3>-<·>-+ +out-lit: +---<1>-<1>-<2>-<·>-+ +out-lit: +---<1>-<1>-<1>-<·>-+ +out-lit: +---<1>-<1>-<0>-<·>-+ +out-lit: +---<1>-<0>-<3>-<·>-+ +out-lit: +---<1>-<0>-<2>-<·>-+ +out-lit: +---<1>-<0>-<1>-<·>-+ +out-lit: +---<1>-<0>-<0>-<·>-+ +out-lit: +---<0>-<2>-<3>-<·>-+ +out-lit: +---<0>-<2>-<2>-<·>-+ +out-lit: +---<0>-<2>-<1>-<·>-+ +out-lit: +---<0>-<2>-<0>-<·>-+ +out-lit: +---<0>-<1>-<3>-<·>-+ +out-lit: +---<0>-<1>-<2>-<·>-+ +out-lit: +---<0>-<1>-<1>-<·>-+ +out-lit: +---<0>-<1>-<0>-<·>-+ +out-lit: +---<0>-<0>-<3>-<·>-+ +out-lit: +---<0>-<0>-<2>-<·>-+ +out-lit: +---<0>-<0>-<1>-<·>-+ +out-lit: +---<0>-<0>-<0>-<·>-+- +out-lit: OnOff : +out-lit: +---<1>-<2>-<3>-<·>-+ +out-lit: +---<1>-<2>-<·>-+ +out-lit: +---<1>-<3>-<·>-+ +out-lit: +---<1>-<·>-+ +out-lit: +---<2>-<3>-<·>-+ +out-lit: +---<2>-<·>-+ +out-lit: +---<3>-<·>-+ +out-lit: +---<·>-+- +return: 0 +END + + +TEST "type sequence manipulation" TypeSeqManipl_test <-<2>-<3>-<7>-<8>-<9>- +out: Seq :-<1>-<2>-<3>-<7>-<8>-<9>- +out: SeqList :-<1>-<2>-<3>-<7>-<8>-<9>- +out: NulS :- +out: Prepend1 :-<5>-<1>-<2>-<3>- +out: Prepend2 :-<·>-<1>-<2>-<3>- +out: Prepend3 :-<5>- +out: Prepend4 :- +out: Seq_0 :-<7>-<8>-<9>-<1>-<2>-<3>- +out: Seq_1 :-<8>-<9>-<1>-<2>-<3>- +out: Seq_2 :-<9>-<1>-<2>-<3>- +out: Seq_3 :-<1>-<2>-<3>- +out: Seq_4 :-<2>-<3>- +out: Seq_5 :-<3>- +out: Seq_6 :- +out: Head_0 :-<7>- +out: Head_1 :-<8>- +out: Head_2 :-<9>- +out: Head_3 :-<1>- +out: Head_4 :-<2>- +out: Head_5 :-<3>- +out: Head_6 :- +out: Seq :-<1>-<2>-<3>-<7>-<8>-<9>- +out: List :-<1>-<2>-<3>-<7>-<8>-<9>- +out: First :-<1>- +out: Tail :-<2>-<3>-<7>-<8>-<9>- +out: Prefix :-<1>-<2>-<3>-<7>-<8>- +out: Last :-<9>- +out: HeadEnd :-<1>-<9>- +return: 0 +END + + +TEST "TypeTuple_test" TypeTuple_test <-<3>-<5>- +out-lit: L2 :-<2>-<4>- +out-lit: L3 :-<7>- +out-lit: Tup1 :TYPES-<>-<1>-<3>-<5>- +out-lit: Tup1() :...Tuple((1),(3),(5)) +out-lit: tup1x :...Tuple({11},(3),(5)) +out-lit: Type1 :-<1>-<3>-<5>- +out-lit: T_L1 :TYPES-[]-<1>-<3>-<5>- +out-lit: T1 :TYPES-<>-<1>-<3>-<5>- +out-lit: tup1 :...Tuple({8},(3),(5)) +out-lit: tup2 :...Tuple({9},(3),(5)) +out-lit: Prepend :TYPES-[]--<1>-<3>-<5>- +out-lit: prepend :...Tuple(22,{9},(3),(5)) +out-lit: : +out-lit: : ---Sub-Tuple-Types---- +out-lit: T_L2 :TYPES-[]-<2>-<4>-<1>-<3>-<5>- +out-lit: Head :-<2>- +out-lit: Tail :-<4>-<1>-<3>-<5>- +out-lit: T2 :TYPES-<>-<2>-<4>-<1>-<3>-<5>- +out-lit: Head2 :-<2>- +out-lit: Tail2 :-<4>-<1>-<3>-<5>- +out-lit: T2::Type :-<2>-<4>-<1>-<3>-<5>- +out-lit: T2::TailType :-<4>-<1>-<3>-<5>- +out-lit: T2::TupleType :TYPES-<>-<2>-<4>-<1>-<3>-<5>- +out-lit: T2::ThisType :TYPES-<>-<2>-<4>-<1>-<3>-<5>- +out-lit: T2::Tail :TYPES-<>-<4>-<1>-<3>-<5>- +out-lit: T2::ArgList :-<2>-<4>-<1>-<3>-<5>- +out-lit: T_L2::Type :-<2>-<4>-<1>-<3>-<5>- +out-lit: T_L2::TailType :-<4>-<1>-<3>-<5>- +out-lit: T_L2::TupleType :TYPES-<>-<2>-<4>-<1>-<3>-<5>- +out-lit: T_L2::ThisType :TYPES-[]-<2>-<4>-<1>-<3>-<5>- +out-lit: T_L2::Tail :TYPES-[]-<4>-<1>-<3>-<5>- +out-lit: T_L2::ArgList :-<2>-<4>-<1>-<3>-<5>- +out-lit: NulT::Type :- +out-lit: NulT::TailType :- +out-lit: NulT::TupleType :TYPES-<>- +out-lit: NulT::ThisType :TYPES-<>- +out-lit: NulT::Tail :TYPES-<>- +out-lit: NulT::ArgList :- +out-lit: NulL::Type :- +out-lit: NulL::TailType :- +out-lit: NulL::TupleType :TYPES-<>- +out-lit: NulL::ThisType :TYPES-[]- +out-lit: NulL::Tail :TYPES-[]- +out-lit: NulL::ArgList :- +out-lit: : +out-lit: : ---Shifted-Tuple--- +out-lit: Ty_0 :-<2>-<4>-<7>- +out-lit: Ty_1 :-<4>-<7>- +out-lit: Ty_2 :-<7>- +out-lit: Ty_3 :- +out-lit: Ty_4 :- +out-lit: T_0 :TYPES-[]-<2>-<4>-<7>- +out-lit: T_1 :TYPES-[]-<4>-<7>- +out-lit: T_2 :TYPES-[]-<7>- +out-lit: T_3 :TYPES-[]- +out-lit: T_4 :TYPES-[]- +out-lit: tu3 :...Tuple((2),(4),(7)) +out-lit: tu3_0 :...Tuple((2),(4),(7)) +out-lit: tu3_1 :...Tuple((4),(7)) +out-lit: tu3_2 :...Tuple((7)) +out-lit: tu3_3 :...Tuple() +out-lit: tu3_4 :...Tuple() +out-lit: : +out-lit: : ---creating-Tuples--- +out-lit: tup1 :...Tuple((1),(3),(5)) +out-lit: tup11 :...Tuple({11},(3),(5)) +out-lit: tup12 :...Tuple((1),{33},(5)) +out-lit: tup13 :...Tuple({11},{33},(5)) +out-lit: Tup2 :TYPES-<>---<11>- +out-lit: tup2 :...Tuple(41,42,{43}) +out-lit: Tup22 :TYPES-<>--<11>- +out-lit: tup22 :...Tuple(42,{43}) +out-lit: Tup222 :TYPES-<>-<11>- +out-lit: tup222 :...Tuple({43}) +out-lit: T0T :TYPES-<>- +out-lit: T0L :TYPES-[]- +out-lit: nullT :...Tuple() +out-lit: nullL :...Tuple() +out-lit: nulTcpy :...Tuple() +out-lit: nulTref :...Tuple() +out-lit: : +out-lit: : ---build-from-sub-Tuples--- +out-lit: T1357L :TYPES-[]-<1>-<3>-<5>-<7>- +out-lit: T1357T :TYPES-<>-<1>-<3>-<5>-<7>- +out-lit: T135L :TYPES-[]-<1>-<3>-<5>- +out-lit: T57T :TYPES-<>-<5>-<7>- +out-lit: T35T :TYPES-<>-<3>-<5>- +out-lit: sub135 :...Tuple((1),(3),(5)) +out-lit: b_135 :...Tuple((1),(3),(5),(7)) +out-lit: b_135 :...Tuple((1),(3),(5),(7)) +out-lit: b_135 :...Tuple((1),(3),(5),(7)) +out-lit: b_135 :...Tuple((1),(3),(5),(7)) +out-lit: sub57 :...Tuple((5),(7)) +out-lit: b_57 :...Tuple((1),(3),(5),(7)) +out-lit: sub35 :...Tuple({8},{8}) +out-lit: b_35 :...Tuple((1),{8},{8},(7)) +out-lit: b_35 :...Tuple((1),(3),(5),(7)) +out-lit: b_35 :...Tuple((1),(3),(5),(7)) +out-lit: sub78 :...Tuple({77},{88}) +out-lit: b_78 :...Tuple((1),(3),(5),{77}) +out-lit: b_nul :...Tuple((1),(3),(5),(7)) +out-lit: b_nul :...Tuple((1),(3),(5),(7)) +out-lit: b_nul2 :...Tuple() +out-lit: b_nul2 :...Tuple() +out-lit: : +out-lit: : ---copy-operations--- +out-lit: tup1 :...Tuple({11},{33},(5)) +out-lit: tup11 :...Tuple({11},{33},{44}) +out-lit: tup1 :...Tuple({11},{33},{44}) +out-lit: tupL :...Tuple({11},{33},{44}) +out-lit: tup1L :...Tuple({11},{33},{44}) +out-lit: : +out-lit: : ---value-access--- +out-lit: TupX :TYPES-[]-<2>-<4>-<2>-<4>- +out-lit: tupX :...Tuple((2),(4),(2),(4)) +out-lit: tu2 :...Tuple((2),(4)) +out-lit: tu2 :...Tuple({5},{5}) +out-lit: tupX :...Tuple((2),(4),{5},{5}) +out-lit: T4 :TYPES-<>-<2>-<4>- +out-lit: t4 :...Tuple({5},{5}) +out-lit: TupX::Type :-<2>-<4>-<2>-<4>- +out-lit: TupX::TailType :-<4>-<2>-<4>- +out-lit: TupX::ThisType :TYPES-[]-<2>-<4>-<2>-<4>- +out-lit: TupX::TupleType :TYPES-<>-<2>-<4>-<2>-<4>- +out-lit: TupT::Type :-<2>-<4>-<2>-<4>- +out-lit: TupT::TailType :-<4>-<2>-<4>- +out-lit: TupT::ThisType :TYPES-<>-<2>-<4>-<2>-<4>- +out-lit: TupT::TupleType :TYPES-<>-<2>-<4>-<2>-<4>- +out-lit: tupXcopy :...Tuple((2),(4),{5},{5}) +out-lit: tupXcast :...Tuple((2),(4),{5},{5}) +return: 0 +END + + +TEST "Typelist combinations generator" GeneratorCombinations_test <-<2>-+ +out-lit: +---<1>-<4>-+ +out-lit: +---<1>-<6>-+ +out-lit: +---<3>-<2>-+ +out-lit: +---<3>-<4>-+ +out-lit: +---<3>-<6>-+ +out-lit: +---<5>-<2>-+ +out-lit: +---<5>-<4>-+ +out-lit: +---<5>-<6>-+- +out-lit: All-Test-Combinations--<12>-<14>-<16>-<32>-<34>-<36>-<52>-<54>-<56>-| +return: 0 +END + + +TEST "custom allocator(I)" SimpleAllocator_test <Binding[] +out-lit: aSymbol --->Binding[aSymbol/0()] +out-lit: a.compound_Symbol-with-various.parts --->Binding[a.compound_Symbol-with-various.parts/0()] +out-lit: trailing Garbage allowed. ☢☢ eat ☠☠☠ atomic ☠☠☠ waste ☢☢ --->Binding[Garbage/0(), allowed/0(), trailing/0()] +out-lit: a, list , of ,symbols. --->Binding[a/0(), list/0(), of/0(), symbols/0()] +out-lit: nullary(). --->Binding[nullary/0()] +out-lit: nullary( ) --->Binding[nullary/0()] +out-lit: nullary . --->Binding[nullary/0()] +out-lit: predicate( with-argument ) --->Binding[predicate/1(with-argument)] +out-lit: Binding[advice.type.n7lumiera6advice4test12_GLOBAL__N_111DummyAdviceE/0(), one/0(), three/1(four), two/0()] +out-lit: b0==Binding[] +out-lit: b1==Binding[cat1/0(), cat2/0()] +out-lit: b2==Binding[cat1/0(), cat2/0()] +out-lit: b2==Binding[advice.type.n3lib4time4TimeE/0(), cat1/0(), cat2/0(), cat3/1(zzz)] +return: 0 +END + + +TEST "Advice index implementation" AdviceIndex_test < +out-lit: wrapping cmdline: +out-lit: ... +out-lit: --> +out-lit: wrapping cmdline:spam... +out-lit: 0|spam| +out-lit: -->spam +out-lit: wrapping cmdline: +out-lit: spam... +out-lit: 0|spam| +out-lit: -->spam +out-lit: wrapping cmdline:eat more spam... +out-lit: 0|eat| +out-lit: 1|more| +out-lit: 2|spam| +out-lit: -->eat more spam +out-lit: wrapping cmdline: oo _O()O_ ☭ + €... +out-lit: 0|oo| +out-lit: 1|_O()O_| +out-lit: 2|☭| +out-lit: 3|+| +out-lit: 4|€| +out-lit: -->oo _O()O_ ☭ + € +out-lit: wrapping cmdline:Ω ooΩ oΩo Ωoo... +out-lit: 0|Ω| +out-lit: 1|ooΩ| +out-lit: 2|oΩo| +out-lit: 3|Ωoo| +out-lit: -->Ω ooΩ oΩo Ωoo +out-lit: Standard Cmdlineformat:one two +END + + +TEST "ConfigFlags_test" ConfigFlags_test <- +out-lit: Conf2 :-<2>- +out-lit: Conf3 :-<3>- +out-lit: Conf4 :-<2>-<4>- +out-lit: AllFlags :-<1>-<2>-<3>-<4>- +out-lit: __________________________ +out-lit: __________________________ check_flags() +out-lit: Flags1 :-<2>-<4>- +out-lit: Flags2 :-<2>-<4>- +out-lit: SimpleConfig_defined_by_Typelist :-<1>- +out-lit: AnotherConfig_defined_by_Typelist :-<1>-<2>-<3>-<4>- +out-lit: __________________________ +out-lit: __________________________ check_instantiation() +out-lit: defined Conf0? ---> 0 +out-lit: defined Conf1? ---> 1 +out-lit: defined Conf2? ---> 1 +out-lit: defined Conf3? ---> 1 +out-lit: defined Conf4? ---> 1 +out-lit: defined Trash? ---> 0 +out-lit: __________________________ +out-lit: __________________________ check_filter() +out-lit: SomeFlagsets : +out-lit: +---<1>-<3>-+ +out-lit: +---<2>-<4>-+- +out-lit: Configs_defined_by_Flagsets : +out-lit: +-Conf-[-<1>-<3>-] +out-lit: +-Conf-[-<2>-<4>-]- +out-lit: Filter_possible_Configs : +out-lit: +-Conf-[-<2>-<4>-]- +out-lit: AllFlagCombinations : +out-lit: +---<1>-<2>-<3>-<4>-<·>-+ +out-lit: +---<1>-<2>-<3>-<·>-+ +out-lit: +---<1>-<2>-<4>-<·>-+ +out-lit: +---<1>-<2>-<·>-+ +out-lit: +---<1>-<3>-<4>-<·>-+ +out-lit: +---<1>-<3>-<·>-+ +out-lit: +---<1>-<4>-<·>-+ +out-lit: +---<1>-<·>-+ +out-lit: +---<2>-<3>-<4>-<·>-+ +out-lit: +---<2>-<3>-<·>-+ +out-lit: +---<2>-<4>-<·>-+ +out-lit: +---<2>-<·>-+ +out-lit: +---<3>-<4>-<·>-+ +out-lit: +---<3>-<·>-+ +out-lit: +---<4>-<·>-+ +out-lit: +---<·>-+- +out-lit: ListAllConfigs : +out-lit: +-Conf-[-<1>-<2>-<3>-<4>-] +out-lit: +-Conf-[-<1>-<2>-<3>-] +out-lit: +-Conf-[-<1>-<2>-<4>-] +out-lit: +-Conf-[-<1>-<2>-] +out-lit: +-Conf-[-<1>-<3>-<4>-] +out-lit: +-Conf-[-<1>-<3>-] +out-lit: +-Conf-[-<1>-<4>-] +out-lit: +-Conf-[-<1>-] +out-lit: +-Conf-[-<2>-<3>-<4>-] +out-lit: +-Conf-[-<2>-<3>-] +out-lit: +-Conf-[-<2>-<4>-] +out-lit: +-Conf-[-<2>-] +out-lit: +-Conf-[-<3>-<4>-] +out-lit: +-Conf-[-<3>-] +out-lit: +-Conf-[-<4>-] +out-lit: +-Conf-[-]- +out-lit: Filter_all_possible_Configs : +out-lit: +-Conf-[-<1>-] +out-lit: +-Conf-[-<2>-<3>-] +out-lit: +-Conf-[-<2>-<4>-] +out-lit: +-Conf-[-<2>-] +out-lit: +-Conf-[-<3>-]- +out-lit: __________________________ +out-lit: __________________________ check_FlagInfo() +out-lit: Flags1 :-<1>-<3>- +out-lit: max bit : 3 +out-lit: binary code: 10 +out-lit: SomeConfigs : +out-lit: +-Conf-[-<1>-<3>-] +out-lit: +-Conf-[-<2>-<4>-]- +out-lit: max bit in [SomeConfigs] : 4 +out-lit: TestVisitor application: +out-lit: visit(code=10) --> +out-lit: +-Conf-[-<1>-<3>-]- +out-lit: visit(code=20) --> +out-lit: +-Conf-[-<2>-<4>-]- +out-lit: __________________________ +out-lit: __________________________ check_ConfigSelector() +out-lit: Possible_Configs : +out-lit: +-Conf-[-<1>-] +out-lit: +-Conf-[-<2>-<3>-] +out-lit: +-Conf-[-<2>-<4>-] +out-lit: +-Conf-[-<2>-] +out-lit: +-Conf-[-<3>-]- +out-lit: Flag-code = 2 ConfigSelector() ---> 1010 +out-lit: Flag-code = 12 ConfigSelector() ---> 1023 +out-lit: Flag-code = 20 ConfigSelector() ---> 1024 +out-lit: Flag-code = 4 ConfigSelector() ---> 1020 +out-lit: Flag-code = 8 ConfigSelector() ---> 1030 +out: LUMIERA_ERROR_INVALID:invalid input or parameters.+No preconfigured factory for config-bits=10111 +return: 0 +END + + +TEST "CustomSharedPtr_test" CustomSharedPtr_test < : Yes +out: HasNested_Core : No +out: HasMember_honk : Yes +out: HasMember_honk : Yes +out: HasFunSig_honk : Yes +out: HasFunSig_honk : No +return: 0 +END + + +TEST "ExceptionError_test" ExceptionError_test < +out: ^hey Joe! +out: ^he says: hey Joe! +out: ^the truth: 0 +out: ^just a number: 1.234.*e\+56 +out: ^12345X +return: 0 +END + + +TEST "formatting by string template" FormatString_test <-<2>-<3>- +out-lit: List2 :-<5>-<6>-<7>- +out-lit: Args :-<5>-<9>- +out-lit: NewArgs :-<1>-<5>-<9>- +out-lit: : +out-lit: : ---Apply--- +out-lit: tup0 :...Tuple() +out-lit: tup1 :...Tuple(11) +out-lit: tup2 :...Tuple(11,12) +out-lit: tup3 :...Tuple(11,12,13) +out-lit: : +out-lit: : ---Bind---- +return: 0 +END + + +TEST "functional composition" FunctionComposition_test <: +out-lit: DD<5>: ***** +out-lit: DD<9>: I'm fine* +out-lit: I'm special, what the f** is going on here?************ +return: 0 +END + + +TEST "inline val/ref wrapper" ItemWrapper_test < : Yes +out: can_STL_ForEach : Yes +out: can_STL_ForEach : Yes +out: can_STL_ForEach : Yes +out: can_STL_ForEach : Yes +out: can_STL_ForEach : Yes +out: can_STL_ForEach : No +out: can_STL_ForEach : No +out: can_STL_ForEach : No +out: can_STL_ForEach : No +out: can_IterForEach : No +out: can_IterForEach : No +out: can_IterForEach : No +out: can_IterForEach : No +out: can_IterForEach : No +out: can_IterForEach : No +out: can_IterForEach : Yes +out: can_IterForEach : Yes +out: can_IterForEach : Yes +out: can_IterForEach : Yes +END + + +TEST "Linked iterable elements" LinkedElements_test < [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, ] +out-lit: removed 0 ---> [ 1, 2, 3, 4, 5, 6, 7, 8, 9, ] +out-lit: removed 9 ---> [ 0, 1, 2, 3, 4, 5, 6, 7, 8, ] +out-lit: removed 5 ---> [ 0, 1, 2, 3, 4, 6, 7, 8, 9, ] +out-lit: removed 0 2 4 6 8 ---> [ 1, 3, 5, 7, 9, ] +out-lit: removed 1 3 5 7 9 ---> [ 0, 2, 4, 6, 8, ] +out-lit: removed 0 1 2 3 4 5 6 7 8 9 ---> [ ] +out-lit: removed 0 1 2 3 4 5 6 7 8 ---> [ 9, ] +out-lit: removed 1 2 3 4 5 6 7 8 9 ---> [ 0, ] +out-lit: removed 0 1 2 3 4 6 7 8 9 ---> [ 5, ] +END + + +TEST "SanitizedIdentifier_test" SanitizedIdentifier_test < 'Word' +out-lit: 'a Sentence' --> 'a_Sentence' +out-lit: 'trailing Withespace +out-lit: ' --> 'trailing_Withespace' +out-lit: 'with a lot +out-lit: of Whitespace' --> 'with_a_lot_of_Whitespace' +out-lit: 'with"much (punctuation)[]!' --> 'withmuch_(punctuation)' +out-lit: '§&Ω%€ leading garbage' --> 'leading_garbage' +out-lit: 'mixed Ω garbage' --> 'mixed_garbage' +out-lit: 'Bääääh!!' --> 'Bh' +out-lit: '§&Ω%€' --> '' +END + + +TEST "ScopedHolder_test" ScopedHolder_test <... +out: checking ScopedPtrHolder... +END + + +TEST "ScopedHolderTransfer_test" ScopedHolderTransfer_test <... +out-lit: . +out-lit: ..install one element at index[0] +out-lit: . +out-lit: ..*** resize table to 16 elements +out-lit: . +out-lit: .throw some exceptions... +out-lit: checking ScopedPtrHolder... +out-lit: . +out-lit: ..install one element at index[0] +out-lit: . +out-lit: ..*** resize table to 16 elements +out-lit: . +out-lit: .throw some exceptions... +END + + +TEST "Managed Collection (I)" ScopedCollection_test < Testgroup=ALL +out: --> Test-ID =--missing-- +out: --> remaining= +out: Testing invocation with cmdline: --help... +out: --> Testgroup=ALL +out: --> Test-ID =--missing-- +out: --> remaining= +out: Testing invocation with cmdline: --group TestGroupID... +out: --> Testgroup=TestGroupID +out: --> Test-ID =--missing-- +out: --> remaining= +out: Testing invocation with cmdline: SingleTestID... +out: --> Testgroup=ALL +out: --> Test-ID =SingleTestID +out: --> remaining=SingleTestID +out: Testing invocation with cmdline: SingleTestID --group TestGroupID... +out: --> Testgroup=TestGroupID +out: --> Test-ID =SingleTestID +out: --> remaining=SingleTestID +out: Testing invocation with cmdline: --group TestGroupID SingleTestID ... +out: --> Testgroup=TestGroupID +out: --> Test-ID =SingleTestID +out: --> remaining=SingleTestID +out: Testing invocation with cmdline: --group TestGroupID SingleTestID spam eggs... +out: --> Testgroup=TestGroupID +out: --> Test-ID =SingleTestID +out: --> remaining=SingleTestID spam eggs +out: Testing invocation with cmdline: SingleTestID spam --group TestGroupID --eggs... +out: --> Testgroup=TestGroupID +out: --> Test-ID =SingleTestID +out: --> remaining=SingleTestID spam --eggs +END + + +TEST "TypeList_test" TypeList_test < > +out: ctor DoIt > +out: ctor DoIt > +out: ctor DoIt > +out: ctor DoIt > +out: ctor DoIt > +out: devouring__Block< 2>__ +out: devouring__Block< 5>__ +out: devouring__Block<13>__ +out: gulp! +out: dtor DoIt > +out: dtor DoIt > +out: dtor DoIt > +out: dtor DoIt > +out: dtor DoIt > +out: dtor DoIt > +return: 0 +END + + +TEST "typelist manipulation" TypeListManip_test <-<2>-<3>- +out-lit: List2 :-<5>-<6>-<7>- +out-lit: Added2 :-<3>-<4>-<5>- +out-lit: FilterEven :-<2>-<6>- +out-lit: Append1 :- +out-lit: Append2 :-<11>-<22>- +out-lit: Append3 :-<111>- +out-lit: Append4 :-<222>- +out-lit: Append5 :-<1>-<2>-<3>- +out-lit: Append6 :-<5>-<6>-<7>- +out-lit: Append7 :-<111>-<5>-<6>-<7>- +out-lit: Append8 :-<1>-<2>-<3>-<222>- +out-lit: Append9 :-<1>-<2>-<3>-<5>-<6>-<7>- +out-lit: Overl01 :- +out-lit: Overl02 :- +out-lit: Overl03 :- +out-lit: Overl04 :-<9>-<8>-<3>- +out-lit: Overl05 :-<1>-<9>-<8>- +out-lit: Overl06 :-<1>-<2>-<9>- +out-lit: Overl07 :-<1>-<2>-<3>- +out-lit: Overl08 :-<1>-<2>-<3>- +out-lit: Overl09 :-<1>-<2>-<3>- +out-lit: Overl10 :-<1>-<1>-<2>- +out-lit: Overl11 :-<1>-<2>-<3>- +out-lit: Overl12 :-<1>-<2>-<3>- +out-lit: Overl13 :-<1>-<2>-<3>- +out-lit: Front1 :- +out-lit: Front2 :-<1>- +out-lit: Front3 :-<1>-<2>-<3>- +out-lit: Back1 :-<2>-<3>- +out-lit: Back2 :-<3>- +out-lit: Back3 :- +out-lit: Front4 :-<1>- +out-lit: Back4 :-<2>-<3>- +out-lit: Prefix :-<1>-<2>- +out-lit: ElmL :-<3>- +out-lit: NPrefix :- +out-lit: Types :-<3>- +out-lit: NList :- +out-lit: Types :- +out-lit: LL :-<1>-<2>-<3>-<5>-<6>-<7>- +out-lit: List :-<1>-<2>-<3>-<5>-<6>-<7>- +out-lit: First :-<1>- +out-lit: Tail :-<2>-<3>-<5>-<6>-<7>- +out-lit: Prefix :-<1>-<2>-<3>-<5>-<6>- +out-lit: Last :-<7>- +out-lit: HeadEnd :-<1>-<7>- +out-lit: Prefix1 : +out-lit: +---<11>-<22>-+- +out-lit: Prefix2 : +out-lit: +---<101>-<1>-+ +out-lit: +---<101>-<2>-+ +out-lit: +---<101>-<3>-+- +out-lit: Prefix3 : +out-lit: +---<1>-+ +out-lit: +---<2>-+ +out-lit: +---<3>-+- +out-lit: Prefix4 : +out-lit: +---<111>-<1>-<2>-<3>-+ +out-lit: +---<111>-<0>-+ +out-lit: +---<111>-<5>-<6>-<7>-+- +out-lit: Prefix5 : +out-lit: +---<1>-<2>-<3>-<5>-+ +out-lit: +---<1>-<2>-<3>-<6>-+ +out-lit: +---<1>-<2>-<3>-<7>-+- +out-lit: Prefix6 : +out-lit: +---<1>-<2>-<3>-<1>-<2>-<3>-+ +out-lit: +---<1>-<2>-<3>-<0>-+ +out-lit: +---<1>-<2>-<3>-<5>-<6>-<7>-+- +out-lit: Dist1 : +out-lit: +---<11>-<1>-+ +out-lit: +---<11>-<2>-+ +out-lit: +---<11>-<3>-+- +out-lit: Dist2 : +out-lit: +---<11>-<0>-+ +out-lit: +---<22>-<0>-+ +out-lit: +---<33>-<0>-+- +out-lit: Dist3 : +out-lit: +---<11>-<1>-+ +out-lit: +---<11>-<2>-+ +out-lit: +---<11>-<3>-+ +out-lit: +---<22>-<1>-+ +out-lit: +---<22>-<2>-+ +out-lit: +---<22>-<3>-+ +out-lit: +---<33>-<1>-+ +out-lit: +---<33>-<2>-+ +out-lit: +---<33>-<3>-+- +out-lit: Dist4 : +out-lit: +---<11>-<1>-<2>-<3>-+ +out-lit: +---<11>-<5>-<6>-<7>-+ +out-lit: +---<22>-<1>-<2>-<3>-+ +out-lit: +---<22>-<5>-<6>-<7>-+ +out-lit: +---<33>-<1>-<2>-<3>-+ +out-lit: +---<33>-<5>-<6>-<7>-+- +out-lit: Down :-<11>-<10>-<9>-<8>-<7>-<6>-<5>-<4>-<3>-<2>-<1>-<0>- +out-lit: Combi : +out-lit: +---<1>-<2>-<3>-<·>-+ +out-lit: +---<1>-<2>-<2>-<·>-+ +out-lit: +---<1>-<2>-<1>-<·>-+ +out-lit: +---<1>-<2>-<0>-<·>-+ +out-lit: +---<1>-<1>-<3>-<·>-+ +out-lit: +---<1>-<1>-<2>-<·>-+ +out-lit: +---<1>-<1>-<1>-<·>-+ +out-lit: +---<1>-<1>-<0>-<·>-+ +out-lit: +---<1>-<0>-<3>-<·>-+ +out-lit: +---<1>-<0>-<2>-<·>-+ +out-lit: +---<1>-<0>-<1>-<·>-+ +out-lit: +---<1>-<0>-<0>-<·>-+ +out-lit: +---<0>-<2>-<3>-<·>-+ +out-lit: +---<0>-<2>-<2>-<·>-+ +out-lit: +---<0>-<2>-<1>-<·>-+ +out-lit: +---<0>-<2>-<0>-<·>-+ +out-lit: +---<0>-<1>-<3>-<·>-+ +out-lit: +---<0>-<1>-<2>-<·>-+ +out-lit: +---<0>-<1>-<1>-<·>-+ +out-lit: +---<0>-<1>-<0>-<·>-+ +out-lit: +---<0>-<0>-<3>-<·>-+ +out-lit: +---<0>-<0>-<2>-<·>-+ +out-lit: +---<0>-<0>-<1>-<·>-+ +out-lit: +---<0>-<0>-<0>-<·>-+- +out-lit: OnOff : +out-lit: +---<1>-<2>-<3>-<·>-+ +out-lit: +---<1>-<2>-<·>-+ +out-lit: +---<1>-<3>-<·>-+ +out-lit: +---<1>-<·>-+ +out-lit: +---<2>-<3>-<·>-+ +out-lit: +---<2>-<·>-+ +out-lit: +---<3>-<·>-+ +out-lit: +---<·>-+- +return: 0 +END + + +TEST "type sequence manipulation" TypeSeqManipl_test <-<2>-<3>-<7>-<8>-<9>- +out: Seq :-<1>-<2>-<3>-<7>-<8>-<9>- +out: SeqList :-<1>-<2>-<3>-<7>-<8>-<9>- +out: NulS :- +out: Prepend1 :-<5>-<1>-<2>-<3>- +out: Prepend2 :-<·>-<1>-<2>-<3>- +out: Prepend3 :-<5>- +out: Prepend4 :- +out: Seq_0 :-<7>-<8>-<9>-<1>-<2>-<3>- +out: Seq_1 :-<8>-<9>-<1>-<2>-<3>- +out: Seq_2 :-<9>-<1>-<2>-<3>- +out: Seq_3 :-<1>-<2>-<3>- +out: Seq_4 :-<2>-<3>- +out: Seq_5 :-<3>- +out: Seq_6 :- +out: Head_0 :-<7>- +out: Head_1 :-<8>- +out: Head_2 :-<9>- +out: Head_3 :-<1>- +out: Head_4 :-<2>- +out: Head_5 :-<3>- +out: Head_6 :- +out: Seq :-<1>-<2>-<3>-<7>-<8>-<9>- +out: List :-<1>-<2>-<3>-<7>-<8>-<9>- +out: First :-<1>- +out: Tail :-<2>-<3>-<7>-<8>-<9>- +out: Prefix :-<1>-<2>-<3>-<7>-<8>- +out: Last :-<9>- +out: HeadEnd :-<1>-<9>- +return: 0 +END + + +TEST "TypeTuple_test" TypeTuple_test <-<3>-<5>- +out-lit: L2 :-<2>-<4>- +out-lit: L3 :-<7>- +out-lit: Tup1 :TYPES-<>-<1>-<3>-<5>- +out-lit: Tup1() :...Tuple((1),(3),(5)) +out-lit: tup1x :...Tuple({11},(3),(5)) +out-lit: Type1 :-<1>-<3>-<5>- +out-lit: T_L1 :TYPES-[]-<1>-<3>-<5>- +out-lit: T1 :TYPES-<>-<1>-<3>-<5>- +out-lit: tup1 :...Tuple({8},(3),(5)) +out-lit: tup2 :...Tuple({9},(3),(5)) +out-lit: Prepend :TYPES-[]--<1>-<3>-<5>- +out-lit: prepend :...Tuple(22,{9},(3),(5)) +out-lit: : +out-lit: : ---Sub-Tuple-Types---- +out-lit: T_L2 :TYPES-[]-<2>-<4>-<1>-<3>-<5>- +out-lit: Head :-<2>- +out-lit: Tail :-<4>-<1>-<3>-<5>- +out-lit: T2 :TYPES-<>-<2>-<4>-<1>-<3>-<5>- +out-lit: Head2 :-<2>- +out-lit: Tail2 :-<4>-<1>-<3>-<5>- +out-lit: T2::Type :-<2>-<4>-<1>-<3>-<5>- +out-lit: T2::TailType :-<4>-<1>-<3>-<5>- +out-lit: T2::TupleType :TYPES-<>-<2>-<4>-<1>-<3>-<5>- +out-lit: T2::ThisType :TYPES-<>-<2>-<4>-<1>-<3>-<5>- +out-lit: T2::Tail :TYPES-<>-<4>-<1>-<3>-<5>- +out-lit: T2::ArgList :-<2>-<4>-<1>-<3>-<5>- +out-lit: T_L2::Type :-<2>-<4>-<1>-<3>-<5>- +out-lit: T_L2::TailType :-<4>-<1>-<3>-<5>- +out-lit: T_L2::TupleType :TYPES-<>-<2>-<4>-<1>-<3>-<5>- +out-lit: T_L2::ThisType :TYPES-[]-<2>-<4>-<1>-<3>-<5>- +out-lit: T_L2::Tail :TYPES-[]-<4>-<1>-<3>-<5>- +out-lit: T_L2::ArgList :-<2>-<4>-<1>-<3>-<5>- +out-lit: NulT::Type :- +out-lit: NulT::TailType :- +out-lit: NulT::TupleType :TYPES-<>- +out-lit: NulT::ThisType :TYPES-<>- +out-lit: NulT::Tail :TYPES-<>- +out-lit: NulT::ArgList :- +out-lit: NulL::Type :- +out-lit: NulL::TailType :- +out-lit: NulL::TupleType :TYPES-<>- +out-lit: NulL::ThisType :TYPES-[]- +out-lit: NulL::Tail :TYPES-[]- +out-lit: NulL::ArgList :- +out-lit: : +out-lit: : ---Shifted-Tuple--- +out-lit: Ty_0 :-<2>-<4>-<7>- +out-lit: Ty_1 :-<4>-<7>- +out-lit: Ty_2 :-<7>- +out-lit: Ty_3 :- +out-lit: Ty_4 :- +out-lit: T_0 :TYPES-[]-<2>-<4>-<7>- +out-lit: T_1 :TYPES-[]-<4>-<7>- +out-lit: T_2 :TYPES-[]-<7>- +out-lit: T_3 :TYPES-[]- +out-lit: T_4 :TYPES-[]- +out-lit: tu3 :...Tuple((2),(4),(7)) +out-lit: tu3_0 :...Tuple((2),(4),(7)) +out-lit: tu3_1 :...Tuple((4),(7)) +out-lit: tu3_2 :...Tuple((7)) +out-lit: tu3_3 :...Tuple() +out-lit: tu3_4 :...Tuple() +out-lit: : +out-lit: : ---creating-Tuples--- +out-lit: tup1 :...Tuple((1),(3),(5)) +out-lit: tup11 :...Tuple({11},(3),(5)) +out-lit: tup12 :...Tuple((1),{33},(5)) +out-lit: tup13 :...Tuple({11},{33},(5)) +out-lit: Tup2 :TYPES-<>---<11>- +out-lit: tup2 :...Tuple(41,42,{43}) +out-lit: Tup22 :TYPES-<>--<11>- +out-lit: tup22 :...Tuple(42,{43}) +out-lit: Tup222 :TYPES-<>-<11>- +out-lit: tup222 :...Tuple({43}) +out-lit: T0T :TYPES-<>- +out-lit: T0L :TYPES-[]- +out-lit: nullT :...Tuple() +out-lit: nullL :...Tuple() +out-lit: nulTcpy :...Tuple() +out-lit: nulTref :...Tuple() +out-lit: : +out-lit: : ---build-from-sub-Tuples--- +out-lit: T1357L :TYPES-[]-<1>-<3>-<5>-<7>- +out-lit: T1357T :TYPES-<>-<1>-<3>-<5>-<7>- +out-lit: T135L :TYPES-[]-<1>-<3>-<5>- +out-lit: T57T :TYPES-<>-<5>-<7>- +out-lit: T35T :TYPES-<>-<3>-<5>- +out-lit: sub135 :...Tuple((1),(3),(5)) +out-lit: b_135 :...Tuple((1),(3),(5),(7)) +out-lit: b_135 :...Tuple((1),(3),(5),(7)) +out-lit: b_135 :...Tuple((1),(3),(5),(7)) +out-lit: b_135 :...Tuple((1),(3),(5),(7)) +out-lit: sub57 :...Tuple((5),(7)) +out-lit: b_57 :...Tuple((1),(3),(5),(7)) +out-lit: sub35 :...Tuple({8},{8}) +out-lit: b_35 :...Tuple((1),{8},{8},(7)) +out-lit: b_35 :...Tuple((1),(3),(5),(7)) +out-lit: b_35 :...Tuple((1),(3),(5),(7)) +out-lit: sub78 :...Tuple({77},{88}) +out-lit: b_78 :...Tuple((1),(3),(5),{77}) +out-lit: b_nul :...Tuple((1),(3),(5),(7)) +out-lit: b_nul :...Tuple((1),(3),(5),(7)) +out-lit: b_nul2 :...Tuple() +out-lit: b_nul2 :...Tuple() +out-lit: : +out-lit: : ---copy-operations--- +out-lit: tup1 :...Tuple({11},{33},(5)) +out-lit: tup11 :...Tuple({11},{33},{44}) +out-lit: tup1 :...Tuple({11},{33},{44}) +out-lit: tupL :...Tuple({11},{33},{44}) +out-lit: tup1L :...Tuple({11},{33},{44}) +out-lit: : +out-lit: : ---value-access--- +out-lit: TupX :TYPES-[]-<2>-<4>-<2>-<4>- +out-lit: tupX :...Tuple((2),(4),(2),(4)) +out-lit: tu2 :...Tuple((2),(4)) +out-lit: tu2 :...Tuple({5},{5}) +out-lit: tupX :...Tuple((2),(4),{5},{5}) +out-lit: T4 :TYPES-<>-<2>-<4>- +out-lit: t4 :...Tuple({5},{5}) +out-lit: TupX::Type :-<2>-<4>-<2>-<4>- +out-lit: TupX::TailType :-<4>-<2>-<4>- +out-lit: TupX::ThisType :TYPES-[]-<2>-<4>-<2>-<4>- +out-lit: TupX::TupleType :TYPES-<>-<2>-<4>-<2>-<4>- +out-lit: TupT::Type :-<2>-<4>-<2>-<4>- +out-lit: TupT::TailType :-<4>-<2>-<4>- +out-lit: TupT::ThisType :TYPES-<>-<2>-<4>-<2>-<4>- +out-lit: TupT::TupleType :TYPES-<>-<2>-<4>-<2>-<4>- +out-lit: tupXcopy :...Tuple((2),(4),{5},{5}) +out-lit: tupXcast :...Tuple((2),(4),{5},{5}) +return: 0 +END + + +TEST "Typelist combinations generator" GeneratorCombinations_test <-<2>-+ +out-lit: +---<1>-<4>-+ +out-lit: +---<1>-<6>-+ +out-lit: +---<3>-<2>-+ +out-lit: +---<3>-<4>-+ +out-lit: +---<3>-<6>-+ +out-lit: +---<5>-<2>-+ +out-lit: +---<5>-<4>-+ +out-lit: +---<5>-<6>-+- +out-lit: All-Test-Combinations--<12>-<14>-<16>-<32>-<34>-<36>-<52>-<54>-<56>-| +return: 0 +END + + +TEST "custom allocator(I)" SimpleAllocator_test <Binding[] +out-lit: aSymbol --->Binding[aSymbol/0()] +out-lit: a.compound_Symbol-with-various.parts --->Binding[a.compound_Symbol-with-various.parts/0()] +out-lit: trailing Garbage allowed. ☢☢ eat ☠☠☠ atomic ☠☠☠ waste ☢☢ --->Binding[Garbage/0(), allowed/0(), trailing/0()] +out-lit: a, list , of ,symbols. --->Binding[a/0(), list/0(), of/0(), symbols/0()] +out-lit: nullary(). --->Binding[nullary/0()] +out-lit: nullary( ) --->Binding[nullary/0()] +out-lit: nullary . --->Binding[nullary/0()] +out-lit: predicate( with-argument ) --->Binding[predicate/1(with-argument)] +out-lit: Binding[advice.type.n7lumiera6advice4test12_GLOBAL__N_111DummyAdviceE/0(), one/0(), three/1(four), two/0()] +out-lit: b0==Binding[] +out-lit: b1==Binding[cat1/0(), cat2/0()] +out-lit: b2==Binding[cat1/0(), cat2/0()] +out-lit: b2==Binding[advice.type.n3lib4time4TimeE/0(), cat1/0(), cat2/0(), cat3/1(zzz)] +return: 0 +END + + +TEST "Advice index implementation" AdviceIndex_test < +out-lit: wrapping cmdline: +out-lit: ... +out-lit: --> +out-lit: wrapping cmdline:spam... +out-lit: 0|spam| +out-lit: -->spam +out-lit: wrapping cmdline: +out-lit: spam... +out-lit: 0|spam| +out-lit: -->spam +out-lit: wrapping cmdline:eat more spam... +out-lit: 0|eat| +out-lit: 1|more| +out-lit: 2|spam| +out-lit: -->eat more spam +out-lit: wrapping cmdline: oo _O()O_ ☭ + €... +out-lit: 0|oo| +out-lit: 1|_O()O_| +out-lit: 2|☭| +out-lit: 3|+| +out-lit: 4|€| +out-lit: -->oo _O()O_ ☭ + € +out-lit: wrapping cmdline:Ω ooΩ oΩo Ωoo... +out-lit: 0|Ω| +out-lit: 1|ooΩ| +out-lit: 2|oΩo| +out-lit: 3|Ωoo| +out-lit: -->Ω ooΩ oΩo Ωoo +out-lit: Standard Cmdlineformat:one two +END + + +TEST "ConfigFlags_test" ConfigFlags_test <- +out-lit: Conf2 :-<2>- +out-lit: Conf3 :-<3>- +out-lit: Conf4 :-<2>-<4>- +out-lit: AllFlags :-<1>-<2>-<3>-<4>- +out-lit: __________________________ +out-lit: __________________________ check_flags() +out-lit: Flags1 :-<2>-<4>- +out-lit: Flags2 :-<2>-<4>- +out-lit: SimpleConfig_defined_by_Typelist :-<1>- +out-lit: AnotherConfig_defined_by_Typelist :-<1>-<2>-<3>-<4>- +out-lit: __________________________ +out-lit: __________________________ check_instantiation() +out-lit: defined Conf0? ---> 0 +out-lit: defined Conf1? ---> 1 +out-lit: defined Conf2? ---> 1 +out-lit: defined Conf3? ---> 1 +out-lit: defined Conf4? ---> 1 +out-lit: defined Trash? ---> 0 +out-lit: __________________________ +out-lit: __________________________ check_filter() +out-lit: SomeFlagsets : +out-lit: +---<1>-<3>-+ +out-lit: +---<2>-<4>-+- +out-lit: Configs_defined_by_Flagsets : +out-lit: +-Conf-[-<1>-<3>-] +out-lit: +-Conf-[-<2>-<4>-]- +out-lit: Filter_possible_Configs : +out-lit: +-Conf-[-<2>-<4>-]- +out-lit: AllFlagCombinations : +out-lit: +---<1>-<2>-<3>-<4>-<·>-+ +out-lit: +---<1>-<2>-<3>-<·>-+ +out-lit: +---<1>-<2>-<4>-<·>-+ +out-lit: +---<1>-<2>-<·>-+ +out-lit: +---<1>-<3>-<4>-<·>-+ +out-lit: +---<1>-<3>-<·>-+ +out-lit: +---<1>-<4>-<·>-+ +out-lit: +---<1>-<·>-+ +out-lit: +---<2>-<3>-<4>-<·>-+ +out-lit: +---<2>-<3>-<·>-+ +out-lit: +---<2>-<4>-<·>-+ +out-lit: +---<2>-<·>-+ +out-lit: +---<3>-<4>-<·>-+ +out-lit: +---<3>-<·>-+ +out-lit: +---<4>-<·>-+ +out-lit: +---<·>-+- +out-lit: ListAllConfigs : +out-lit: +-Conf-[-<1>-<2>-<3>-<4>-] +out-lit: +-Conf-[-<1>-<2>-<3>-] +out-lit: +-Conf-[-<1>-<2>-<4>-] +out-lit: +-Conf-[-<1>-<2>-] +out-lit: +-Conf-[-<1>-<3>-<4>-] +out-lit: +-Conf-[-<1>-<3>-] +out-lit: +-Conf-[-<1>-<4>-] +out-lit: +-Conf-[-<1>-] +out-lit: +-Conf-[-<2>-<3>-<4>-] +out-lit: +-Conf-[-<2>-<3>-] +out-lit: +-Conf-[-<2>-<4>-] +out-lit: +-Conf-[-<2>-] +out-lit: +-Conf-[-<3>-<4>-] +out-lit: +-Conf-[-<3>-] +out-lit: +-Conf-[-<4>-] +out-lit: +-Conf-[-]- +out-lit: Filter_all_possible_Configs : +out-lit: +-Conf-[-<1>-] +out-lit: +-Conf-[-<2>-<3>-] +out-lit: +-Conf-[-<2>-<4>-] +out-lit: +-Conf-[-<2>-] +out-lit: +-Conf-[-<3>-]- +out-lit: __________________________ +out-lit: __________________________ check_FlagInfo() +out-lit: Flags1 :-<1>-<3>- +out-lit: max bit : 3 +out-lit: binary code: 10 +out-lit: SomeConfigs : +out-lit: +-Conf-[-<1>-<3>-] +out-lit: +-Conf-[-<2>-<4>-]- +out-lit: max bit in [SomeConfigs] : 4 +out-lit: TestVisitor application: +out-lit: visit(code=10) --> +out-lit: +-Conf-[-<1>-<3>-]- +out-lit: visit(code=20) --> +out-lit: +-Conf-[-<2>-<4>-]- +out-lit: __________________________ +out-lit: __________________________ check_ConfigSelector() +out-lit: Possible_Configs : +out-lit: +-Conf-[-<1>-] +out-lit: +-Conf-[-<2>-<3>-] +out-lit: +-Conf-[-<2>-<4>-] +out-lit: +-Conf-[-<2>-] +out-lit: +-Conf-[-<3>-]- +out-lit: Flag-code = 2 ConfigSelector() ---> 1010 +out-lit: Flag-code = 12 ConfigSelector() ---> 1023 +out-lit: Flag-code = 20 ConfigSelector() ---> 1024 +out-lit: Flag-code = 4 ConfigSelector() ---> 1020 +out-lit: Flag-code = 8 ConfigSelector() ---> 1030 +out: LUMIERA_ERROR_INVALID:invalid input or parameters.+No preconfigured factory for config-bits=10111 +return: 0 +END + + +TEST "CustomSharedPtr_test" CustomSharedPtr_test < : Yes +out: HasNested_Core : No +out: HasMember_honk : Yes +out: HasMember_honk : Yes +out: HasFunSig_honk : Yes +out: HasFunSig_honk : No +return: 0 +END + + +TEST "ExceptionError_test" ExceptionError_test < +out: ^hey Joe! +out: ^he says: hey Joe! +out: ^the truth: 0 +out: ^just a number: 1.234.*e\+56 +out: ^12345X +return: 0 +END + + +TEST "formatting by string template" FormatString_test <-<2>-<3>- +out-lit: List2 :-<5>-<6>-<7>- +out-lit: Args :-<5>-<9>- +out-lit: NewArgs :-<1>-<5>-<9>- +out-lit: : +out-lit: : ---Apply--- +out-lit: tup0 :...Tuple() +out-lit: tup1 :...Tuple(11) +out-lit: tup2 :...Tuple(11,12) +out-lit: tup3 :...Tuple(11,12,13) +out-lit: : +out-lit: : ---Bind---- +return: 0 +END + + +TEST "functional composition" FunctionComposition_test <: +out-lit: DD<5>: ***** +out-lit: DD<9>: I'm fine* +out-lit: I'm special, what the f** is going on here?************ +return: 0 +END + + +TEST "inline val/ref wrapper" ItemWrapper_test < : Yes +out: can_STL_ForEach : Yes +out: can_STL_ForEach : Yes +out: can_STL_ForEach : Yes +out: can_STL_ForEach : Yes +out: can_STL_ForEach : Yes +out: can_STL_ForEach : No +out: can_STL_ForEach : No +out: can_STL_ForEach : No +out: can_STL_ForEach : No +out: can_IterForEach : No +out: can_IterForEach : No +out: can_IterForEach : No +out: can_IterForEach : No +out: can_IterForEach : No +out: can_IterForEach : No +out: can_IterForEach : Yes +out: can_IterForEach : Yes +out: can_IterForEach : Yes +out: can_IterForEach : Yes +END + + +TEST "Linked iterable elements" LinkedElements_test < [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, ] +out-lit: removed 0 ---> [ 1, 2, 3, 4, 5, 6, 7, 8, 9, ] +out-lit: removed 9 ---> [ 0, 1, 2, 3, 4, 5, 6, 7, 8, ] +out-lit: removed 5 ---> [ 0, 1, 2, 3, 4, 6, 7, 8, 9, ] +out-lit: removed 0 2 4 6 8 ---> [ 1, 3, 5, 7, 9, ] +out-lit: removed 1 3 5 7 9 ---> [ 0, 2, 4, 6, 8, ] +out-lit: removed 0 1 2 3 4 5 6 7 8 9 ---> [ ] +out-lit: removed 0 1 2 3 4 5 6 7 8 ---> [ 9, ] +out-lit: removed 1 2 3 4 5 6 7 8 9 ---> [ 0, ] +out-lit: removed 0 1 2 3 4 6 7 8 9 ---> [ 5, ] +END + + +TEST "SanitizedIdentifier_test" SanitizedIdentifier_test < 'Word' +out-lit: 'a Sentence' --> 'a_Sentence' +out-lit: 'trailing Withespace +out-lit: ' --> 'trailing_Withespace' +out-lit: 'with a lot +out-lit: of Whitespace' --> 'with_a_lot_of_Whitespace' +out-lit: 'with"much (punctuation)[]!' --> 'withmuch_(punctuation)' +out-lit: '§&Ω%€ leading garbage' --> 'leading_garbage' +out-lit: 'mixed Ω garbage' --> 'mixed_garbage' +out-lit: 'Bääääh!!' --> 'Bh' +out-lit: '§&Ω%€' --> '' +END + + +TEST "ScopedHolder_test" ScopedHolder_test <... +out: checking ScopedPtrHolder... +END + + +TEST "ScopedHolderTransfer_test" ScopedHolderTransfer_test <... +out-lit: . +out-lit: ..install one element at index[0] +out-lit: . +out-lit: ..*** resize table to 16 elements +out-lit: . +out-lit: .throw some exceptions... +out-lit: checking ScopedPtrHolder... +out-lit: . +out-lit: ..install one element at index[0] +out-lit: . +out-lit: ..*** resize table to 16 elements +out-lit: . +out-lit: .throw some exceptions... +END + + +TEST "Managed Collection (I)" ScopedCollection_test < Testgroup=ALL +out: --> Test-ID =--missing-- +out: --> remaining= +out: Testing invocation with cmdline: --help... +out: --> Testgroup=ALL +out: --> Test-ID =--missing-- +out: --> remaining= +out: Testing invocation with cmdline: --group TestGroupID... +out: --> Testgroup=TestGroupID +out: --> Test-ID =--missing-- +out: --> remaining= +out: Testing invocation with cmdline: SingleTestID... +out: --> Testgroup=ALL +out: --> Test-ID =SingleTestID +out: --> remaining=SingleTestID +out: Testing invocation with cmdline: SingleTestID --group TestGroupID... +out: --> Testgroup=TestGroupID +out: --> Test-ID =SingleTestID +out: --> remaining=SingleTestID +out: Testing invocation with cmdline: --group TestGroupID SingleTestID ... +out: --> Testgroup=TestGroupID +out: --> Test-ID =SingleTestID +out: --> remaining=SingleTestID +out: Testing invocation with cmdline: --group TestGroupID SingleTestID spam eggs... +out: --> Testgroup=TestGroupID +out: --> Test-ID =SingleTestID +out: --> remaining=SingleTestID spam eggs +out: Testing invocation with cmdline: SingleTestID spam --group TestGroupID --eggs... +out: --> Testgroup=TestGroupID +out: --> Test-ID =SingleTestID +out: --> remaining=SingleTestID spam --eggs +END + + +TEST "TypeList_test" TypeList_test < > +out: ctor DoIt > +out: ctor DoIt > +out: ctor DoIt > +out: ctor DoIt > +out: ctor DoIt > +out: devouring__Block< 2>__ +out: devouring__Block< 5>__ +out: devouring__Block<13>__ +out: gulp! +out: dtor DoIt > +out: dtor DoIt > +out: dtor DoIt > +out: dtor DoIt > +out: dtor DoIt > +out: dtor DoIt > +return: 0 +END + + +TEST "typelist manipulation" TypeListManip_test <-<2>-<3>- +out-lit: List2 :-<5>-<6>-<7>- +out-lit: Added2 :-<3>-<4>-<5>- +out-lit: FilterEven :-<2>-<6>- +out-lit: Append1 :- +out-lit: Append2 :-<11>-<22>- +out-lit: Append3 :-<111>- +out-lit: Append4 :-<222>- +out-lit: Append5 :-<1>-<2>-<3>- +out-lit: Append6 :-<5>-<6>-<7>- +out-lit: Append7 :-<111>-<5>-<6>-<7>- +out-lit: Append8 :-<1>-<2>-<3>-<222>- +out-lit: Append9 :-<1>-<2>-<3>-<5>-<6>-<7>- +out-lit: Overl01 :- +out-lit: Overl02 :- +out-lit: Overl03 :- +out-lit: Overl04 :-<9>-<8>-<3>- +out-lit: Overl05 :-<1>-<9>-<8>- +out-lit: Overl06 :-<1>-<2>-<9>- +out-lit: Overl07 :-<1>-<2>-<3>- +out-lit: Overl08 :-<1>-<2>-<3>- +out-lit: Overl09 :-<1>-<2>-<3>- +out-lit: Overl10 :-<1>-<1>-<2>- +out-lit: Overl11 :-<1>-<2>-<3>- +out-lit: Overl12 :-<1>-<2>-<3>- +out-lit: Overl13 :-<1>-<2>-<3>- +out-lit: Front1 :- +out-lit: Front2 :-<1>- +out-lit: Front3 :-<1>-<2>-<3>- +out-lit: Back1 :-<2>-<3>- +out-lit: Back2 :-<3>- +out-lit: Back3 :- +out-lit: Front4 :-<1>- +out-lit: Back4 :-<2>-<3>- +out-lit: Prefix :-<1>-<2>- +out-lit: ElmL :-<3>- +out-lit: NPrefix :- +out-lit: Types :-<3>- +out-lit: NList :- +out-lit: Types :- +out-lit: LL :-<1>-<2>-<3>-<5>-<6>-<7>- +out-lit: List :-<1>-<2>-<3>-<5>-<6>-<7>- +out-lit: First :-<1>- +out-lit: Tail :-<2>-<3>-<5>-<6>-<7>- +out-lit: Prefix :-<1>-<2>-<3>-<5>-<6>- +out-lit: Last :-<7>- +out-lit: HeadEnd :-<1>-<7>- +out-lit: Prefix1 : +out-lit: +---<11>-<22>-+- +out-lit: Prefix2 : +out-lit: +---<101>-<1>-+ +out-lit: +---<101>-<2>-+ +out-lit: +---<101>-<3>-+- +out-lit: Prefix3 : +out-lit: +---<1>-+ +out-lit: +---<2>-+ +out-lit: +---<3>-+- +out-lit: Prefix4 : +out-lit: +---<111>-<1>-<2>-<3>-+ +out-lit: +---<111>-<0>-+ +out-lit: +---<111>-<5>-<6>-<7>-+- +out-lit: Prefix5 : +out-lit: +---<1>-<2>-<3>-<5>-+ +out-lit: +---<1>-<2>-<3>-<6>-+ +out-lit: +---<1>-<2>-<3>-<7>-+- +out-lit: Prefix6 : +out-lit: +---<1>-<2>-<3>-<1>-<2>-<3>-+ +out-lit: +---<1>-<2>-<3>-<0>-+ +out-lit: +---<1>-<2>-<3>-<5>-<6>-<7>-+- +out-lit: Dist1 : +out-lit: +---<11>-<1>-+ +out-lit: +---<11>-<2>-+ +out-lit: +---<11>-<3>-+- +out-lit: Dist2 : +out-lit: +---<11>-<0>-+ +out-lit: +---<22>-<0>-+ +out-lit: +---<33>-<0>-+- +out-lit: Dist3 : +out-lit: +---<11>-<1>-+ +out-lit: +---<11>-<2>-+ +out-lit: +---<11>-<3>-+ +out-lit: +---<22>-<1>-+ +out-lit: +---<22>-<2>-+ +out-lit: +---<22>-<3>-+ +out-lit: +---<33>-<1>-+ +out-lit: +---<33>-<2>-+ +out-lit: +---<33>-<3>-+- +out-lit: Dist4 : +out-lit: +---<11>-<1>-<2>-<3>-+ +out-lit: +---<11>-<5>-<6>-<7>-+ +out-lit: +---<22>-<1>-<2>-<3>-+ +out-lit: +---<22>-<5>-<6>-<7>-+ +out-lit: +---<33>-<1>-<2>-<3>-+ +out-lit: +---<33>-<5>-<6>-<7>-+- +out-lit: Down :-<11>-<10>-<9>-<8>-<7>-<6>-<5>-<4>-<3>-<2>-<1>-<0>- +out-lit: Combi : +out-lit: +---<1>-<2>-<3>-<·>-+ +out-lit: +---<1>-<2>-<2>-<·>-+ +out-lit: +---<1>-<2>-<1>-<·>-+ +out-lit: +---<1>-<2>-<0>-<·>-+ +out-lit: +---<1>-<1>-<3>-<·>-+ +out-lit: +---<1>-<1>-<2>-<·>-+ +out-lit: +---<1>-<1>-<1>-<·>-+ +out-lit: +---<1>-<1>-<0>-<·>-+ +out-lit: +---<1>-<0>-<3>-<·>-+ +out-lit: +---<1>-<0>-<2>-<·>-+ +out-lit: +---<1>-<0>-<1>-<·>-+ +out-lit: +---<1>-<0>-<0>-<·>-+ +out-lit: +---<0>-<2>-<3>-<·>-+ +out-lit: +---<0>-<2>-<2>-<·>-+ +out-lit: +---<0>-<2>-<1>-<·>-+ +out-lit: +---<0>-<2>-<0>-<·>-+ +out-lit: +---<0>-<1>-<3>-<·>-+ +out-lit: +---<0>-<1>-<2>-<·>-+ +out-lit: +---<0>-<1>-<1>-<·>-+ +out-lit: +---<0>-<1>-<0>-<·>-+ +out-lit: +---<0>-<0>-<3>-<·>-+ +out-lit: +---<0>-<0>-<2>-<·>-+ +out-lit: +---<0>-<0>-<1>-<·>-+ +out-lit: +---<0>-<0>-<0>-<·>-+- +out-lit: OnOff : +out-lit: +---<1>-<2>-<3>-<·>-+ +out-lit: +---<1>-<2>-<·>-+ +out-lit: +---<1>-<3>-<·>-+ +out-lit: +---<1>-<·>-+ +out-lit: +---<2>-<3>-<·>-+ +out-lit: +---<2>-<·>-+ +out-lit: +---<3>-<·>-+ +out-lit: +---<·>-+- +return: 0 +END + + +TEST "type sequence manipulation" TypeSeqManipl_test <-<2>-<3>-<7>-<8>-<9>- +out: Seq :-<1>-<2>-<3>-<7>-<8>-<9>- +out: SeqList :-<1>-<2>-<3>-<7>-<8>-<9>- +out: NulS :- +out: Prepend1 :-<5>-<1>-<2>-<3>- +out: Prepend2 :-<·>-<1>-<2>-<3>- +out: Prepend3 :-<5>- +out: Prepend4 :- +out: Seq_0 :-<7>-<8>-<9>-<1>-<2>-<3>- +out: Seq_1 :-<8>-<9>-<1>-<2>-<3>- +out: Seq_2 :-<9>-<1>-<2>-<3>- +out: Seq_3 :-<1>-<2>-<3>- +out: Seq_4 :-<2>-<3>- +out: Seq_5 :-<3>- +out: Seq_6 :- +out: Head_0 :-<7>- +out: Head_1 :-<8>- +out: Head_2 :-<9>- +out: Head_3 :-<1>- +out: Head_4 :-<2>- +out: Head_5 :-<3>- +out: Head_6 :- +out: Seq :-<1>-<2>-<3>-<7>-<8>-<9>- +out: List :-<1>-<2>-<3>-<7>-<8>-<9>- +out: First :-<1>- +out: Tail :-<2>-<3>-<7>-<8>-<9>- +out: Prefix :-<1>-<2>-<3>-<7>-<8>- +out: Last :-<9>- +out: HeadEnd :-<1>-<9>- +return: 0 +END + + +TEST "TypeTuple_test" TypeTuple_test <-<3>-<5>- +out-lit: L2 :-<2>-<4>- +out-lit: L3 :-<7>- +out-lit: Tup1 :TYPES-<>-<1>-<3>-<5>- +out-lit: Tup1() :...Tuple((1),(3),(5)) +out-lit: tup1x :...Tuple({11},(3),(5)) +out-lit: Type1 :-<1>-<3>-<5>- +out-lit: T_L1 :TYPES-[]-<1>-<3>-<5>- +out-lit: T1 :TYPES-<>-<1>-<3>-<5>- +out-lit: tup1 :...Tuple({8},(3),(5)) +out-lit: tup2 :...Tuple({9},(3),(5)) +out-lit: Prepend :TYPES-[]--<1>-<3>-<5>- +out-lit: prepend :...Tuple(22,{9},(3),(5)) +out-lit: : +out-lit: : ---Sub-Tuple-Types---- +out-lit: T_L2 :TYPES-[]-<2>-<4>-<1>-<3>-<5>- +out-lit: Head :-<2>- +out-lit: Tail :-<4>-<1>-<3>-<5>- +out-lit: T2 :TYPES-<>-<2>-<4>-<1>-<3>-<5>- +out-lit: Head2 :-<2>- +out-lit: Tail2 :-<4>-<1>-<3>-<5>- +out-lit: T2::Type :-<2>-<4>-<1>-<3>-<5>- +out-lit: T2::TailType :-<4>-<1>-<3>-<5>- +out-lit: T2::TupleType :TYPES-<>-<2>-<4>-<1>-<3>-<5>- +out-lit: T2::ThisType :TYPES-<>-<2>-<4>-<1>-<3>-<5>- +out-lit: T2::Tail :TYPES-<>-<4>-<1>-<3>-<5>- +out-lit: T2::ArgList :-<2>-<4>-<1>-<3>-<5>- +out-lit: T_L2::Type :-<2>-<4>-<1>-<3>-<5>- +out-lit: T_L2::TailType :-<4>-<1>-<3>-<5>- +out-lit: T_L2::TupleType :TYPES-<>-<2>-<4>-<1>-<3>-<5>- +out-lit: T_L2::ThisType :TYPES-[]-<2>-<4>-<1>-<3>-<5>- +out-lit: T_L2::Tail :TYPES-[]-<4>-<1>-<3>-<5>- +out-lit: T_L2::ArgList :-<2>-<4>-<1>-<3>-<5>- +out-lit: NulT::Type :- +out-lit: NulT::TailType :- +out-lit: NulT::TupleType :TYPES-<>- +out-lit: NulT::ThisType :TYPES-<>- +out-lit: NulT::Tail :TYPES-<>- +out-lit: NulT::ArgList :- +out-lit: NulL::Type :- +out-lit: NulL::TailType :- +out-lit: NulL::TupleType :TYPES-<>- +out-lit: NulL::ThisType :TYPES-[]- +out-lit: NulL::Tail :TYPES-[]- +out-lit: NulL::ArgList :- +out-lit: : +out-lit: : ---Shifted-Tuple--- +out-lit: Ty_0 :-<2>-<4>-<7>- +out-lit: Ty_1 :-<4>-<7>- +out-lit: Ty_2 :-<7>- +out-lit: Ty_3 :- +out-lit: Ty_4 :- +out-lit: T_0 :TYPES-[]-<2>-<4>-<7>- +out-lit: T_1 :TYPES-[]-<4>-<7>- +out-lit: T_2 :TYPES-[]-<7>- +out-lit: T_3 :TYPES-[]- +out-lit: T_4 :TYPES-[]- +out-lit: tu3 :...Tuple((2),(4),(7)) +out-lit: tu3_0 :...Tuple((2),(4),(7)) +out-lit: tu3_1 :...Tuple((4),(7)) +out-lit: tu3_2 :...Tuple((7)) +out-lit: tu3_3 :...Tuple() +out-lit: tu3_4 :...Tuple() +out-lit: : +out-lit: : ---creating-Tuples--- +out-lit: tup1 :...Tuple((1),(3),(5)) +out-lit: tup11 :...Tuple({11},(3),(5)) +out-lit: tup12 :...Tuple((1),{33},(5)) +out-lit: tup13 :...Tuple({11},{33},(5)) +out-lit: Tup2 :TYPES-<>---<11>- +out-lit: tup2 :...Tuple(41,42,{43}) +out-lit: Tup22 :TYPES-<>--<11>- +out-lit: tup22 :...Tuple(42,{43}) +out-lit: Tup222 :TYPES-<>-<11>- +out-lit: tup222 :...Tuple({43}) +out-lit: T0T :TYPES-<>- +out-lit: T0L :TYPES-[]- +out-lit: nullT :...Tuple() +out-lit: nullL :...Tuple() +out-lit: nulTcpy :...Tuple() +out-lit: nulTref :...Tuple() +out-lit: : +out-lit: : ---build-from-sub-Tuples--- +out-lit: T1357L :TYPES-[]-<1>-<3>-<5>-<7>- +out-lit: T1357T :TYPES-<>-<1>-<3>-<5>-<7>- +out-lit: T135L :TYPES-[]-<1>-<3>-<5>- +out-lit: T57T :TYPES-<>-<5>-<7>- +out-lit: T35T :TYPES-<>-<3>-<5>- +out-lit: sub135 :...Tuple((1),(3),(5)) +out-lit: b_135 :...Tuple((1),(3),(5),(7)) +out-lit: b_135 :...Tuple((1),(3),(5),(7)) +out-lit: b_135 :...Tuple((1),(3),(5),(7)) +out-lit: b_135 :...Tuple((1),(3),(5),(7)) +out-lit: sub57 :...Tuple((5),(7)) +out-lit: b_57 :...Tuple((1),(3),(5),(7)) +out-lit: sub35 :...Tuple({8},{8}) +out-lit: b_35 :...Tuple((1),{8},{8},(7)) +out-lit: b_35 :...Tuple((1),(3),(5),(7)) +out-lit: b_35 :...Tuple((1),(3),(5),(7)) +out-lit: sub78 :...Tuple({77},{88}) +out-lit: b_78 :...Tuple((1),(3),(5),{77}) +out-lit: b_nul :...Tuple((1),(3),(5),(7)) +out-lit: b_nul :...Tuple((1),(3),(5),(7)) +out-lit: b_nul2 :...Tuple() +out-lit: b_nul2 :...Tuple() +out-lit: : +out-lit: : ---copy-operations--- +out-lit: tup1 :...Tuple({11},{33},(5)) +out-lit: tup11 :...Tuple({11},{33},{44}) +out-lit: tup1 :...Tuple({11},{33},{44}) +out-lit: tupL :...Tuple({11},{33},{44}) +out-lit: tup1L :...Tuple({11},{33},{44}) +out-lit: : +out-lit: : ---value-access--- +out-lit: TupX :TYPES-[]-<2>-<4>-<2>-<4>- +out-lit: tupX :...Tuple((2),(4),(2),(4)) +out-lit: tu2 :...Tuple((2),(4)) +out-lit: tu2 :...Tuple({5},{5}) +out-lit: tupX :...Tuple((2),(4),{5},{5}) +out-lit: T4 :TYPES-<>-<2>-<4>- +out-lit: t4 :...Tuple({5},{5}) +out-lit: TupX::Type :-<2>-<4>-<2>-<4>- +out-lit: TupX::TailType :-<4>-<2>-<4>- +out-lit: TupX::ThisType :TYPES-[]-<2>-<4>-<2>-<4>- +out-lit: TupX::TupleType :TYPES-<>-<2>-<4>-<2>-<4>- +out-lit: TupT::Type :-<2>-<4>-<2>-<4>- +out-lit: TupT::TailType :-<4>-<2>-<4>- +out-lit: TupT::ThisType :TYPES-<>-<2>-<4>-<2>-<4>- +out-lit: TupT::TupleType :TYPES-<>-<2>-<4>-<2>-<4>- +out-lit: tupXcopy :...Tuple((2),(4),{5},{5}) +out-lit: tupXcast :...Tuple((2),(4),{5},{5}) +return: 0 +END + + +TEST "Typelist combinations generator" GeneratorCombinations_test <-<2>-+ +out-lit: +---<1>-<4>-+ +out-lit: +---<1>-<6>-+ +out-lit: +---<3>-<2>-+ +out-lit: +---<3>-<4>-+ +out-lit: +---<3>-<6>-+ +out-lit: +---<5>-<2>-+ +out-lit: +---<5>-<4>-+ +out-lit: +---<5>-<6>-+- +out-lit: All-Test-Combinations--<12>-<14>-<16>-<32>-<34>-<36>-<52>-<54>-<56>-| +return: 0 +END + + +TEST "custom allocator(I)" SimpleAllocator_test <