ChainSearch: resolve the problems and get basic functionality to work

with the augmented TreeExplorer, we're now able to get rid of the
spurious base layer, and we're able to discard the filter and
continue with the unfiltered sequence starting from current position.
This commit is contained in:
Fischlurch 2018-09-12 04:17:49 +02:00
parent df7a9492b7
commit 10f21f77f8
3 changed files with 37 additions and 23 deletions

View file

@ -213,14 +213,14 @@ namespace iter {
/** drop all search condition frames.
* @remark the filter chain becomes empty,
* passing through the unaltered
* source sequence
* passing through the reset of the
* source sequence unaltered
*/
IterChainSearch&&
clearFilter()
{
//////////////////////////////////////////////////////TODO logically broken. We need also to get rid of the current expansions, while retaining the current position
stepChain_.clear();
_Base::rootCurrent();
_Base::disableFilter();
return move(*this);
}

View file

@ -132,7 +132,12 @@ namespace test{
/** @test verify the
/** @test verify consecutive application of several functors on the underlying filter.
* In the general case, each step in the chain is a function working on a copy of the
* current filter state. Since each such step configures its own copy of the complete
* pipeline, it may reconfigure this filter pipeline in arbitrary ways. After exhausting
* the last layer, the evaluation returns to the previous layer, but immediately re-applies
* the configuration step on the then next element.
*/
void
chainedIteration ()
@ -141,7 +146,13 @@ namespace test{
/** @test verify the
/** @test verify a complex search with backtracking.
* This becomes relevant when a given search condition can be "too greedy" for the
* complete chain to succeed. Most notably this is the case when the search is fundamentally
* reconfigured in some steps, e.g. by switching the search orientation. To demonstrate this,
* we use a "gear switching" iterator, which allows us to reverse the direction and to search
* backwards from the current position. We configure the second condition in the chain such
* that it can not succeed when starting from the first match on the first condition
*/
void
backtracking ()

View file

@ -31132,7 +31132,7 @@
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1536713790340" ID="ID_1436344296" MODIFIED="1536716851593" TEXT="Explorer: rootCurrent()">
<node COLOR="#338800" CREATED="1536713790340" FOLDED="true" ID="ID_1436344296" MODIFIED="1536717497148" TEXT="Explorer: rootCurrent()">
<icon BUILTIN="button_ok"/>
<node CREATED="1536713813792" ID="ID_255912594" MODIFIED="1536713903337" TEXT="Hilfsmittel f&#xfc;r den IterChainSearch">
<linktarget COLOR="#5c8eb4" DESTINATION="ID_255912594" ENDARROW="Default" ENDINCLINATION="1465;0;" ID="Arrow_ID_1700114612" SOURCE="ID_1097583555" STARTARROW="None" STARTINCLINATION="798;71;"/>
@ -31686,8 +31686,8 @@
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1536018364845" ID="ID_1351452920" MODIFIED="1536329770737" TEXT="Implementierung">
<icon BUILTIN="pencil"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1536018375244" ID="ID_1906913554" MODIFIED="1536329750864" TEXT="Kern: Explore-Mechanismus">
<icon BUILTIN="pencil"/>
<node COLOR="#338800" CREATED="1536018375244" ID="ID_1906913554" MODIFIED="1536717634181" TEXT="Kern: Explore-Mechanismus">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1536018644456" ID="ID_477475522" MODIFIED="1536329729458" TEXT="Signatur der Explore-Funktion festlegen">
<icon BUILTIN="button_ok"/>
</node>
@ -32001,12 +32001,12 @@
<icon BUILTIN="button_ok"/>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1536018923378" ID="ID_1163666446" MODIFIED="1536018929138" TEXT="Pipeline konstruieren">
<icon BUILTIN="flag-yellow"/>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1536018931433" ID="ID_1532889609" MODIFIED="1536326576841" TEXT="treeExplorer-Konfiguration">
<node COLOR="#338800" CREATED="1536018923378" ID="ID_1163666446" MODIFIED="1536717626552" TEXT="Pipeline konstruieren">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1536018931433" ID="ID_1532889609" MODIFIED="1536717484882" TEXT="treeExplorer-Konfiguration">
<arrowlink COLOR="#65a7b1" DESTINATION="ID_1044555993" ENDARROW="Default" ENDINCLINATION="70;92;" ID="Arrow_ID_575633930" STARTARROW="None" STARTINCLINATION="149;-3;"/>
<icon BUILTIN="pencil"/>
<node COLOR="#338800" CREATED="1536353107155" HGAP="33" ID="ID_1163131751" MODIFIED="1536632469176" TEXT="Problem: Basis-Layer" VSHIFT="37">
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1536353107155" FOLDED="true" HGAP="33" ID="ID_1163131751" MODIFIED="1536717615755" TEXT="Problem: Basis-Layer" VSHIFT="37">
<arrowlink COLOR="#4471b4" DESTINATION="ID_942897075" ENDARROW="Default" ENDINCLINATION="37;-79;" ID="Arrow_ID_537236489" STARTARROW="None" STARTINCLINATION="30;44;"/>
<icon BUILTIN="button_ok"/>
<node CREATED="1536353117930" ID="ID_625995057" MODIFIED="1536353132265" TEXT="hinzugef&#xfc;gt f&#xfc;r &quot;leeren&quot; Zustand">
@ -32019,8 +32019,8 @@
<icon BUILTIN="messagebox_warning"/>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1536353280436" ID="ID_967254721" MODIFIED="1536353333302" TEXT="Problem: clearFilter()">
<icon BUILTIN="flag-yellow"/>
<node COLOR="#338800" CREATED="1536353280436" FOLDED="true" ID="ID_967254721" MODIFIED="1536717612628" TEXT="Problem: clearFilter()">
<icon BUILTIN="button_ok"/>
<node CREATED="1536353286739" ID="ID_1451254899" MODIFIED="1536353295077" TEXT="bauchen wir das &#xfc;berhaupt">
<icon BUILTIN="help"/>
<node CREATED="1536353310976" ID="ID_809196267" MODIFIED="1536353322688" TEXT="&quot;Filter komplett abschalten&quot;">
@ -32030,7 +32030,7 @@
<icon BUILTIN="idea"/>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1536353335500" ID="ID_698525366" MODIFIED="1536358327376" TEXT="mu&#xdf; Stack der partiellen Auswertungen verwerfen">
<node COLOR="#338800" CREATED="1536353335500" ID="ID_698525366" MODIFIED="1536717475219" TEXT="mu&#xdf; Stack der partiellen Auswertungen verwerfen">
<richcontent TYPE="NOTE"><html>
<head>
@ -32045,7 +32045,10 @@
</body>
</html></richcontent>
<arrowlink COLOR="#60a2d5" DESTINATION="ID_33678789" ENDARROW="Default" ENDINCLINATION="315;0;" ID="Arrow_ID_1930258825" STARTARROW="None" STARTINCLINATION="106;0;"/>
<icon BUILTIN="flag-yellow"/>
<icon BUILTIN="button_ok"/>
</node>
<node CREATED="1536717586774" ID="ID_47823025" MODIFIED="1536717611106" TEXT="mit HIlfsfunktion im TreeExplorer / Expander einfach zu implementieren">
<icon BUILTIN="idea"/>
</node>
</node>
</node>
@ -32105,7 +32108,7 @@
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1536357878006" ID="ID_1225195123" MODIFIED="1536358257081" TEXT="Aufr&#xe4;umen und nachr&#xfc;sten">
<icon BUILTIN="pencil"/>
<node COLOR="#338800" CREATED="1536357891412" ID="ID_942897075" MODIFIED="1536632466623" TEXT="den Basis-Layer eliminieren">
<node COLOR="#338800" CREATED="1536357891412" FOLDED="true" ID="ID_942897075" MODIFIED="1536717539462" TEXT="den Basis-Layer eliminieren">
<linktarget COLOR="#4471b4" DESTINATION="ID_942897075" ENDARROW="Default" ENDINCLINATION="37;-79;" ID="Arrow_ID_537236489" SOURCE="ID_1163131751" STARTARROW="None" STARTINCLINATION="30;44;"/>
<icon BUILTIN="button_ok"/>
<node COLOR="#338800" CREATED="1536357900635" ID="ID_646733499" MODIFIED="1536533192790" TEXT="brauche einen &quot;leer&quot;-Status im Filter">
@ -32140,15 +32143,15 @@
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1536539286897" ID="ID_1288939799" MODIFIED="1536631289616" TEXT="overconstrained triggert Assertion">
<node COLOR="#338800" CREATED="1536539286897" FOLDED="true" ID="ID_1288939799" MODIFIED="1536717548060" TEXT="overconstrained triggert Assertion">
<linktarget COLOR="#c5789c" DESTINATION="ID_1288939799" ENDARROW="Default" ENDINCLINATION="99;3;" ID="Arrow_ID_1528021143" SOURCE="ID_487266350" STARTARROW="None" STARTINCLINATION="-35;27;"/>
<icon BUILTIN="button_ok"/>
<node CREATED="1536631251921" HGAP="51" ID="ID_588077559" MODIFIED="1536631280009" TEXT="sollte stattdessen leer werden" VSHIFT="23">
<icon BUILTIN="yes"/>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1536357967826" ID="ID_634133289" MODIFIED="1536358245365" TEXT="clearFilter()">
<icon BUILTIN="flag-yellow"/>
<node COLOR="#338800" CREATED="1536357967826" FOLDED="true" ID="ID_634133289" MODIFIED="1536717583623" TEXT="clearFilter()">
<icon BUILTIN="button_ok"/>
<node CREATED="1536357973769" ID="ID_33678789" MODIFIED="1536358316984" TEXT="brauche Unterst&#xfc;tzung vom Expander">
<linktarget COLOR="#60a2d5" DESTINATION="ID_33678789" ENDARROW="Default" ENDINCLINATION="315;0;" ID="Arrow_ID_1930258825" SOURCE="ID_698525366" STARTARROW="None" STARTINCLINATION="106;0;"/>
<icon BUILTIN="messagebox_warning"/>
@ -32200,8 +32203,8 @@
<icon BUILTIN="idea"/>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1536018539621" ID="ID_1857591081" MODIFIED="1536329779734" TEXT="simpleSearch()">
<icon BUILTIN="pencil"/>
<node COLOR="#338800" CREATED="1536018539621" ID="ID_1857591081" MODIFIED="1536717648741" TEXT="simpleSearch()">
<icon BUILTIN="button_ok"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1536018544936" ID="ID_1750921303" MODIFIED="1536018557580" TEXT="chainedIteration()">
<icon BUILTIN="flag-yellow"/>