2014-10-17 21:15:59 +02:00
|
|
|
TESTING "Metaprogramming facilities and techniques" ./test-suite --group=common
|
2014-10-17 20:02:25 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-03-31 17:12:45 +02:00
|
|
|
TEST "casting or converting access helper" AccessCasted_test <<END
|
|
|
|
|
out-lit: can_downcast<B,D> = 1
|
|
|
|
|
out-lit: can_downcast<B*,D*> = 1
|
|
|
|
|
out-lit: can_downcast<B&,D&> = 1
|
|
|
|
|
out-lit: can_downcast<B&,D*> = 0
|
|
|
|
|
out-lit: can_downcast<B*,D&> = 0
|
|
|
|
|
out-lit: can_downcast<B*&,D*&> = 1
|
|
|
|
|
out-lit: can_downcast<D*&,D*&> = 1
|
|
|
|
|
out-lit: can_downcast<D*,E*> = 1
|
|
|
|
|
out-lit: can_downcast<E*,F*> = 1
|
|
|
|
|
out-lit: has_RTTI<D*> = 0
|
|
|
|
|
out-lit: has_RTTI<E*> = 1
|
|
|
|
|
out-lit: has_RTTI<F*> = 1
|
|
|
|
|
out-lit: is_convertible<D,D&> = 0
|
|
|
|
|
out-lit: is_convertible<D&,D> = 1
|
|
|
|
|
out-lit: can_use_dynamic_downcast<D,D&> = 0
|
|
|
|
|
out-lit: can_use_conversion<D,D&> = 0
|
|
|
|
|
out-lit: can_use_dynamic_downcast<B*,D*> = 0
|
|
|
|
|
out-lit: can_use_conversion<D*,B*> = 1
|
|
|
|
|
out-lit: can_use_dynamic_downcast<D*&,D*&> = 0
|
|
|
|
|
out-lit: can_use_conversion<D*&,D*&> = 1
|
|
|
|
|
out-lit: can_use_conversion<D*,E*> = 0
|
|
|
|
|
out-lit: can_use_dynamic_downcast<D*&,E*> = 0
|
|
|
|
|
out-lit: can_use_conversion<E*,F*> = 0
|
|
|
|
|
out-lit: can_use_dynamic_downcast<E*,F*> = 1
|
|
|
|
|
out-lit: === standard case: References ===
|
|
|
|
|
out: Access\(D as D&\) .+D.. adr=╲\w{8} ↗«D»
|
|
|
|
|
out: Access\(D& as D&\) .+D.. adr=╲\w{8} ↗«D»
|
|
|
|
|
out-lit: === build a value object ===
|
|
|
|
|
out: Access.D as D. .+D.. adr=╲\w{8} ↗«D»
|
|
|
|
|
out: Access.D& as D. .+D.. adr=╲\w{8} ↗«D»
|
|
|
|
|
out: Access.D&& as D. .+D.. adr=╲\w{8} ↗«D»
|
|
|
|
|
out-lit: === take a pointer ===
|
|
|
|
|
out: Access.D as D\*. .+╲\w{8}
|
|
|
|
|
out: Access.D& as D\*. .+╲\w{8}
|
|
|
|
|
out-lit: === dereference a pointer ===
|
|
|
|
|
out: Access.D\* as D&. .+D.. adr=╲\w{8} ↗«D»
|
|
|
|
|
out: Access.D\* as D. .+D.. adr=╲\w{8} ↗«D»
|
|
|
|
|
out: Access.D\*&& as D. .+D.. adr=╲\w{8} ↗«D»
|
|
|
|
|
out-lit: === const correctness ===
|
|
|
|
|
out: Access.D as D const&. .+D.. adr=╲\w{8} ↗«D»
|
|
|
|
|
out: Access.D& as D const&. .+D.. adr=╲\w{8} ↗«D»
|
|
|
|
|
out: Access.D as const D. .+D.. adr=╲\w{8} ↗«D»
|
|
|
|
|
out: Access.D& as const D. .+D.. adr=╲\w{8} ↗«D»
|
|
|
|
|
out: Access.D as const D\*. .+╲\w{8}
|
|
|
|
|
out: Access.D& as const D\*. .+╲\w{8}
|
|
|
|
|
out: Access.D\* as D const&. .+D.. adr=╲\w{8} ↗«D»
|
|
|
|
|
out: Access.D\* as const D. .+D.. adr=╲\w{8} ↗«D»
|
|
|
|
|
out: Access.const D as D const&. .+D.. adr=╲\w{8} ↗«D»
|
|
|
|
|
out: Access.D const& as D const&. .+D.. adr=╲\w{8} ↗«D»
|
|
|
|
|
out: Access.const D as const D. .+D.. adr=╲\w{8} ↗«D»
|
|
|
|
|
out: Access.D const& as const D. .+D.. adr=╲\w{8} ↗«D»
|
|
|
|
|
out: Access.const D as const D\*..+╲\w{8}
|
|
|
|
|
out: Access.D const& as const D\*..+╲\w{8}
|
|
|
|
|
out: Access.const D\* as D const&..+D.. adr=╲\w{8} ↗«D»
|
|
|
|
|
out: Access.const D\* as const D. .+D.. adr=╲\w{8} ↗«D»
|
|
|
|
|
out: Access.D const& as D. .+D.. adr=╲\w{8} ↗«D»
|
|
|
|
|
out: Access.D const&& as D. .+D.. adr=╲\w{8} ↗«D»
|
|
|
|
|
out-lit: === work cases: actual conversions ===
|
|
|
|
|
out: Access.B& as B&. .+B.. adr=╲\w{8} ↗«B»
|
|
|
|
|
out: Access.D& as B&. .+B.. adr=╲\w{8} ↗«B»
|
|
|
|
|
out: Access.B\* as B\*. .+╲\w{8}
|
|
|
|
|
out: Access.D\* as B\*. .+╲\w{8}
|
|
|
|
|
out: Access.D& as B\*. .+╲\w{8}
|
|
|
|
|
out: Access.D\* as B&. .+B.. adr=╲\w{8} ↗«B»
|
|
|
|
|
out: Access.B\*& as B\*&. .+╲\w{8}
|
|
|
|
|
out: Access.D\*& as D\*&. .+╲\w{8}
|
|
|
|
|
out: Access.D& as const B\*. .+╲\w{8}
|
|
|
|
|
out: Access.D\* as B const&. .+B.. adr=╲\w{8} ↗«B»
|
|
|
|
|
out: Access.D const& as const B\*..+╲\w{8}
|
|
|
|
|
out: Access.const D\* as B const&..+B.. adr=╲\w{8} ↗«B»
|
|
|
|
|
out: Access.E\(F\)& as F&. .+F.. adr=╲\w{8} ↗«F»
|
|
|
|
|
out: Access.E\(F\)\* as F\*. .+╲\w{8}
|
|
|
|
|
out: Access.E\(F\)\* as F&. .+F.. adr=╲\w{8} ↗«F»
|
|
|
|
|
out: Access.E\(F\)& as F\*. .+╲\w{8}
|
|
|
|
|
out: Access.F\\* as X\*. .+╲\w{8}
|
|
|
|
|
out: Access.X\(F\)\* as X\*. .+╲\w{8}
|
|
|
|
|
out: Access.F\* as B&. .+B.. adr=╲\w{8} ↗«B»
|
|
|
|
|
out: Access.F\* as E&*. .+E.. adr=╲\w{8} ↗«F»
|
|
|
|
|
out-lit: Access(int as double) --->2
|
|
|
|
|
out-lit: Access(float as long) --->3
|
|
|
|
|
return: 0
|
|
|
|
|
END
|
|
|
|
|
|
|
|
|
|
|
2014-10-17 20:02:25 +02:00
|
|
|
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
|
|
|
|
|
|
|
|
|
|
|
2017-11-19 01:43:19 +01:00
|
|
|
TEST "Duck detect extension points" DuckDetectorExtension_test <<END
|
|
|
|
|
return: 0
|
|
|
|
|
END
|
|
|
|
|
|
|
|
|
|
|
2014-10-17 20:02:25 +02:00
|
|
|
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---
|
2016-01-20 01:25:40 +01:00
|
|
|
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)
|
2014-10-17 20:02:25 +02:00
|
|
|
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
|
|
|
|
|
|
|
|
|
|
|
2017-03-19 02:29:39 +01:00
|
|
|
TEST "function signature trait" FunctionSignature_test <<END
|
|
|
|
|
return: 0
|
|
|
|
|
END
|
|
|
|
|
|
|
|
|
|
|
2014-10-18 05:09:18 +02:00
|
|
|
TEST "metaprogramming helpers" MetaUtils_test <<END
|
2014-10-17 20:02:25 +02:00
|
|
|
return: 0
|
|
|
|
|
END
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
TEST "Lumiera Iterator Concept" IterAdapter_test 20 <<END
|
2016-02-04 22:01:48 +01:00
|
|
|
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
|
2016-01-28 22:30:24 +01:00
|
|
|
return: 0
|
2014-10-17 20:02:25 +02:00
|
|
|
END
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
TEST "Lumiera Iterator Adapter for STL" IterAdapterSTL_test <<END
|
2016-01-10 12:25:45 +01:00
|
|
|
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>
|
2014-10-17 20:02:25 +02:00
|
|
|
out: iter::eachKey::.::.::.::.::.::.::.::.::.::.
|
2016-01-10 12:25:45 +01:00
|
|
|
out: iter::eachVal::.+::.+::.+::.+::.+::.+::.+::.+::.+::.+
|
2014-10-17 20:02:25 +02:00
|
|
|
out: iter::eachDistinctKey::.::.::.::.::.::.::.::.::.::.
|
2016-01-10 12:25:45 +01:00
|
|
|
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>
|
2014-10-17 20:02:25 +02:00
|
|
|
out: iter::eachKey::.::.::.::.::.::.::.::.::.::.::.::.::.::.::.::.::.::.::.::.::.::.::.::.::.::.::.::.::.::.::.::.::.::.::.::.::.::.::.::.::.::.::.::.::.::.::.::.::.::.::.::.::.::.::.
|
2016-01-10 12:25:45 +01:00
|
|
|
out: iter::eachVal::.+::.+::.+::.+::.+::.+::.+::.+::.+::.+::.+::.+::.+::.+::.+::.+::.+::.+::.+::.+::.+::.+::.+::.+::.+::.+::.+::.+::.+::.+::.+::.+::.+::.+::.+::.+::.+::.+::.+::.+::.+::.+::.+::.+::.+::.+::.+::.+::.+::.+::.+::.+::.+::.+::.+
|
2014-10-17 20:02:25 +02:00
|
|
|
out: iter::eachDistinctKey::.::.::.::.::.::.::.::.::.::.
|
2016-01-10 12:25:45 +01:00
|
|
|
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
|
2016-01-28 22:30:24 +01:00
|
|
|
return: 0
|
2014-10-17 20:02:25 +02:00
|
|
|
END
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
TEST "Lumiera Iterator Tools" IterTools_test 20 <<END
|
2015-12-05 02:00:44 +01:00
|
|
|
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
|
2016-01-28 22:30:24 +01:00
|
|
|
return: 0
|
2014-10-17 20:02:25 +02:00
|
|
|
END
|
|
|
|
|
|
|
|
|
|
|
2015-12-06 02:28:47 +01:00
|
|
|
TEST "forward/backward iterator" IterCursor_test 20 <<END
|
|
|
|
|
return: 0
|
|
|
|
|
END
|
|
|
|
|
|
|
|
|
|
|
2014-10-17 20:02:25 +02:00
|
|
|
TEST "Iterable data source" IterSource_test 13 <<END
|
|
|
|
|
out: ::13::12::11::10::9::8::7::6::5::4::3::2::1
|
|
|
|
|
out: ::.............::............::...........::..........::.........::........::.......::......::.....::....::...::..::.$
|
2016-01-08 00:16:14 +01:00
|
|
|
out-lit: ::3s250ms::3s::2s750ms::2s500ms::2s250ms::2s::1s750ms::1s500ms::1s250ms::1s::750ms::500ms::250ms
|
2014-10-17 20:02:25 +02:00
|
|
|
out: (::X...........){13}$
|
2016-01-08 00:16:14 +01:00
|
|
|
out: (::.+s){13}$
|
2014-10-17 20:02:25 +02:00
|
|
|
out: (::X...........){13}$
|
2016-01-08 00:16:14 +01:00
|
|
|
out: (::.+s){13}$
|
2014-10-17 20:02:25 +02:00
|
|
|
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})+
|
2016-01-28 22:30:24 +01:00
|
|
|
return: 0
|
2014-10-17 20:02:25 +02:00
|
|
|
END
|
|
|
|
|
|
|
|
|
|
|
2023-06-22 20:23:55 +02:00
|
|
|
TEST "Iterator tree exploration" IterExplorer_test <<END
|
TreeExplorer: finished and unit test PASS
several extensions and convenience features are conceivable,
but I'll postpone all of them for later, when actual need arises
Note especially there is one recurring design challenge, when creating
such a demand-driven tree evaluation: more often than not it turns out
that "downstream" will need some information about the nested tree structure,
even while, on the surfice, it looks as if the evaluation could be working
completely "linearised". Often, such a need arises from diagnostic features,
and sometimes we want to invoke another API, which in turn could benefit
from knowing something about the original tree structure, even if just
abstracted.
I have no real solution for this problem, but implementing this pipeline builder
leads to a pragmatic workaround: since the iterator already exposes a expandChildren(),
it may as well expose a depth() call, even while keeping anything beyond that
opaque. This is not the clean solution you'd like, but it comes without any
overhead and does not really break the abstraction.
2017-12-17 03:02:00 +01:00
|
|
|
out-lit: 4-3-2-1
|
|
|
|
|
out: Search in random tree: toFind = .....
|
|
|
|
|
out: Protocol of the search: .+\-.+\-.+\-.+\-.+
|
2017-12-03 05:52:26 +01:00
|
|
|
return: 0
|
|
|
|
|
END
|
|
|
|
|
|
|
|
|
|
|
2014-10-17 20:02:25 +02:00
|
|
|
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
|
2016-01-28 22:30:24 +01:00
|
|
|
return: 0
|
2014-10-17 20:02:25 +02:00
|
|
|
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--
|
2016-01-10 12:25:45 +01:00
|
|
|
out: .+#1.+ Type: double VAL Address. 0x.+
|
2014-10-17 20:02:25 +02:00
|
|
|
out-lit: :.
|
|
|
|
|
out-lit: --reference--
|
2016-01-10 12:25:45 +01:00
|
|
|
out: .+#1.+ Type: double REF Address. 0x.+
|
2014-10-17 20:02:25 +02:00
|
|
|
out-lit: :.
|
|
|
|
|
out-lit: --move--
|
2016-01-10 12:25:45 +01:00
|
|
|
out: .+#1.+ Type: double MOV Address. 0x.+
|
2014-10-17 20:02:25 +02:00
|
|
|
out-lit: :.
|
|
|
|
|
out-lit: --two values--
|
2016-01-10 12:25:45 +01:00
|
|
|
out: .+#2.+ Type: char REF Address. 0x.+
|
|
|
|
|
out: .+#1.+ Type: long MOV Address. 0x.+
|
2014-10-17 20:02:25 +02:00
|
|
|
out-lit: :.
|
|
|
|
|
out-lit: --matched--
|
2016-01-10 12:25:45 +01:00
|
|
|
out: .+#3.+ Type: double REF Address. 0x.+
|
|
|
|
|
out: .+#2.+ Type: double REF Address. 0x.+
|
|
|
|
|
out: .+#1.+ Type: double MOV Address. 0x.+
|
2014-10-17 20:02:25 +02:00
|
|
|
out-lit: :.
|
|
|
|
|
out-lit: --baseclass--
|
2016-01-10 12:25:45 +01:00
|
|
|
out: .+#1.+ Type: Impl REF Address. 0x.+
|
2014-10-17 20:02:25 +02:00
|
|
|
out-lit: :.
|
2016-01-28 22:30:24 +01:00
|
|
|
return: 0
|
2014-10-17 20:02:25 +02:00
|
|
|
END
|
|
|
|
|
|
|
|
|
|
|
2016-01-09 04:05:14 +01:00
|
|
|
TEST "Helper to show demangled C++ names" TypeDemangling_test <<END
|
2016-01-10 12:25:45 +01:00
|
|
|
out: .+lib.meta.test.Space.+Outer.+Inner
|
|
|
|
|
out-lit: lib::meta::test::Space const* (*)(lib::meta::test::Outer<lib::meta::test::Space>::Inner const&&)
|
2016-01-28 22:30:24 +01:00
|
|
|
return: 0
|
2016-01-09 04:05:14 +01:00
|
|
|
END
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
TEST "Helper for human readable type display" TypeDisplay_test <<END
|
2016-01-28 22:30:24 +01:00
|
|
|
return: 0
|
2016-01-09 04:05:14 +01:00
|
|
|
END
|
|
|
|
|
|
|
|
|
|
|
2014-10-17 20:02:25 +02:00
|
|
|
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
|
|
|
|
|
|
|
|
|
|
|
2016-01-17 23:55:41 +01:00
|
|
|
TEST "tuple metaprogramming helpers" TupleHelper_test <<END
|
2014-10-17 20:02:25 +02:00
|
|
|
out-lit: L1 :-<1>-<3>-<5>-
|
|
|
|
|
out-lit: L2 :-<2>-<4>-
|
|
|
|
|
out-lit: L3 :-<7>-
|
2016-01-20 01:25:40 +01:00
|
|
|
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
|
2014-10-17 20:02:25 +02:00
|
|
|
return: 0
|
|
|
|
|
END
|
|
|
|
|
|
|
|
|
|
|
2016-01-28 22:39:38 +01:00
|
|
|
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)
|
2017-04-09 19:11:40 +02:00
|
|
|
out-lit: «tuple<idi::EntryID<long>, Symbol, int, long, double, Duration>»──(ID<long>-lal,lala,12,34,5.6,≺548s7ms≻)
|
2016-01-28 15:37:35 +01:00
|
|
|
return: 0
|
|
|
|
|
END
|
|
|
|
|
|
|
|
|
|
|
2017-09-29 03:21:47 +02:00
|
|
|
TEST "variadic argument manipulation" VariadicArgumentPicker_test <<END
|
|
|
|
|
out: 4╎N<1>──.─┼N<2>──.─┼N<3>──.─┼N<3>──.─┤
|
|
|
|
|
out: 4╎N<0>──.─┼N<1>──.─┼N<2>──.─┼N<3>──.─┤
|
|
|
|
|
out: 4╎N<3>──.─┼N<2>──.─┼N<1>──.─┼N<0>──.─┤
|
|
|
|
|
out: 2╎N<1>──.─┼N<0>──.─┤
|
|
|
|
|
out: 2╎N<2>──.─┼N<3>──.─┤
|
|
|
|
|
return: 0
|
|
|
|
|
END
|
|
|
|
|
|
|
|
|
|
|
2014-10-17 20:02:25 +02:00
|
|
|
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
|
|
|
|
|
|
|
|
|
|
|
2017-01-14 03:07:48 +01:00
|
|
|
TEST "Type-based family member IDs" TypedFamilyMemberID_test <<END
|
|
|
|
|
return: 0
|
|
|
|
|
END
|
|
|
|
|
|
|
|
|
|
|
2014-10-17 20:02:25 +02:00
|
|
|
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$
|
2016-01-28 22:30:24 +01:00
|
|
|
return: 0
|
2014-10-17 20:02:25 +02:00
|
|
|
END
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2015-04-20 03:41:28 +02:00
|
|
|
TEST "Virtual copying of opaque objects" VirtualCopySupport_test <<END
|
|
|
|
|
return: 0
|
|
|
|
|
END
|
|
|
|
|
|