Today felt kind of iffy, but I got some stuff done. I made a few of the Structured Data tests stricter, which caught some more mutants. One persistent annoyance I've been hitting is that running the mutation tests seems to leave particular pyc files in a bad state, which implies to me that I've somehow managed to get a hash collision or something (my money's on "or something"), and some mutants may be incorrectly showing up as killed, when actually it's that a different mutant didn't get properly uncached.
This kind of gets to one of the persistent stumbling blocks I've had with mutation testing: it kind of requires that your tests fail for the right reasons, and not any of:
- Dependencies not installed in the test environment
- Caught mutations persisting in source
- Caught mutations persisting in binaries
- Including too many tests, including ones that detect the backup files
- I forgot to turn off folder syncing and the repo got filled with gibberish because the mutation testing was moving files around too quickly.
Anyway, that's kind of mostly frustrating, so for the moment, I'm messing around with gtp2 and pushing it to its limits. No, really. I gave it an input text that tokenized into just slightly too many tokens, and the implementation I'm using will tell you "That's not going to work" but it doesn't suggest any means of remediation. I came up with something on my own that might work, but it does still throw up the same warning. It produces results of some kind, but because of how I coded the wrapper, I won't see them until it's all the way done, which is going to take, like, over an hour.
My laptop is not intrinsically a good source of fake news, is how this is looking.
Anyway, I'd like to make some progress on the writing. My plan is to just set a goal of setting up the bookkeeping for the first combat encounter. Actually running the combat is going to involve learning a lot of things all at once, so I need to have more than a few hours late at night to get through it.
I'm going to wrap up this entry and then do that, because that's just going to be taking a bunch of notes, and I want to get this post over with.