I'm not afraid to admit when I make mistakes. One of them was passing 100 explicit examples of keys to my challenge 12 test. I brushed my teeth after it hit that test, and it's still going as I write this. I'll keep you posted. I'll have to crank down the number of examples used in a normal test run, because this is, um, silly.
Now, some of this could be down to language runtime slowness, or inefficiency in my underlying code, but I think the two things I should really be looking into, in reverse order of importance, are:
- Investigating the algorithmic complexity of my attacker function.
- Not running the code a hundred dang times, sheesh.
Anyway, while the code (hopefully) came over relatively fine, it could have done with more comments. There is a comment in there, that was very nice and helpful (though I need to think over its assumptions some), but the rest of the code I lightly updated is, um, dire.
And technically, I still don't know if it really worked, since it's still going, and the most I can say without results is that it's probably on the happy path, but the happy path could be coiled around on itself really nastily.
The test conked out after like an hour. So, something is wrong. I'll definitely reduce the number of examples and see what I get.
Hm. One example is not exactly zippy, but, you know, I can't go lower. I'm going to need to do some serious investigation of this stuff later, because this is too intimidating for me when I'm this sleepy.
Fingers crossed this passes in a finite amount of time.