Thoughts on the development process
I have a few suggestions on how to organize development here:
Test driven: If there's an edge case that is not covered by an existing implementation, let's write test first, that fails until the edge case is handled. Then proceed to the actual implementation.
Four eyes: In bigger projects, it's often mandatory that the same person never opens and merges a merge request. This enhances awareness of the current state of a project and of the current challenges it is facing. Should we do this here as well? (Might feel artificial and could slow down process, though.)
Bundle tests: It's not necessary to have one test function per file. I'd, e.g., bundle all tests for the segmenting into one file.