It seems more adequate to push the somewhat intricate mechanics for the "fall back" onto generic commands down into the implementation level of CommandInstanceManager. The point is, we know the standard usage situation is to rely on the instance manager, and thus we want to avoid redundant table lookups, only to support the rare case of fallback to global commands. The latter is currently used only from unit-tests, but might in future also be used by scripts. Due to thread safety considerations, I have refrained from handing out a direct reference to the command token sitting in the registry, even while not doing so incurs a small runtime penalty (accessing the shared ref-count for creating a copy of the smart-handle). This is the typical situation where you'd be tempted to sacrifice sanity for the sake of an imaginary performance benefit, which in fact is dwarfed by all the machinery of UI-Bus and argument passing via GenNode.
699 lines
21 KiB
Text
699 lines
21 KiB
Text
TESTING "Metaprogramming facilities and techniques" ./test-suite --group=common
|
|
|
|
|
|
|
|
TEST "ConfigFlags_test" ConfigFlags_test <<END
|
|
out-lit: Conf0 :-
|
|
out-lit: Conf1 :-<1>-
|
|
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 <<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 "functional closure" FunctionClosure_test <<END
|
|
out-lit: List1 :-<1>-<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<int>»──(11)
|
|
out-lit: tup2 :«tuple<int, int>»──(11,12)
|
|
out-lit: tup3 :«tuple<int, int, int>»──(11,12,13)
|
|
out-lit: :
|
|
out-lit: : ---Bind----
|
|
return: 0
|
|
END
|
|
|
|
|
|
TEST "functional composition" FunctionComposition_test <<END
|
|
return: 0
|
|
END
|
|
|
|
|
|
TEST "function type erasure" FunctionErasure_test <<END
|
|
return: 0
|
|
END
|
|
|
|
|
|
TEST "function signature trait" FunctionSignature_test <<END
|
|
return: 0
|
|
END
|
|
|
|
|
|
TEST "metaprogramming helpers" MetaUtils_test <<END
|
|
return: 0
|
|
END
|
|
|
|
|
|
TEST "Lumiera Iterator Concept" IterAdapter_test 20 <<END
|
|
out-lit: ::20::19::18::17::16::15::14::13::12::11::10::9::8::7::6::5::4::3::2::1
|
|
out-lit: ::20::19::18::17::16::15::14::13::12::11::10::9::8::7::6::5::4::3::2::1
|
|
out-lit: ++21++22++23++24++25++26++27++28++29++30++31++32++33++34++35++36++37++38++39
|
|
out-lit: ::0::1::2::3::4::5::6::7::8::9::10::11::12::13::14::15::16::17::18::19
|
|
out-lit: ::0::1::2::3::4::5::6::7::8::9::10::11::12::13::14::15::16::17::18::19
|
|
return: 0
|
|
END
|
|
|
|
|
|
TEST "Lumiera Iterator Adapter for STL" IterAdapterSTL_test <<END
|
|
out-lit: -----filter-distinct-values---vector<int>
|
|
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<int, int>
|
|
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<int, int>
|
|
out: iter::eachKey::.::.::.::.::.::.::.::.::.::.
|
|
out: iter::eachVal::.+::.+::.+::.+::.+::.+::.+::.+::.+::.+
|
|
out: iter::eachDistinctKey::.::.::.::.::.::.::.::.::.::.
|
|
out-lit: -----iterateMapKeyVal---multimap<int, int>
|
|
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<int, int>
|
|
out: iter::eachKey::.::.::.::.::.::.::.::.::.::.::.::.::.::.::.::.::.::.::.::.::.::.::.::.::.::.::.::.::.::.::.::.::.::.::.::.::.::.::.::.::.::.::.::.::.::.::.::.::.::.::.::.::.::.::.
|
|
out: iter::eachVal::.+::.+::.+::.+::.+::.+::.+::.+::.+::.+::.+::.+::.+::.+::.+::.+::.+::.+::.+::.+::.+::.+::.+::.+::.+::.+::.+::.+::.+::.+::.+::.+::.+::.+::.+::.+::.+::.+::.+::.+::.+::.+::.+::.+::.+::.+::.+::.+::.+::.+::.+::.+::.+::.+::.+
|
|
out: iter::eachDistinctKey::.::.::.::.::.::.::.::.::.::.
|
|
out-lit: -----iterateValues4Key---multimap<int, int>
|
|
out-lit: iter::eachValForKey::10::9::8::7::6::5::4::3::2::1
|
|
out-lit: -----iterateValues4Key---unordered_multimap<int, int>
|
|
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 <<END
|
|
out-lit: ::20::19::18::17::16::15::14::13::12::11::10::9::8::7::6::5::4::3::2::1
|
|
out-lit: ::20::19::18::17::16::15::14::13::12::11::10::9::8::7::6::5::4::3::2::1
|
|
out-lit: ::20::18::16::14::12::10::8::6::4::2
|
|
out-lit: ::19::17::15::13::11::9::7::5::3::1
|
|
out-lit: ::17::16::15::14::13::12::11::10::9::8::7::6::5::4::3::2::1
|
|
out-lit: ::16::14::12::10::8::6::4::2
|
|
out-lit: ::17::15::13::11::9::7::5::3::1
|
|
out-lit: ::12::18::24::30::36::42::48::54
|
|
out-lit: ::13::17::19::23::25::29::31::35::37::41::43::47::49::53::55::59
|
|
out-lit: ::20::19::18::17::16::15::14::13::12::11::10::9::8::7::6::5::4::3::2::1
|
|
out-lit: ::-20::-19::-18::-17::-16::-15::-14::-13::-12::-11::-10::-9::-8::-7::-6::-5::-4::-3::-2::-1
|
|
out-lit: ::22::21::20::19::18::17::16::15::14::13::12::11::10::9::8::7::6::5::4::3
|
|
return: 0
|
|
END
|
|
|
|
|
|
TEST "forward/backward iterator" IterCursor_test 20 <<END
|
|
return: 0
|
|
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: ::3s250ms::3s::2s750ms::2s500ms::2s250ms::2s::1s750ms::1s500ms::1s250ms::1s::750ms::500ms::250ms
|
|
out: (::X...........){13}$
|
|
out: (::.+s){13}$
|
|
out: (::X...........){13}$
|
|
out: (::.+s){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})+
|
|
return: 0
|
|
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
|
|
return: 0
|
|
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
|
|
return: 0
|
|
END
|
|
|
|
|
|
TEST "Linked iterable elements" LinkedElements_test <<END
|
|
return: 0
|
|
END
|
|
|
|
|
|
TEST "Polymorphic value objects" PolymorphicValue_test <<END
|
|
return: 0
|
|
END
|
|
|
|
|
|
TEST "Variadic template diagnostics" TestHelperVariadic_test <<END
|
|
out-lit: --no-arg--
|
|
out-lit: :.
|
|
out-lit: --value--
|
|
out: .+#1.+ Type: double VAL Address. 0x.+
|
|
out-lit: :.
|
|
out-lit: --reference--
|
|
out: .+#1.+ Type: double REF Address. 0x.+
|
|
out-lit: :.
|
|
out-lit: --move--
|
|
out: .+#1.+ Type: double MOV Address. 0x.+
|
|
out-lit: :.
|
|
out-lit: --two values--
|
|
out: .+#2.+ Type: char REF Address. 0x.+
|
|
out: .+#1.+ Type: long MOV Address. 0x.+
|
|
out-lit: :.
|
|
out-lit: --matched--
|
|
out: .+#3.+ Type: double REF Address. 0x.+
|
|
out: .+#2.+ Type: double REF Address. 0x.+
|
|
out: .+#1.+ Type: double MOV Address. 0x.+
|
|
out-lit: :.
|
|
out-lit: --baseclass--
|
|
out: .+#1.+ Type: Impl REF Address. 0x.+
|
|
out-lit: :.
|
|
return: 0
|
|
END
|
|
|
|
|
|
TEST "Helper to show demangled C++ names" TypeDemangling_test <<END
|
|
out: .+lib.meta.test.Space.+Outer.+Inner
|
|
out-lit: lib::meta::test::Space const* (*)(lib::meta::test::Outer<lib::meta::test::Space>::Inner const&&)
|
|
return: 0
|
|
END
|
|
|
|
|
|
TEST "Helper for human readable type display" TypeDisplay_test <<END
|
|
return: 0
|
|
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 "tuple metaprogramming helpers" TupleHelper_test <<END
|
|
out-lit: L1 :-<1>-<3>-<5>-
|
|
out-lit: L2 :-<2>-<4>-
|
|
out-lit: L3 :-<7>-
|
|
out-lit: Tup1 :TUPLE-<1>-<3>-<5>-
|
|
out-lit: Tup1() :«tuple<Num<1>, Num<3>, Num<5> >»──((1),(3),(5))
|
|
out-lit: tup1x :«tuple<Num<1>, 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<1>, Num<3>, Num<5> >»──((1),(3),(5))
|
|
out-lit: Prepend :TUPLE-<i>-<1>-<3>-<5>-
|
|
out-lit: prep :«tuple<int, Num<1>, Num<3>, Num<5> >»──(22,{11},{33},(5))
|
|
out-lit: «tuple<Num<1>, Num<3>, Num<5> >»──((1),(3),(5))
|
|
out-lit: «tuple<int, Num<1>, Num<3>, Num<5> >»──(22,{11},{33},(5))
|
|
out-lit: «tuple<>»──()
|
|
out: sizeof. tuple<Num<1>, Num<3>, Num<5> > . = 12
|
|
out: sizeof. tuple<int, Num<1>, 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 <<END
|
|
out: Rec...GenNode.+DataCap.«string».lalü, GenNode.+DataCap.«int».42
|
|
out: Rec...GenNode.+DataCap.«string».lalü, GenNode.+DataCap.«string».lala, GenNode.+DataCap.«int».12, GenNode.+DataCap.«int».34, GenNode.+DataCap.«double».5.6, GenNode.+DataCap.«Time».0:09:08.007
|
|
out-lit: «tuple<string, int>»──(lalü,42)
|
|
out-lit: «tuple<idi::EntryID<long>, Symbol, int, long, double, Duration>»──(ID<long>-lal,lala,12,34,5.6,≺548s7ms≻)
|
|
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 "Type-based contexts" TypedCounter_test <<END
|
|
return: 0
|
|
END
|
|
|
|
|
|
TEST "Type-based family member IDs" TypedFamilyMemberID_test <<END
|
|
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$
|
|
return: 0
|
|
END
|
|
|
|
|
|
|
|
TEST "Virtual copying of opaque objects" VirtualCopySupport_test <<END
|
|
return: 0
|
|
END
|
|
|