TESTING "Metaprogramming facilities and techniques" ./test-suite --group=common TEST "implicit conversion to bool" BoolCheckable_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 "Duck typing support" DuckDetector_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 "functional closure" FunctionClosure_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: iter::eachDistinct out-lit: iter::eachDistinct::1 out-lit: iter::eachDistinct::1::2::3::1 out-lit: iter::eachDistinct::1::2::3::1 out-lit: -----iterateMapKeyVal---map out-lit: iter::eachKey::0::1::2::3::4::5::6::7::8::9 out-lit: iter::eachKey::0::1::2::3::4::5::6::7::8::9 out-lit: iter::eachVal::0::2::4::6::8::10::12::14::16::18 out-lit: iter::eachVal::0::2::4::6::8::10::12::14::16::18 out-lit: iter::eachDistinctKey::0::1::2::3::4::5::6::7::8::9 out-lit: -----iterateMapKeyVal---unordered_map out: iter::eachKey::.::.::.::.::.::.::.::.::.::. out: iter::eachVal::.+::.+::.+::.+::.+::.+::.+::.+::.+::.+ out: iter::eachDistinctKey::.::.::.::.::.::.::.::.::.::. out-lit: -----iterateMapKeyVal---multimap out-lit: 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-lit: 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-lit: 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-lit: 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-lit: iter::eachDistinctKey::0::1::2::3::4::5::6::7::8::9 out-lit: -----iterateMapKeyVal---unordered_multimap out: iter::eachKey::.::.::.::.::.::.::.::.::.::.::.::.::.::.::.::.::.::.::.::.::.::.::.::.::.::.::.::.::.::.::.::.::.::.::.::.::.::.::.::.::.::.::.::.::.::.::.::.::.::.::.::.::.::.::. out: iter::eachVal::.+::.+::.+::.+::.+::.+::.+::.+::.+::.+::.+::.+::.+::.+::.+::.+::.+::.+::.+::.+::.+::.+::.+::.+::.+::.+::.+::.+::.+::.+::.+::.+::.+::.+::.+::.+::.+::.+::.+::.+::.+::.+::.+::.+::.+::.+::.+::.+::.+::.+::.+::.+::.+::.+::.+ out: iter::eachDistinctKey::.::.::.::.::.::.::.::.::.::. out-lit: -----iterateValues4Key---multimap out-lit: iter::eachValForKey::10::9::8::7::6::5::4::3::2::1 out-lit: -----iterateValues4Key---unordered_multimap out: iter::eachValForKey::.+::.+::.+::.+::.+::.+::.+::.+::.+::.+ out-lit: snapshot-0-1-2-3-4-5-6-7-8-9 out-lit: snapshot-0-1-2-3-4-5-6-7-8-9 out-lit: snapshot-22-44 return: 0 END TEST "Lumiera Iterator Tools" IterTools_test 20 < : 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 return: 0 END TEST "Linked iterable elements" LinkedElements_test <::Inner const&&) return: 0 END TEST "Helper for human readable type display" TypeDisplay_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 "tuple metaprogramming helpers" TupleHelper_test <-<3>-<5>- out-lit: L2 :-<2>-<4>- out-lit: L3 :-<7>- out-lit: Tup1 :TUPLE-<1>-<3>-<5>- out-lit: Tup1() :«tuple, Num<3>, Num<5> >»──((1),(3),(5)) out-lit: tup1x :«tuple, Num<3>, Num<5> >»──({11},(3),{55}) out-lit: T_L1 :TUPLE-<1>-<3>-<5>- out-lit: Seq1 :-<1>-<3>-<5>- out-lit: tup1 :«tuple, Num<3>, Num<5> >»──((1),(3),(5)) out-lit: Prepend :TUPLE--<1>-<3>-<5>- out-lit: prep :«tuple, Num<3>, Num<5> >»──(22,{11},{33},(5)) out-lit: «tuple, Num<3>, Num<5> >»──((1),(3),(5)) out-lit: «tuple, Num<3>, Num<5> >»──(22,{11},{33},(5)) out-lit: «tuple<>»──() out: sizeof. tuple, Num<3>, Num<5> > . = 12 out: sizeof. tuple, Num<3>, Num<5> > . = 16 out-lit: sizeof( tuple<> ) = 1 out-lit: sizeof( tuple<> ) = 1 return: 0 END TEST "tuple initialisation from GenNode" TupleRecordInit_test <»──(lalü,42) out-lit: «tuple, string, int, long, double, Duration>»──(ID-lal,lala,12,34,5.6,≺548s7ms≻) 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 "Type-based contexts" TypedCounter_test <