Hi Ben. I published an article about this problem this week (and did a talk at Rust Sydney).
What you need is differential, property testing. I’m sure it would work for you (you can skip the first half as you already have the source):
https://reorchestrate.com/posts/bringing-a-warhammer-to-a-kn...