Coding 2024-07-22

By Max Woerner Chase

The revelation that fixed my mutation testing: "Oh yeah, if a bunch of things are touching the same cache file at the same time, they usually assume that's not what they're doing. And a crash gets treated like a test failure."

So now my mutation testing is slower (~7 mutants per second) but it's more reliable.

I've also implemented a bit more functionality, which helped to write tests that caught a few more mutants.

Rather than trying to grind out the final remaining mutant, I think for now I should try to write subtler tests that catch cases that I've been glossing over in the name of getting stuff implemented. Stuff like "some pattern names should be rejected" and "some additional binding names should be rejected" and "there's all sorts of extra functionality that's currently not implemented because I just haven't written tests for it yet" and "it should be an error if the same name gets bound twice during a match".

That's a bunch of stuff to handle, but for now, I'm going to be happy I made progress, and get to bed.

Good night.