1. 2

  2. 3

    The first two don’t seem to have much to do with TDD. But as a static types snob, for things that are that simple I like to try to encode their invariants in types, making many trivial non-nonsensical.

    Three and four seem to be contradictory. I guess the difference for the author is how large of a “write tests first then write implementation” the author sees.

    The rest of them don’t seem that related to TDD specifically either, they are just about tests. Not doing TDD doesn’t necessarily mean you don’t write tests, TDD is just a specific way of using tests.