LUMIERA.clone/tests/40core.tests
Ichthyostega a421cf45de adjust test spec: C++11 does indeed pass ref parameters even through function objects
This is a notable difference to the boost or tr1-function objects
we used up to now. Thus the behavour is now straight forward without
any exception. If the function takes an argument by reference,
this is replicated through bind and function expressions
2014-05-10 02:14:38 +02:00

1476 lines
43 KiB
Text

TESTING "Core Component Test Suite: common and basic components" ./test-suite --group=common
TEST "Hello test world" HelloWorld_test 3 <<END
out-lit: This is how the world ends...
return: 0
END
TEST "Allocation Cluster" AllocationCluster_test <<END
return: 0
END
TEST "basic application state" Appconfig_test <<END
return: 0
END
TEST "Advice collaboration (basics)" AdviceBasics_test <<END
return: 0
END
PLANNED "Advice constellations" AdviceSituations_test <<END
return: 0
END
PLANNED "Advice variants and configurations" AdviceConfiguration_test <<END
return: 0
END
PLANNED "Advice multiplicity and concurrency" AdviceMultiplicity_test <<END
return: 0
END
TEST "Advice binding patterns" AdviceBindingPattern_test <<END
out-lit: --->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 <<END
return: 0
END
TEST "implicit conversion to bool" BoolCheckable_test <<END
out: 1
out: 2
out: doIt
out: 4
out: 5
out: doIt
out: 7
out: 8
out: doIt
out: 10
out: 11
out: doIt
out: 13
out: 14
out: doIt
out: sizeof.+lib.+test.+ExampleCustomType123.+ = [248]
return: 0
END
TEST "CmdlineWrapper_test" CmdlineWrapper_test <<END
out: wrapping cmdline:\.\.\.
out: -->
out: wrapping cmdline:
out: \.\.\.
out: -->
out: wrapping cmdline:spam...
out: 0\|spam\|
out: -->spam
out: wrapping cmdline:
out: spam...
out: 0\|spam\|
out: -->spam
out: wrapping cmdline:eat more spam...
out: 0\|eat\|
out: 1\|more\|
out: 2\|spam\|
out: -->eat more spam
out: wrapping cmdline: oo _O\(\)O_ ä \+ €...
out: 0\|oo\|
out: 1\|_O\(\)O_\|
out: 2\|ä\|
out: 3\|\+\|
out: 4\|€\|
out: -->oo _O\(\)O_ ä \+ €
out: wrapping cmdline:Ω ooΩ oΩo Ωoo...
out: 0\|Ω\|
out: 1\|ooΩ\|
out: 2\|oΩo\|
out: 3\|Ωoo\|
out: -->Ω ooΩ oΩo Ωoo
out: Standard Cmdlineformat:one two
END
TEST "ConfigFlags_test" ConfigFlags_test <<END
out: Conf0 :-
out: Conf1 :-<1>-
out: Conf2 :-<2>-
out: Conf3 :-<3>-
out: Conf4 :-<2>-<4>-
out: AllFlags :-<1>-<2>-<3>-<4>-
out: __________________________$
out: __________________________ check_flags\(\)
out: Flags1 :-<2>-<4>-
out: Flags2 :-<2>-<4>-
out: SimpleConfig_defined_by_Typelist :-<1>-
out: AnotherConfig_defined_by_Typelist :-<1>-<2>-<3>-<4>-
out: __________________________$
out: __________________________ check_instantiation\(\)
out: defined Conf0\? ---> 0
out: defined Conf1\? ---> 1
out: defined Conf2\? ---> 1
out: defined Conf3\? ---> 1
out: defined Conf4\? ---> 1
out: defined Trash\? ---> 0
out: __________________________$
out: __________________________ check_filter\(\)
out: SomeFlagsets :
out: \+---<1>-<3>-\+
out: \+---<2>-<4>-\+-
out: Configs_defined_by_Flagsets :
out: \+-Conf-\[-<1>-<3>-\]
out: \+-Conf-\[-<2>-<4>-\]-
out: Filter_possible_Configs :
out: \+-Conf-\[-<2>-<4>-\]-
out: AllFlagCombinations :
out: \+---<1>-<2>-<3>-<4>-<·>-\+
out: \+---<1>-<2>-<3>-<·>-\+
out: \+---<1>-<2>-<4>-<·>-\+
out: \+---<1>-<2>-<·>-\+
out: \+---<1>-<3>-<4>-<·>-\+
out: \+---<1>-<3>-<·>-\+
out: \+---<1>-<4>-<·>-\+
out: \+---<1>-<·>-\+
out: \+---<2>-<3>-<4>-<·>-\+
out: \+---<2>-<3>-<·>-\+
out: \+---<2>-<4>-<·>-\+
out: \+---<2>-<·>-\+
out: \+---<3>-<4>-<·>-\+
out: \+---<3>-<·>-\+
out: \+---<4>-<·>-\+
out: \+---<·>-\+-
out: ListAllConfigs :
out: \+-Conf-\[-<1>-<2>-<3>-<4>-\]
out: \+-Conf-\[-<1>-<2>-<3>-\]
out: \+-Conf-\[-<1>-<2>-<4>-\]
out: \+-Conf-\[-<1>-<2>-\]
out: \+-Conf-\[-<1>-<3>-<4>-\]
out: \+-Conf-\[-<1>-<3>-\]
out: \+-Conf-\[-<1>-<4>-\]
out: \+-Conf-\[-<1>-\]
out: \+-Conf-\[-<2>-<3>-<4>-\]
out: \+-Conf-\[-<2>-<3>-\]
out: \+-Conf-\[-<2>-<4>-\]
out: \+-Conf-\[-<2>-\]
out: \+-Conf-\[-<3>-<4>-\]
out: \+-Conf-\[-<3>-\]
out: \+-Conf-\[-<4>-\]
out: \+-Conf-\[-\]-
out: Filter_all_possible_Configs :
out: \+-Conf-\[-<1>-\]
out: \+-Conf-\[-<2>-<3>-\]
out: \+-Conf-\[-<2>-<4>-\]
out: \+-Conf-\[-<2>-\]
out: \+-Conf-\[-<3>-\]-
out: __________________________$
out: __________________________ check_FlagInfo\(\)
out: Flags1 :-<1>-<3>-
out: max bit : 3
out: binary code: 10
out: SomeConfigs :
out: \+-Conf-\[-<1>-<3>-\]
out: \+-Conf-\[-<2>-<4>-\]-
out: max bit in \[SomeConfigs\] : 4
out: TestVisitor application:
out: visit\(code=10\) -->
out: \+-Conf-\[-<1>-<3>-\]-
out: visit\(code=20\) -->
out: \+-Conf-\[-<2>-<4>-\]-
out: __________________________$
out: __________________________ check_ConfigSelector\(\)
out: Possible_Configs :
out: \+-Conf-\[-<1>-\]
out: \+-Conf-\[-<2>-<3>-\]
out: \+-Conf-\[-<2>-<4>-\]
out: \+-Conf-\[-<2>-\]
out: \+-Conf-\[-<3>-\]-
out: Flag-code = 2 ConfigSelector\(\) ---> 1010
out: Flag-code = 12 ConfigSelector\(\) ---> 1023
out: Flag-code = 20 ConfigSelector\(\) ---> 1024
out: Flag-code = 4 ConfigSelector\(\) ---> 1020
out: Flag-code = 8 ConfigSelector\(\) ---> 1030
out: LUMIERA_ERROR_INVALID:invalid input or parameters \(ConfigSelector: No preconfigured factory for config-bits=10111\)\.
return: 0
END
TEST "CustomSharedPtr_test" CustomSharedPtr_test <<END
return: 0
END
TEST "Deleter function collection" DelStash_test <<END
return: 0
END
TEST "Dependency injection" DependencyFactory_test <<END
out-lit: ctor TargetObj(0) successful
out-lit: ctor TargetObj(1) successful
out-lit: ctor TargetObj(2) successful
out-lit: ctor TargetObj(3) successful
out-lit: dtor ~TargetObj(3) successful
out-lit: ctor TargetObj(4) successful
out-lit: dtor ~TargetObj(4) successful
out-lit: dtor ~TargetObj(2) successful
out-lit: dtor ~TargetObj(1) successful
out-lit: dtor ~TargetObj(0) successful
return: 0
END
TEST "A Digxel (numeric component)" Digxel_test <<END
out-lit: empty____## +0.0 ##
out-lit: value____##-88.8 ##
out: timings\(\w+\)....*ns
return: 0
END
TEST "Digxel standard configurations" DigxelConfigurations_test <<END
out: .+Digxel.+Formatter.+--empty-- 0--\(val=123\)--123\|
out: .+Digxel.+Formatter.+--empty--00.000--\(val=123.457\)--123.457
out: .+Digxel.+SexaFormatter.+--empty--00--\(val=42\)--42
out: .+Digxel.+SexaFormatter.+--empty--00--\(val=-5\)---5
out: .+Digxel.+HexaFormatter.+--empty--00--\(val=12\)--0C
out: .+Digxel.+HexaFormatter.+--empty--00--\(val=111\)--6F
out: .+Digxel.+CountFormatter.+--empty--0000--\(val=-1234567890\)---1234567890
return: 0
END
TEST "Duck typing support" DuckDetector_test <<END
out: HasNested_Core<PropperGander> : Yes
out: HasNested_Core<Propaganda> : No
out: HasMember_honk<PropperGander> : Yes
out: HasMember_honk<Propaganda> : Yes
out: HasFunSig_honk<PropperGander> : Yes
out: HasFunSig_honk<Propaganda> : No
return: 0
END
TEST "ExceptionError_test" ExceptionError_test <<END
out: caught: LUMIERA_ERROR_LIFE_AND_UNIVERSE:and everything\? \(don't panic\)...the answer is: 42
out: caught lumiera::Error: LUMIERA_ERROR_DERIVED:convoluted exception
out: caught error::Logic: LUMIERA_ERROR_FATAL:floundered \(test-2\).
out: caught error::Invalid: LUMIERA_ERROR_INVALID:invalid input or parameters \(test-3\).
out: caught lumiera::Error: LUMIERA_ERROR_EXTERNAL:failure in external service \(test-4\).
out: caught std::runtime_error: test-5
out: caught std::exception. \(unspecific\)
out: intermediate handler caught: LUMIERA_ERROR_EXTERNAL:failure in external service \(test-7\).....will rethrow as error::State
out: caught lumiera::Error: LUMIERA_ERROR_STATE:unforeseen state -- caused by: LUMIERA_ERROR_EXTERNAL:failure in external service \(test-7\).
out: intermediate handler caught: LUMIERA_ERROR_EXTERNAL:failure in external service \(test-8\).....will rethrow as error::State
out: 2nd intermediate handler caught: LUMIERA_ERROR_STATE:unforeseen state -- caused by: LUMIERA_ERROR_EXTERNAL:failure in external service \(test-8\).....will rethrow as error::Config
out: caught lumiera::Error: LUMIERA_ERROR_CONFIG:misconfiguration -- caused by: LUMIERA_ERROR_EXTERNAL:failure in external service \(test-8\)\.
out: caught lumiera::Error: LUMIERA_ERROR_LIFE_AND_UNIVERSE:and everything\? \(what is the answer\?\)\.
out: caught error::Logic: LUMIERA_ERROR_LOGIC:internal logic broken \(the big bang\). -- caused by: LUMIERA_ERROR_LIFE_AND_UNIVERSE:and everything\? \(what is the answer\?\)\.
END
TEST "formatting/diagnostics helpers" FormatHelper_test <<END
out: Displaying some types....
out: «..util.test.Reticent.»
out: <no comment>
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 <<END
out-lit: --format-template--int=0012--double=+1.23--string=Lumiera --
out: 0x....+ _____+ .
out: «.+util.+test.+Silent.»
out-lit: __nix_
out-lit: ____
out-lit: __1__
out-lit: __1__
out-lit: __↯__
out-lit: __dirt__
out-lit: __1234__
out-lit: __0xff__
return: 0
END
TEST "functional closure" FunctionClosure_test <<END
out: List1 :-<1>-<2>-<3>-
out: List2 :-<5>-<6>-<7>-
out: Args :-<5>-<9>-
out: NewArgs :-<1>-<5>-<9>-
out: :$
out: : ---Apply---
out: tup0 :...Tuple\(\)
out: tup1 :...Tuple\(11\)
out: tup2 :...Tuple\(11,12\)
out: tup3 :...Tuple\(11,12,13\)
out: :$
out: : ---Bind----
return: 0
END
TEST "functional composition" FunctionComposition_test <<END
return: 0
END
TEST "function type erasure" FunctionErasure_test <<END
return: 0
END
TEST "HashGenerator_test" HashGenerator_test <<END
return: 0
END
TEST "HashIndexed_test" HashIndexed_test <<END
return: 0
END
TEST "Hierarchy rebuilding" HierarchyOrientationIndicator_test <<END
return: 0
END
TEST "LifeCycle_test" LifeCycle_test <<END
return: 0
END
TEST "configurable Factory" MultiFact_test <<END
out: Impl-1
out: Impl-2
out: Impl-3
out: Impl-4
out: sizeof\( .+MultiFact.+Interface.+theID.+PassReference.+ \) =
return: 0
END
TEST "Factory argument handling" MultiFactArgument_test <<END
out: sizeof\( .+MultiFact.+Num.+prodID.+BuildRefcountPtr.+ \) =
out: fabricate\(1, 2\)
out: fabricate\(2, 3\)
return: 0
END
TEST "metaprogramming helpers" MetaUtils_test <<END
return: 0
END
TEST "NIL object singleton" NullValue_test <<END
return: 0
END
TEST "inline type erasure" OpaqueHolder_test <<END
out: 1
out: 3
out: 5
out: 7
out: sizeof\( .+ \) = .*[12468]{1,2}
return: 0
END
TEST "inline unchecked buffer" OpaqueUncheckedBuffer_test <<END
out: DD<0>:
out: DD<5>: \*\*\*\*\*
out: DD<9>: I'm fine\*
out: I'm special, what the f\*\* is going on here\?\*\*\*\*\*\*\*\*\*\*\*\*
return: 0
END
TEST "inline val/ref wrapper" ItemWrapper_test <<END
out: ItemWrapper: sizeof\( .+ItemWrapper.+ ) =
END
TEST "switchable reference" OptionalRef_test <<END
return: 0
END
TEST "Lumiera Iterator Concept" IterAdapter_test 20 <<END
out: ::20::19::18::17::16::15::14::13::12::11::10::9::8::7::6::5::4::3::2::1
out: ::0::1::2::3::4::5::6::7::8::9::10::11::12::13::14::15::16::17::18::19
END
TEST "Lumiera Iterator Adapter for STL" IterAdapterSTL_test <<END
out: -----filter-distinct-values---.+vector
out: iter::eachDistinct$
out: iter::eachDistinct::1$
out: iter::eachDistinct::1::2::3::1
out: -----iterateMapKeyVal---.+map
out: iter::eachKey::0::1::2::3::4::5::6::7::8::9
out: iter::eachVal::0::2::4::6::8::10::12::14::16::18
out: iter::eachDistinctKey::0::1::2::3::4::5::6::7::8::9
out: -----iterateMapKeyVal---.+unordered_map
out: iter::eachKey::9::8::7::6::5::4::3::2::1::0
out: iter::eachVal::18::16::14::12::10::8::6::4::2::0
out: iter::eachDistinctKey::9::8::7::6::5::4::3::2::1::0
out: -----iterateMapKeyVal---.+multimap
out: iter::eachKey::0::0::0::0::0::0::0::0::0::0::1::1::1::1::1::1::1::1::1::2::2::2::2::2::2::2::2::3::3::3::3::3::3::3::4::4::4::4::4::4::5::5::5::5::5::6::6::6::6::7::7::7::8::8::9
out: iter::eachVal::10::9::8::7::6::5::4::3::2::1::9::8::7::6::5::4::3::2::1::8::7::6::5::4::3::2::1::7::6::5::4::3::2::1::6::5::4::3::2::1::5::4::3::2::1::4::3::2::1::3::2::1::2::1::1
out: iter::eachDistinctKey::0::1::2::3::4::5::6::7::8::9
out: -----iterateMapKeyVal---.+unordered_multimap
out: iter::eachKey::9::8::8::2::2::2::2::2::2::2::2::1::1::1::1::1::1::1::1::1::0::0::0::0::0::0::0::0::0::0::3::3::3::3::3::3::3::4::4::4::4::4::4::5::5::5::5::5::6::6::6::6::7::7::7
out: iter::eachVal::1::1::2::1::2::3::4::5::6::7::8::1::2::3::4::5::6::7::8::9::1::2::3::4::5::6::7::8::9::10::1::2::3::4::5::6::7::1::2::3::4::5::6::1::2::3::4::5::1::2::3::4::1::2::3
out: iter::eachDistinctKey::9::8::2::1::0::3::4::5::6::7
out: -----iterateValues4Key---.+multimap
out: iter::eachValForKey::10::9::8::7::6::5::4::3::2::1
out: -----iterateValues4Key---.+unordered_multimap
out: iter::eachValForKey::1::2::3::4::5::6::7::8::9::10
out: snapshot-0-1-2-3-4-5-6-7-8-9
out: snapshot-22-44
END
TEST "Lumiera Iterator Tools" IterTools_test 20 <<END
out: ::20::19::18::17::16::15::14::13::12::11::10::9::8::7::6::5::4::3::2::1
out: ::20::18::16::14::12::10::8::6::4::2
out: ::19::17::15::13::11::9::7::5::3::1
out: ::17::16::15::14::13::12::11::10::9::8::7::6::5::4::3::2::1
out: ::16::14::12::10::8::6::4::2
out: ::17::15::13::11::9::7::5::3::1
out: ::10::9::8::7::6::5::4::3::2::1
out: ::-10::-9::-8::-7::-6::-5::-4::-3::-2::-1
out: ::12::11::10::9::8::7::6::5::4::3
END
TEST "Iterable data source" IterSource_test 13 <<END
out: ::13::12::11::10::9::8::7::6::5::4::3::2::1
out: ::.............::............::...........::..........::.........::........::.......::......::.....::....::...::..::.$
out-lit: ::0:00:03.250::0:00:03.000::0:00:02.750::0:00:02.500::0:00:02.250::0:00:02.000::0:00:01.750::0:00:01.500::0:00:01.250::0:00:01.000::0:00:00.750::0:00:00.500::0:00:00.250
out: (::X...........){13}$
out: (::0:0.:..\..00){13}$
out: (::X...........){13}$
out: (::0:0.:..\..00){13}$
out: distinct_keys::0::1::2::3::4::5::6::7::8::9::10::11::12
out: values_4_key(::[0-9]{1,2})+
out: distinct_keys(::[0-9]{1,2}){13}
out: values_4_key(::[0-9]{1,2})+
END
TEST "Iterator monad variations" IterExplorer_test <<END
out-lit: 1-2-3-4-5-6-7-8
out-lit: 0-1-2-3-4-0-1-2-3-4-5-6-0-1-2-3-4-5-6-7-8
out-lit: 0-1-2-3-4-5-6-7-8
out-lit: 0-1-2-3-4-5-6-7-8
END
TEST "Stack-like iterator" IterStack_test <<END
return: 0
END
TEST "Queue-like iterator" IterQueue_test <<END
return: 0
END
TEST "Iterable type detection" IterableClassification_test <<END
out: can_STL_ForEach<LongVector> : Yes
out: can_STL_ForEach<TimeSet> : Yes
out: can_STL_ForEach<CharMap> : Yes
out: can_STL_ForEach<BoolList> : Yes
out: can_STL_ForEach<ShortDeque> : Yes
out: can_STL_ForEach<CustomCont> : Yes
out: can_STL_ForEach<ForwardRangeIter> : No
out: can_STL_ForEach<TransformedForwardIter> : No
out: can_STL_ForEach<FilteredForwardIter> : No
out: can_STL_ForEach<CustomForwardIter> : No
out: can_IterForEach<LongVector> : No
out: can_IterForEach<TimeSet> : No
out: can_IterForEach<CharMap> : No
out: can_IterForEach<BoolList> : No
out: can_IterForEach<ShortDeque> : No
out: can_IterForEach<CustomCont> : No
out: can_IterForEach<ForwardRangeIter> : Yes
out: can_IterForEach<TransformedForwardIter> : Yes
out: can_IterForEach<FilteredForwardIter> : Yes
out: can_IterForEach<CustomForwardIter> : Yes
END
TEST "Linked iterable elements" LinkedElements_test <<END
return: 0
END
TEST "Polymorphic value objects" PolymorphicValue_test <<END
return: 0
END
TEST "Generic Query representation" QueryText_test <<END
return: 0
END
TEST "Query support utilities" QueryUtils_test <<END
out-lit: ..original : a A AA dufte 1a _1 A_A BÄH White space §&Ω%€GΩ%€ar ☠☠☠ baäääääge!!!!! :
out-lit: normalised : a a aA dufte o1a o_1 a_A bH o white_space gar_bage :
return: 0
END
TEST "RefArray_test" RefArray_test <<END
return: 0
END
TEST "RemoveFromSet_test" RemoveFromSet_test <<END
out: removed nothing ---> \[ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, \]
out: removed 0 ---> \[ 1, 2, 3, 4, 5, 6, 7, 8, 9, \]
out: removed 9 ---> \[ 0, 1, 2, 3, 4, 5, 6, 7, 8, \]
out: removed 5 ---> \[ 0, 1, 2, 3, 4, 6, 7, 8, 9, \]
out: removed 0 2 4 6 8 ---> \[ 1, 3, 5, 7, 9, \]
out: removed 1 3 5 7 9 ---> \[ 0, 2, 4, 6, 8, \]
out: removed 0 1 2 3 4 5 6 7 8 9 ---> \[ \]
out: removed 0 1 2 3 4 5 6 7 8 ---> \[ 9, \]
out: removed 1 2 3 4 5 6 7 8 9 ---> \[ 0, \]
out: removed 0 1 2 3 4 6 7 8 9 ---> \[ 5, \]
END
TEST "SanitizedIdentifier_test" SanitizedIdentifier_test <<END
out: 'Word' --> 'Word'
out: 'a Sentence' --> 'a_Sentence'
out: 'trailing Withespace
out: ' --> 'trailing_Withespace'
out: 'with a lot
out: of Whitespace' --> 'with_a_lot_of_Whitespace'
out: 'with"much \(punctuation\)\[\]!' --> 'withmuch_\(punctuation\)'
out: '§&Ω%€ leading garbage' --> 'leading_garbage'
out: 'mixed Ω garbage' --> 'mixed_garbage'
out: 'Bääääh!!' --> 'Bh'
out: '§&Ω%€' --> ''
END
TEST "ScopedHolder_test" ScopedHolder_test <<END
out: checking ScopedHolder<Dummy>...
out: checking ScopedPtrHolder<Dummy>...
END
TEST "ScopedHolderTransfer_test" ScopedHolderTransfer_test <<END
out: checking ScopedHolder<Dummy>...
out: \.$
out: \.\.install one element at index\[0\]
out: ^\.$
out: \.\.\*\*\* resize table to 16 elements
out: ^\.$
out: ^\.throw some exceptions...
out: checking ScopedPtrHolder<Dummy>...
out: ^\.$
out: ..install one element at index\[0\]
out: ^\.$
out: ..\*\*\* resize table to 16 elements
out: ^\.$
out: ^\.throw some exceptions...
END
TEST "Managed Collection (I)" ScopedCollection_test <<END
return: 0
END
TEST "Managed Collection (II)" ScopedPtrVect_test <<END
return: 0
END
TEST "Search path walking" SearchPathSplitter_test <<END
out-lit: ➢➢a
out-lit: ➢➢a
out-lit: ➢➢a
out-lit: ➢➢b
out-lit: ➢➢a
out-lit: ➢➢b
out-lit: ➢➢c
out: ➢➢.d.
out-lit: ➢➢ e f
out-lit: ➢➢/usr/bin
out-lit: ➢➢/usr/lib
END
TEST "Singleton_test" Singleton_test 23 <<END
out-lit: testing TargetObj(23) as Singleton
out-lit: ctor TargetObj(23) successful
out-lit: calling a non-static method on the Singleton instance
out-lit: .....TargetObj(23): data="***********************", array[23]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,}
out-lit: dtor ~TargetObj(23) successful
END
TEST "SingletonSubclass_test" SingletonSubclass_test 13 <<END
out-lit: using the Singleton should create TargetObj(13)...
out-lit: ctor TargetObj(13) successful
out-lit: calling a non-static method on the Singleton-Implementation
out-lit: .....TargetObj(13): data="*************", array[13]={0,1,2,3,4,5,6,7,8,9,10,11,12,}
out-lit: dtor ~TargetObj(13) successful
END
TEST "SingletonTestMock_test" SingletonTestMock_test <<END
out-lit: TestSingletonO::doIt() call=1
out-lit: TestSingletonO::doIt() call=2
out-lit: Mock_1::doIt() call=1
out-lit: Mock_1::doIt() call=2
out-lit: Mock_1::doIt() call=3
out-lit: Mock_1::doIt() call=4
out-lit: Mock_1::doIt() call=5
out-lit: Mock_2::doIt() call=1
out-lit: TestSingletonO::doIt() call=3
END
PLANNED "StreamTypeBasics_test" StreamTypeBasics_test <<END
END
PLANNED "StreamTypeLifecycle_test" StreamTypeLifecycle_test <<END
END
TEST "Multithread Locking by Monitor" SyncLocking_test <<END
return: 0
END
TEST "Multithread Locking whole class" SyncClasslock_test <<END
return: 0
END
TEST "Wrapper thread-local pointers" ThreadLocal_test <<END
return: 0
END
TEST "Thread-local diagnostic context" DiagnosticContext_test <<END
return: 0
END
TEST "Wait/Notify on Object Monitor" SyncWaiting_test <<END
return: 0
END
TEST "Create 20 Threads passing context" ThreadWrapper_test <<END
return: 0
END
TEST "Waiting on Thread termination" ThreadWrapperJoin_test <<END
return: 0
END
TEST "Starting and stopping subsystems" SubsystemRunner_test <<END
out: -----singleSubsys_complete_cycle-----
out: -----singleSubsys_start_failure-----
out: -----singleSubsys_emegency_exit-----
out: -----dependentSubsys_complete_cycle-----
out: -----dependentSubsys_start_failure-----
return: 0
END
TEST "Lumiera Time Wrapper" TimeBasics_test <<END
out: .?.:..:..\....
return: 0
END
TEST "Times and time intervals" TimeValue_test <<END
return: 0
END
PLANNED "Time Quantisation" TimeQuantisation_test <<END
return: 0
END
TEST "Changing time specifications" TimeMutation_test <<END
return: 0
END
TEST "Life changing time specifications with feedback" TimeControl_test <<END
out: Test-Case. Target=.+time.Duration. <--feed--- .+time.TimeValue.$
out: Test-Case. Target=.+time.Duration. <--feed--- .+time.Time.$
out: Test-Case. Target=.+time.Duration. <--feed--- .+time.Duration.$
out: Test-Case. Target=.+time.Duration. <--feed--- .+time.TimeSpan.$
out: Test-Case. Target=.+time.Duration. <--feed--- .+time.QuTime.$
out: Test-Case. Target=.+time.TimeSpan. <--feed--- .+time.TimeValue.$
out: Test-Case. Target=.+time.TimeSpan. <--feed--- .+time.Time.$
out: Test-Case. Target=.+time.TimeSpan. <--feed--- .+time.Duration.$
out: Test-Case. Target=.+time.TimeSpan. <--feed--- .+time.TimeSpan.$
out: Test-Case. Target=.+time.TimeSpan. <--feed--- .+time.QuTime.$
out: Test-Case. Target=.+time.QuTime. <--feed--- .+time.TimeValue.$
out: Test-Case. Target=.+time.QuTime. <--feed--- .+time.Time.$
out: Test-Case. Target=.+time.QuTime. <--feed--- .+time.Duration.$
out: Test-Case. Target=.+time.QuTime. <--feed--- .+time.TimeSpan.$
out: Test-Case. Target=.+time.QuTime. <--feed--- .+time.QuTime.$
return: 0
END
TEST "Quantiser API basics" QuantiserBasics_test <<END
return: 0
END
TEST "Defining Suppport for specific timecode formats" FormatSupport_test <<END
return: 0
END
TEST "Time formats and timecodes" TimeFormats_test <<END
out: Framecount=".+#" time = .+:..:..
out: SMPTE=".+:..:..:.." time = .+:..:..
out-lit: ----SMPTE-----
out-lit: SMPTE=" 5:42:23:13" time = 5:42:23.520
return: 0
END
TEST "Parsing time values" TimeParsing_test <<END
END
TEST "Symbol_test" Symbol_test <<END
out: one
out: sizeof.+lib.Literal.+ = (4|8)
out: Ss
out: one\.\.\.\.one
return: 0
END
TEST "Hashtable with Symbol keys" SymbolHashtable_test <<END
return: 0
END
TEST "Test support functions" TestHelper_test <<END
out: [a-z0-9]{80}$
out: Displaying types and sizes....
out: sizeof..theUniverse.+ = 42
out: sizeof..just a char.+ = 1
out: sizeof.+lib.+test.+test.+Murpf.+ = 1
out: sizeof.+lib.+test.+test.+Wrmrmpft.+ = 2
out: sizeof.+lib.+test.+test.+Wrmrmpft.+ = 3
out: sizeof.+lib.+test.+test.+Wrmrmpft.+Murpf.+ = 1
END
TEST "TestOption_test" TestOption_test <<END
out: Testing invocation with cmdline: ...
out: --> 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 <<END
out: - 1 -- 2 -- 3 -- 5 -- 8 -- 13 -- The End -
out: ..Size of = 1
return: 0
END
TEST "simple typelist utils" TypeListUtil_test <<END
return: 0
END
TEST "TypeListGenerator_test" TypeListGenerator_test <<END
out: ctor DoIt<Block<13> >
out: ctor DoIt<Block< 8> >
out: ctor DoIt<Block< 5> >
out: ctor DoIt<Block< 3> >
out: ctor DoIt<Block< 2> >
out: ctor DoIt<Block< 1> >
out: devouring__Block< 2>__
out: devouring__Block< 5>__
out: devouring__Block<13>__
out: gulp!
out: dtor DoIt<Block< 1> >
out: dtor DoIt<Block< 2> >
out: dtor DoIt<Block< 3> >
out: dtor DoIt<Block< 5> >
out: dtor DoIt<Block< 8> >
out: dtor DoIt<Block<13> >
return: 0
END
TEST "typelist manipulation" TypeListManip_test <<END
out-lit: List1 :-<1>-<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<Elm1> :-<3>-
out-lit: NList :-
out-lit: Types<Nil> :-
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 <<END
out: LL :-<1>-<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 <<END
out: L1 :-<1>-<3>-<5>-
out: L2 :-<2>-<4>-
out: L3 :-<7>-
out: Tup1 :TYPES-<>-<1>-<3>-<5>-
out: Tup1\(\) :...Tuple\(\(1\),\(3\),\(5\)\)
out: tup1x :...Tuple\(\{11\},\(3\),\(5\)\)
out: Type1 :-<1>-<3>-<5>-
out: T_L1 :TYPES-\[\]-<1>-<3>-<5>-
out: T1 :TYPES-<>-<1>-<3>-<5>-
out: tup1 :...Tuple\(\{8\},\(3\),\(5\)\)
out: tup2 :...Tuple\(\{9\},\(3\),\(5\)\)
out: Prepend :TYPES-\[\]-<i>-<1>-<3>-<5>-
out: prepend :...Tuple\(22,\{9\},\(3\),\(5\)\)
out: :$
out: : ---Sub-Tuple-Types----
out: T_L2 :TYPES-\[\]-<2>-<4>-<1>-<3>-<5>-
out: Head :-<2>-
out: Tail :-<4>-<1>-<3>-<5>-
out: T2 :TYPES-<>-<2>-<4>-<1>-<3>-<5>-
out: Head2 :-<2>-
out: Tail2 :-<4>-<1>-<3>-<5>-
out: T2::Type :-<2>-<4>-<1>-<3>-<5>-
out: T2::TailType :-<4>-<1>-<3>-<5>-
out: T2::TupleType :TYPES-<>-<2>-<4>-<1>-<3>-<5>-
out: T2::ThisType :TYPES-<>-<2>-<4>-<1>-<3>-<5>-
out: T2::Tail :TYPES-<>-<4>-<1>-<3>-<5>-
out: T2::ArgList :-<2>-<4>-<1>-<3>-<5>-
out: T_L2::Type :-<2>-<4>-<1>-<3>-<5>-
out: T_L2::TailType :-<4>-<1>-<3>-<5>-
out: T_L2::TupleType :TYPES-<>-<2>-<4>-<1>-<3>-<5>-
out: T_L2::ThisType :TYPES-\[\]-<2>-<4>-<1>-<3>-<5>-
out: T_L2::Tail :TYPES-\[\]-<4>-<1>-<3>-<5>-
out: T_L2::ArgList :-<2>-<4>-<1>-<3>-<5>-
out: NulT::Type :-
out: NulT::TailType :-
out: NulT::TupleType :TYPES-<>-
out: NulT::ThisType :TYPES-<>-
out: NulT::Tail :TYPES-<>-
out: NulT::ArgList :-
out: NulL::Type :-
out: NulL::TailType :-
out: NulL::TupleType :TYPES-<>-
out: NulL::ThisType :TYPES-\[\]-
out: NulL::Tail :TYPES-\[\]-
out: NulL::ArgList :-
out: :$
out: : ---Shifted-Tuple---
out: Ty_0 :-<2>-<4>-<7>-
out: Ty_1 :-<4>-<7>-
out: Ty_2 :-<7>-
out: Ty_3 :-
out: Ty_4 :-
out: T_0 :TYPES-\[\]-<2>-<4>-<7>-
out: T_1 :TYPES-\[\]-<4>-<7>-
out: T_2 :TYPES-\[\]-<7>-
out: T_3 :TYPES-\[\]-
out: T_4 :TYPES-\[\]-
out: tu3 :...Tuple\(\(2\),\(4\),\(7\)\)
out: tu3_0 :...Tuple\(\(2\),\(4\),\(7\)\)
out: tu3_1 :...Tuple\(\(4\),\(7\)\)
out: tu3_2 :...Tuple\(\(7\)\)
out: tu3_3 :...Tuple\(\)
out: tu3_4 :...Tuple\(\)
out: :$
out: : ---creating-Tuples---
out: tup1 :...Tuple\(\(1\),\(3\),\(5\)\)
out: tup11 :...Tuple\(\{11\},\(3\),\(5\)\)
out: tup12 :...Tuple\(\(1\),\{33\},\(5\)\)
out: tup13 :...Tuple\(\{11\},\{33\},\(5\)\)
out: Tup2 :TYPES-<>-<i>-<i>-<11>-
out: tup2 :...Tuple\(41,42,\{43\}\)
out: Tup22 :TYPES-<>-<i>-<11>-
out: tup22 :...Tuple\(42,\{43\}\)
out: Tup222 :TYPES-<>-<11>-
out: tup222 :...Tuple\(\{43\}\)
out: T0T :TYPES-<>-
out: T0L :TYPES-\[\]-
out: nullT :...Tuple\(\)
out: nullL :...Tuple\(\)
out: nulTcpy :...Tuple\(\)
out: nulTref :...Tuple\(\)
out: :$
out: : ---build-from-sub-Tuples---
out: T1357L :TYPES-\[\]-<1>-<3>-<5>-<7>-
out: T1357T :TYPES-<>-<1>-<3>-<5>-<7>-
out: T135L :TYPES-\[\]-<1>-<3>-<5>-
out: T57T :TYPES-<>-<5>-<7>-
out: T35T :TYPES-<>-<3>-<5>-
out: sub135 :...Tuple\(\(1\),\(3\),\(5\)\)
out: b_135 :...Tuple\(\(1\),\(3\),\(5\),\(7\)\)
out: sub57 :...Tuple\(\(5\),\(7\)\)
out: b_57 :...Tuple\(\(1\),\(3\),\(5\),\(7\)\)
out: sub35 :...Tuple\(\{8\},\{8\}\)
out: b_35 :...Tuple\(\(1\),\{8\},\{8\},\(7\)\)
out: b_35 :...Tuple\(\(1\),\(3\),\(5\),\(7\)\)
out: sub78 :...Tuple\(\{77\},\{88\}\)
out: b_78 :...Tuple\(\(1\),\(3\),\(5\),\{77\}\)
out: b_nul :...Tuple\(\(1\),\(3\),\(5\),\(7\)\)
out: b_nul2 :...Tuple\(\)
out: :$
out: : ---copy-operations---
out: tup1 :...Tuple\(\{11\},\{33\},\(5\)\)
out: tup11 :...Tuple\(\{11\},\{33\},\{44\}\)
out: tup1 :...Tuple\(\{11\},\{33\},\{44\}\)
out: tupL :...Tuple\(\{11\},\{33\},\{44\}\)
out: tup1L :...Tuple\(\{11\},\{33\},\{44\}\)
out: :$
out: : ---value-access---
out: TupX :TYPES-\[\]-<2>-<4>-<2>-<4>-
out: tupX :...Tuple\(\(2\),\(4\),\(2\),\(4\)\)
out: tu2 :...Tuple\(\(2\),\(4\)\)
out: tu2 :...Tuple\(\{5\},\{5\}\)
out: tupX :...Tuple\(\(2\),\(4\),\{5\},\{5\}\)
out: T4 :TYPES-<>-<2>-<4>-
out: t4 :...Tuple\(\{5\},\{5\}\)
out: TupX::Type :-<2>-<4>-<2>-<4>-
out: TupX::TailType :-<4>-<2>-<4>-
out: TupX::ThisType :TYPES-\[\]-<2>-<4>-<2>-<4>-
out: TupX::TupleType :TYPES-<>-<2>-<4>-<2>-<4>-
out: TupT::Type :-<2>-<4>-<2>-<4>-
out: TupT::TailType :-<4>-<2>-<4>-
out: TupT::ThisType :TYPES-<>-<2>-<4>-<2>-<4>-
out: TupT::TupleType :TYPES-<>-<2>-<4>-<2>-<4>-
out: tupXcopy :...Tuple\(\(2\),\(4\),\{5\},\{5\}\)
out: tupXcast :...Tuple\(\(2\),\(4\),\{5\},\{5\}\)
return: 0
END
TEST "Typelist combinations generator" GeneratorCombinations_test <<END
out-lit: Cartesian :
out-lit: +---<1>-<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 <<END
return: 0
END
TEST "custom allocator(II)" TypedAllocationManager_test <<END
return: 0
END
TEST "Type-based contexts" TypedCounter_test <<END
return: 0
END
TEST "extensible symbolic identifier" SubID_test <<END
out: ....RGB
out: id1=R.12
out: id2=G.13
out: verify...
out: Elements in hashtable: 3
out: verify...
out: Elements in hashtable: 5
return: 0
END
TEST "integer rounding utility" UtilFloordiv_test <<END
return: 0
END
TEST "integer scale wrapping utility" UtilFloorwrap_test <<END
out-lit: --------i--------12/4
out-lit: 12 / 4 = 3 % = 0 floor= 3.0 wrap = ( 3, 0)
out-lit: 11 / 4 = 2 % = 3 floor= 2.0 wrap = ( 2, 3)
out-lit: 10 / 4 = 2 % = 2 floor= 2.0 wrap = ( 2, 2)
out-lit: 9 / 4 = 2 % = 1 floor= 2.0 wrap = ( 2, 1)
out-lit: 8 / 4 = 2 % = 0 floor= 2.0 wrap = ( 2, 0)
out-lit: 7 / 4 = 1 % = 3 floor= 1.0 wrap = ( 1, 3)
out-lit: 6 / 4 = 1 % = 2 floor= 1.0 wrap = ( 1, 2)
out-lit: 5 / 4 = 1 % = 1 floor= 1.0 wrap = ( 1, 1)
out-lit: 4 / 4 = 1 % = 0 floor= 1.0 wrap = ( 1, 0)
out-lit: 3 / 4 = 0 % = 3 floor= 0.0 wrap = ( 0, 3)
out-lit: 2 / 4 = 0 % = 2 floor= 0.0 wrap = ( 0, 2)
out-lit: 1 / 4 = 0 % = 1 floor= 0.0 wrap = ( 0, 1)
out-lit: 0 / 4 = 0 % = 0 floor= 0.0 wrap = ( 0, 0)
out-lit: -1 / 4 = 0 % =-1 floor=-1.0 wrap = (-1, 3)
out-lit: -2 / 4 = 0 % =-2 floor=-1.0 wrap = (-1, 2)
out-lit: -3 / 4 = 0 % =-3 floor=-1.0 wrap = (-1, 1)
out-lit: -4 / 4 =-1 % = 0 floor=-1.0 wrap = (-1, 0)
out-lit: -5 / 4 =-1 % =-1 floor=-2.0 wrap = (-2, 3)
out-lit: -6 / 4 =-1 % =-2 floor=-2.0 wrap = (-2, 2)
out-lit: -7 / 4 =-1 % =-3 floor=-2.0 wrap = (-2, 1)
out-lit: -8 / 4 =-2 % = 0 floor=-2.0 wrap = (-2, 0)
out-lit: -9 / 4 =-2 % =-1 floor=-3.0 wrap = (-3, 3)
out-lit: -10 / 4 =-2 % =-2 floor=-3.0 wrap = (-3, 2)
out-lit: -11 / 4 =-2 % =-3 floor=-3.0 wrap = (-3, 1)
out-lit: -12 / 4 =-3 % = 0 floor=-3.0 wrap = (-3, 0)
out-lit: --------i--------12/-4
out-lit: 12 /-4 =-3 % = 0 floor=-3.0 wrap = (-3, 0)
out-lit: 11 /-4 =-2 % = 3 floor=-3.0 wrap = (-3,-1)
out-lit: 10 /-4 =-2 % = 2 floor=-3.0 wrap = (-3,-2)
out-lit: 9 /-4 =-2 % = 1 floor=-3.0 wrap = (-3,-3)
out-lit: 8 /-4 =-2 % = 0 floor=-2.0 wrap = (-2, 0)
out-lit: 7 /-4 =-1 % = 3 floor=-2.0 wrap = (-2,-1)
out-lit: 6 /-4 =-1 % = 2 floor=-2.0 wrap = (-2,-2)
out-lit: 5 /-4 =-1 % = 1 floor=-2.0 wrap = (-2,-3)
out-lit: 4 /-4 =-1 % = 0 floor=-1.0 wrap = (-1, 0)
out-lit: 3 /-4 = 0 % = 3 floor=-1.0 wrap = (-1,-1)
out-lit: 2 /-4 = 0 % = 2 floor=-1.0 wrap = (-1,-2)
out-lit: 1 /-4 = 0 % = 1 floor=-1.0 wrap = (-1,-3)
out-lit: 0 /-4 = 0 % = 0 floor=-0.0 wrap = ( 0, 0)
out-lit: -1 /-4 = 0 % =-1 floor= 0.0 wrap = ( 0,-1)
out-lit: -2 /-4 = 0 % =-2 floor= 0.0 wrap = ( 0,-2)
out-lit: -3 /-4 = 0 % =-3 floor= 0.0 wrap = ( 0,-3)
out-lit: -4 /-4 = 1 % = 0 floor= 1.0 wrap = ( 1, 0)
out-lit: -5 /-4 = 1 % =-1 floor= 1.0 wrap = ( 1,-1)
out-lit: -6 /-4 = 1 % =-2 floor= 1.0 wrap = ( 1,-2)
out-lit: -7 /-4 = 1 % =-3 floor= 1.0 wrap = ( 1,-3)
out-lit: -8 /-4 = 2 % = 0 floor= 2.0 wrap = ( 2, 0)
out-lit: -9 /-4 = 2 % =-1 floor= 2.0 wrap = ( 2,-1)
out-lit: -10 /-4 = 2 % =-2 floor= 2.0 wrap = ( 2,-2)
out-lit: -11 /-4 = 2 % =-3 floor= 2.0 wrap = ( 2,-3)
out-lit: -12 /-4 = 3 % = 0 floor= 3.0 wrap = ( 3, 0)
out-lit: --------l--------12/4
out-lit: 12 / 4 = 3 % = 0 floor= 3.0 wrap = ( 3, 0)
out-lit: 11 / 4 = 2 % = 3 floor= 2.0 wrap = ( 2, 3)
out-lit: 10 / 4 = 2 % = 2 floor= 2.0 wrap = ( 2, 2)
out-lit: 9 / 4 = 2 % = 1 floor= 2.0 wrap = ( 2, 1)
out-lit: 8 / 4 = 2 % = 0 floor= 2.0 wrap = ( 2, 0)
out-lit: 7 / 4 = 1 % = 3 floor= 1.0 wrap = ( 1, 3)
out-lit: 6 / 4 = 1 % = 2 floor= 1.0 wrap = ( 1, 2)
out-lit: 5 / 4 = 1 % = 1 floor= 1.0 wrap = ( 1, 1)
out-lit: 4 / 4 = 1 % = 0 floor= 1.0 wrap = ( 1, 0)
out-lit: 3 / 4 = 0 % = 3 floor= 0.0 wrap = ( 0, 3)
out-lit: 2 / 4 = 0 % = 2 floor= 0.0 wrap = ( 0, 2)
out-lit: 1 / 4 = 0 % = 1 floor= 0.0 wrap = ( 0, 1)
out-lit: 0 / 4 = 0 % = 0 floor= 0.0 wrap = ( 0, 0)
out-lit: -1 / 4 = 0 % =-1 floor=-1.0 wrap = (-1, 3)
out-lit: -2 / 4 = 0 % =-2 floor=-1.0 wrap = (-1, 2)
out-lit: -3 / 4 = 0 % =-3 floor=-1.0 wrap = (-1, 1)
out-lit: -4 / 4 =-1 % = 0 floor=-1.0 wrap = (-1, 0)
out-lit: -5 / 4 =-1 % =-1 floor=-2.0 wrap = (-2, 3)
out-lit: -6 / 4 =-1 % =-2 floor=-2.0 wrap = (-2, 2)
out-lit: -7 / 4 =-1 % =-3 floor=-2.0 wrap = (-2, 1)
out-lit: -8 / 4 =-2 % = 0 floor=-2.0 wrap = (-2, 0)
out-lit: -9 / 4 =-2 % =-1 floor=-3.0 wrap = (-3, 3)
out-lit: -10 / 4 =-2 % =-2 floor=-3.0 wrap = (-3, 2)
out-lit: -11 / 4 =-2 % =-3 floor=-3.0 wrap = (-3, 1)
out-lit: -12 / 4 =-3 % = 0 floor=-3.0 wrap = (-3, 0)
out-lit: --------l--------12/-4
out-lit: 12 /-4 =-3 % = 0 floor=-3.0 wrap = (-3, 0)
out-lit: 11 /-4 =-2 % = 3 floor=-3.0 wrap = (-3,-1)
out-lit: 10 /-4 =-2 % = 2 floor=-3.0 wrap = (-3,-2)
out-lit: 9 /-4 =-2 % = 1 floor=-3.0 wrap = (-3,-3)
out-lit: 8 /-4 =-2 % = 0 floor=-2.0 wrap = (-2, 0)
out-lit: 7 /-4 =-1 % = 3 floor=-2.0 wrap = (-2,-1)
out-lit: 6 /-4 =-1 % = 2 floor=-2.0 wrap = (-2,-2)
out-lit: 5 /-4 =-1 % = 1 floor=-2.0 wrap = (-2,-3)
out-lit: 4 /-4 =-1 % = 0 floor=-1.0 wrap = (-1, 0)
out-lit: 3 /-4 = 0 % = 3 floor=-1.0 wrap = (-1,-1)
out-lit: 2 /-4 = 0 % = 2 floor=-1.0 wrap = (-1,-2)
out-lit: 1 /-4 = 0 % = 1 floor=-1.0 wrap = (-1,-3)
out-lit: 0 /-4 = 0 % = 0 floor=-0.0 wrap = ( 0, 0)
out-lit: -1 /-4 = 0 % =-1 floor= 0.0 wrap = ( 0,-1)
out-lit: -2 /-4 = 0 % =-2 floor= 0.0 wrap = ( 0,-2)
out-lit: -3 /-4 = 0 % =-3 floor= 0.0 wrap = ( 0,-3)
out-lit: -4 /-4 = 1 % = 0 floor= 1.0 wrap = ( 1, 0)
out-lit: -5 /-4 = 1 % =-1 floor= 1.0 wrap = ( 1,-1)
out-lit: -6 /-4 = 1 % =-2 floor= 1.0 wrap = ( 1,-2)
out-lit: -7 /-4 = 1 % =-3 floor= 1.0 wrap = ( 1,-3)
out-lit: -8 /-4 = 2 % = 0 floor= 2.0 wrap = ( 2, 0)
out-lit: -9 /-4 = 2 % =-1 floor= 2.0 wrap = ( 2,-1)
out-lit: -10 /-4 = 2 % =-2 floor= 2.0 wrap = ( 2,-2)
out-lit: -11 /-4 = 2 % =-3 floor= 2.0 wrap = ( 2,-3)
out-lit: -12 /-4 = 3 % = 0 floor= 3.0 wrap = ( 3, 0)
return: 0
END
TEST "for-each operations" UtilForeach_test 10 <<END
out: ---:check_foreach_plain
out: :10:9:8:7:6:5:4:3:2:1
out: :10$
out: ---:check_foreach_plain
out: :10:9:8:7:6:5:4:3:2:1
out: :10$
out: ---:check_foreach_bind
out: :20:19:18:17:16:15:14:13:12:11
out: :20$
out: :20:18:16:14:12:10:8:6:4:2
out: :20$
out: ---:check_foreach_bind
out: :20:19:18:17:16:15:14:13:12:11
out: :20$
out: :20:18:16:14:12:10:8:6:4:2
out: :20$
out: ---:check_foreach_bind_const
out: :20:19:18:17:16:15:14:13:12:11
out: :20$
out: :20:18:16:14:12:10:8:6:4:2
out: :20$
out: :20:38:54:68:80:90:98:104:108:110
out: :130:148:164:178:190:200:208:214:218:220
out: :240
out: ---:check_foreach_memFun
out: :10:19:27:34:40:45:49:52:54:55
out: :10$
out: :10:19:27:34:40:45:49:52:54:55
out: :65:74:82:89:95:100:104:107:109:110
out: :120
out: sum=120
out: ---:check_foreach_memFun
out: :10:19:27:34:40:45:49:52:54:55
out: :10$
out: :10:19:27:34:40:45:49:52:54:55
out: :65:74:82:89:95:100:104:107:109:110
out: :120
out: sum=120
out: ---:check_foreach_lambda
out: ---:check_existence_quant
out: ---:assign_to_input
out: :20:19:18:17:16:15:14:13:12:11
out: :30:29:28:27:26:25:24:23:22:21
out: :40:39:38:37:36:35:34:33:32:31
out: :50:49:48:47:46:45:44:43:42:41
out: :60
out: :70
out: :80:59:58:57:56:55:54:53:52:51
out: :90:69:68:67:66:65:64:63:62:61
out: :100$
out: ---:assign_to_var
out: :90:149:207:264:320:375:429:482:534:585
out: :675:734:792:849:905:960:1014:1067:1119:1170
out: :1260:1319:1377:1434:1490:1545:1599:1652:1704:1755
out: sum=1755
out: :90:149:207:264:320:375:429:482:534:585
out: :675:734:792:849:905:960:1014:1067:1119:1170
out: :1260:1319:1377:1434:1490:1545:1599:1652:1704:1755
out: sum=1755
out: :90
out: :180
out: :270
out: sum=270
out: ---:assign_to_input
out: :20:19:18:17:16:15:14:13:12:11
out: :30:29:28:27:26:25:24:23:22:21
out: :40:39:38:37:36:35:34:33:32:31
out: :50:49:48:47:46:45:44:43:42:41
out: :60
out: :70
out: :80:59:58:57:56:55:54:53:52:51
out: :90:69:68:67:66:65:64:63:62:61
out: :100$
out: ---:assign_to_var
out: :90:149:207:264:320:375:429:482:534:585
out: :675:734:792:849:905:960:1014:1067:1119:1170
out: :1260:1319:1377:1434:1490:1545:1599:1652:1704:1755
out: sum=1755
out: :90:149:207:264:320:375:429:482:534:585
out: :675:734:792:849:905:960:1014:1067:1119:1170
out: :1260:1319:1377:1434:1490:1545:1599:1652:1704:1755
out: sum=1755
out: :90
out: :180
out: :270
out: sum=270
out: ---:wrapped_container_passing
out: :10:9:8:7:6:5:4:3:2:1
out: :-20:-21:-22:-23:-24:-25:-26:-27:-28:-29
out: ---:check_invoke_on_each
out: :0:1:2:3:4:5
out: :0$
out: :0:1$
out: :0:1:2:3:4:5
out: :0$
out: :0:1$
END
TEST "collection utils" UtilCollection_test <<END
return: 0
END
TEST "VectorTransfer_test" VectorTransfer_test <<END
return: 0
END
TEST "VisitingTool_test" VisitingTool_test <<END
out: === Babbler meets Boss and BigBoss ===
out: Hello Boss, nice to meet you...
out: Hello Big Boss, nice to meet you...
out: === Babbler meets HomoSapiens and Leader ===
out: Hello Boss, nice to meet you...
return: 0
END
TEST "VisitingToolExtended_test" VisitingToolExtended_test <<END
out: === Babbler meets Boss and BigBoss ===
out: Hello Boss, nice to meet you...
out: Hello Big Boss, nice to meet you...
out: === Babbler meets HomoSapiens and Leader ===
out: Hello Boss, nice to meet you...
out: === Blatherer meets Leader and Visionary masqueraded as Chief ===
out: we-do-everything-for-YOU!
out: Hello Mr.Future, nice to meet you...
out: === Babbler masqueraded as Tool meets Leader and Visionary masqueraded as HomoSapiens ===
out: Hello Boss, nice to meet you...
out: === Babbler masqueraded as Tool meets Leader and Visionary masqueraded as Leader ===
out: Hello Boss, nice to meet you...
return: 0
END