What's inherent about this problem that wouldn't benefit from chunking things into digestible, iterative parts that lend themselves nicely to the TDD approach as I described?
What about behaviors and expectations? At the end of the day you’re verifying behaviors and expectations of software. I mean when designing a solution you need to think these things through. TDD compliments this just the same