On Wed, Sep 26, 2018 at 6:37 PM Chris Angelico <ros...@gmail.com> wrote: > > On Wed, Sep 26, 2018 at 5:51 PM Marko Ristin-Kaufmann > <marko.ris...@gmail.com> wrote: > > > > Hi Chris, > > > >> It's easy to say that they're boolean expressions. But that's like > >> saying that unit tests are just a bunch of boolean expressions too. > >> Why do we have lots of different forms of test, rather than just a big > >> fat "assert this and this and this and this and this and this"? > >> Because the key to unit testing is not "boolean expressions", it's a > >> language that can usefully describe what it is we're testing. > >> Contracts aren't just boolean expressions - they're a language (or a > >> mini-language) that lets you define WHAT the contract entails. > > > > > > Sorry, I misunderstood you. You are probably referring to knowing the terms > > like "preconditions, postconditions, invariants, strengthening/weakening", > > right? In that case, yes, I agree, I presuppose that readers are familiar > > with the concepts of DbC. Otherwise, of course, it makes no sense to use > > DbC if you assume nobody could actually figure out what it is :). > > > > Let's say you want to define a precondition and postcondition for this > function: > > def fibber(n): > return n < 2 ? n : fibber(n-1) + fibber(n-2)
Uhhhhhhhh.... def fibber(n): return n if n < 2 else fibber(n-1) + fibber(n-2) Let's, uhh, pretend that I didn't just mix languages there. For the original, we can say: @post(raises=ProgrammerFailedSanCheckError) ChrisA _______________________________________________ Python-ideas mailing list Python-ideas@python.org https://mail.python.org/mailman/listinfo/python-ideas Code of Conduct: http://python.org/psf/codeofconduct/