系列相対世代番号を正規化するための関数

昨日の修正を一旦白紙に戻してバックアップから出直すことにする.TRIBEBOX::setPotentialが最初に掛かってくるのは,TribeRelocationのAFTERMARGSAMEGENEで実行されるCheckTribeVerticalPositionだ.グラフ検証系が作動しているときにはSAMEGENEMARRIAGEで重婚クラスタ図が生成され,絶対世代番号が確定している.それと同等のことをグラフ検証系なしでやるとすれば,各ノードが保持している相対世代番号Generationを正規化するということではないだろうか?

TRIBELIST::NormalizeRelativeGenerationという関数を作って,TribeRelocationの冒頭で実行するようにした.この関数では「優先仮ノードの世代番号をゼロになるように系列内世代番号をシフト」して,「系列世代枠リストの最小/最大世代番号を更新」する.これで,「ZTシステム構成図7.1.ZELの全体図を#33 baselist 基本世代枠でソートして,TRIBEBOX::SetPotentialで停止」という問題は解決した.

ZTシステム構成図7.1.ZELの全体図を#24 UNDOCHAINでソートして,TRIBEBOX::InsertRingで停止した.世代枠不在が起きている.NormalizeRelativeGeneration実行後,StackTribeGeneを実施しているループの中で起きている.NormalizeRelativeGenerationの中で何らかの手当てをする必要がある.#57 BASETABLE,#58 ARRAY,#82 SIMPLEGRAPHなどでも発生する.

障害ノードはMARGBOX #690:#795 longtable(0)+#755 RecordList(0)→で,世代番号は[1].所属系列はTRIBEBOX #913 先祖=#795 longtable(0)だ.系列世代枠リストのMinGeneration=-1, MaxGeneration=0で要素数は2.この関数はStackTribeGeneの冒頭MakeGringから呼び出されているが,その直後に実行されるGenerationBoundaryの中でsetPotentialを実行しているので,呼び出しが早過ぎる.また,GenerationBoundaryの中でもMakeGringを実行しているので,ここで実行する必要はないと考えられる.⇒対処した.

同上サンプルの直系血族図を#15 selectedcardでソートして,GENELIST::GetGeneBoxで停止した.引数の物理世代番号が負になっている.AFTERMARGSAMEGENEフェーズのTribeGhostNameで起きている.NAMEBOX::getPairlistは引数のindex=0で呼び出されているが,対象人名枠のNAMEBOX #719 treeview(0)の物理世代番号が-1になっている.所属は始系列のTRIBEBOX #905 先祖=#716 coupling(0)[1] 優先=#730 selectedcard(0).

最古世代先祖ノードはNAMEBOX #716 coupling(0)で物理世代番号は-3になっている.最古世代先祖は始系列に属している.この関数が呼び出されるまで,一度もTRIBEBOX::setPotentialが呼び出されていない.⇒NormalizeRelativeGenerationの中ですべての系列の系統ポテンシャルを設定するようにした.

image

同上サンプルの直系親族図を#2 kakeizuでソートしてGenerationBoundaryで停止した.#202 NODULEでも起きる.また,Z木家系図 基準ノード=#2 kakeizu,.#202 NODULEでも起きている.障害ノードはTRIBEBOX #907 先祖=#771 COUPLING(0)で,(!getGeneBox(minGeneration) || !getGeneBox(maxGeneration))という理由で停止している.minGeneration=-1, maxGeneration=0.

この2つの値はTRIBEBOXのプロパティで系列世代枠リストのMinGenerationとMaxGenerationに相当するものと思われるが,NormalizeRelativeGenerationの中では設定されていない.これらは,TRIBEBOX::setMinGene,setMaxGeneで設定されている.⇒NormalizeRelativeGenerationの中で更新するようにした.

ZTシステム構成図7.1.ZELの完全木テストが完了した.

image

悪くない数字だ.最近の修正をフックスしておこう.

  1. MoveLowerMargTreeではTYW枠は移動しない@20210215 1箇所
  2. PAIRBOX:setSectionを廃止する@20210218 7箇所
  3. NAMEBOX:shiftedonceを廃止する@20210218 5箇所
  4. TRIBEBOX:brokenを廃止する@20210218 11箇所
  5. Boject:nobori,kudari,unequalを廃止@20210218 8箇所
  6. checkBrotherOrderで微細な移動を実行する@20210219→ 廃止
  7. KeitoMin,KeitoMaxを廃止する@20210220 11箇所
  8. 仮修正 6箇所,OBSOLETE 2箇所

この後のテストはVAIO2で行うことにする.ここで標準版をビルドして別アプリ用にリリースしておこう.

▲標準版:ZTシステム構成図7.1.ZELの全体図を#24 UNDOCHAINでソートしてTRIBEBOX::adjustGenerationRangeで停止.(tribelist->ZentaiMin != baselist->MinGeneration)が起きている.

▲標準版:TRIBEBOX::SetPotentialで(primary->getFloor() != start->getPotential()) が発生する.

▲BASIC版:源氏6.1.zelの全体図を#9 冷泉院でソートして,TRIBEBOX::SetPotentialで停止.(primary->getFloor() != pot)が起きている.

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA