anigmetov / hera

Other
4 stars 3 forks source link

Erroneous assertion? #14

Open gspr opened 3 hours ago

gspr commented 3 hours ago

This assertion seems like it can fail in a lot of normal (non-error) circumstances. Perhaps I'm reading the code wrong – and I apologize for the noise if so – but won't this strict inequality fail any time a persistence diagram contains only points satisfying the is_normal test in the loop above?

anigmetov commented 2 hours ago

It will only fail if the other diagram is empty: for every normal, i.e., off-diagonal, point I add a diagonal projection of this point to the other diagram. User input is not supposed to have those. I think I have some shortcut that checks for empty diagram case before I actually get to the auction (in that case everything is matched to the diagonal and the distance is (the root of) the sum of persistences of every point of the non-empty diagram raised to the appropriate power).

gspr commented 2 hours ago

It will only fail if the other diagram is empty: for every normal, i.e., off-diagonal, point I add a diagonal projection of this point to the other diagram. User input is not supposed to have those. I think I have some shortcut that checks for empty diagram case before I actually get to the auction (in that case everything is matched to the diagonal and the distance is (the root of) the sum of persistences of every point of the non-empty diagram raised to the appropriate power).

Thanks for the super quick reply! Maybe I'm confused, but this does seem to crop up in a test in GUDHI.

anigmetov commented 51 minutes ago

I looked at the failing tests; the problem was that I did not consider diagrams that only include points at infinity as empty. I modified the logic accordingly, so the execution now should not reach the assertion for diag9, diag10. Can you pull the latest commit and verify that your tests pass now?