-
Notifications
You must be signed in to change notification settings - Fork 43
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
More convenient output of Relationship calculator. #475
Conversation
Assume user selected 2 persons: Person 1 Person 2 Now order of output is more natural: Person1 is somebody for PersonA, PersonA is somebody for personB, PersonB is somebody for Person2.
Difference in choice fields is due to old version used (2.22) for the 1st screenshot. |
I can't accept this PR any time soon, because there is a branch feature/compex-kinship, where I worked on the issue of strengthening the some kinships analysis. Improvements in this branch intersect with yours, the code will become completely incompatible for automatic merging. |
But it's a cool improvement idea. |
Also I have proposal of adding "Swap" button to that window to see backward route. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
👍
I shall look later |
Приведите здесь без PR ваш код для свопа. Я у себя протестировал - в дереве отношения выводятся корректно, в этом модуле - тоже. Есть подозрение, что нужно посмотреть на реализацию свопа. Если вы есть в телеграмме - можете выйти на меня через канал программы и скинуть код в личку напрямую. |
Для быстрого прототипа я сделал следующее в RelationshipCalculatorDlg:
И в RelationshipCalculatorDlgController:
На выбранном примере в своём дереве - всё работает корректно. |
А проблема не со свапом. Первая картинка, где правнуком назван, получена без его применения. |
Есть мой прадед, у него сестра, у неё есть муж. |
А в прежнем варианте тоже было неправильно? Или так стало после моих последних изменений? |
Есть предположение, в чем может быть дело. У меня набор правил для определения родственных связей не обратно совместим (не помню подходящий термин). Т.е. когда идет обход цепочки графа в одном направлении - нужные связи отрабатываются правильно, а в обратном направлении, срабатывает какое-то неправильное правило, вместо отсутствующего. |
Странно: нашел у себя в точности описанный паттерн, прогнал тест - в обоих направлениях всё определяется правильно. |
Комментирование правила под этим индексом помогает |
Я подумаю как улучшить отладку модуля. Первоочередные моменты: нужно сделать какой-либо вывод всей анализируемой цепочки узлов графа, и вывод последовательности входных и выходных типов отношений на каждой итерации. Вышеуказанная ошибка может происходить только из-за некачественного определения какой-то связи. Не обязательо это BrotherInLaw. |
Assume user selected 2 persons:
Person 1
Person 2
Now order of output is more natural:
Person1 is somebody for PersonA, PersonA is somebody for personB, PersonB is somebody for Person2.