greetings
Martin.
Hello everybody,
similar to doctest, DBC in Python is also easily injected by inserting inside those comment tags at the beginning of a method.
It is very nice seeing UNITTEST and DBC in one comment placed directly below the method's head.
Here an example for UNITTEST and DBC in Python:
def sort(a):"""Sort a list *IN PLACE*.>>> a = [1, 1, 1, 1, 1, 2, 2, 1]>>> sort(a)>>> a[1, 1, 1, 1, 1, 1, 2, 2]>>> a = 'the quick brown fox jumped over the lazy dog'.split()>>> sort(a)>>> a['brown', 'dog', 'fox', 'jumped', 'lazy', 'over', 'quick', 'the', 'the']pre:# must be a listisinstance(a, list)# all elements must be comparable with all other itemsforall(range(len(a)),lambda i: forall(range(len(a)),lambda j: (a[i] < a[j]) ^ (a[i] >= a[j])))post[a]:# length of array is unchangedlen(a) == len(__old__.a)# all elements given are still in the arrayforall(__old__.a, lambda e: __old__.a.count(e) == a.count(e))# the array is sortedforall([a[i] >= a[i-1] for i in range(1, len(a))])"""a.sort()# enable contract checkingimport contractcontract.checkmod(__name__)def _test():import doctest, sortreturn doctest.testmod(sort)if __name__ == "__main__":_test()
Regards
Bernd
Von: [EMAIL PROTECTED] [mailto: [EMAIL PROTECTED]] Im Auftrag von Miguel Serrano Milano
Gesendet: Samstag, 7. Oktober 2006 16:09
An: [email protected]
Betreff: Re: [osflash] Design By Contract on ActionScript 2
Hi! I've been thinking about this last days. There's no solution at the moment, but it is not difficult to develop a solution by one of this two ways:
1. Explicit asserts and an AOP approach to check and invariants. The asserts are easy to define: just a collection of Assert.precondition() and Assert.precondition(), and as invariants a method classInvariants() could be defined to be invoked after every method call.
2. A precompiler. I think there are tools to write precompilers for any language. Do somebody know something about this?
What do you think?
Message: 1
Date: Thu, 5 Oct 2006 15:11:13 -0300
From: "Marcelo de Moraes Serpa" < [EMAIL PROTECTED]>
Subject: [osflash] Design By Contract on ActionScript 2
Message-ID:
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Is there any tool for AS2 that allows me to implement the DBC methodology?
Cheers,
Marceo.
Miguel Serrano Milano
_______________________________________________
osflash mailing list
[email protected]
http://osflash.org/mailman/listinfo/osflash_osflash.org
--
ICQ: 117662935
Skype: mastakaneda
_______________________________________________ osflash mailing list [email protected] http://osflash.org/mailman/listinfo/osflash_osflash.org
