ten small Python programs

Steven Bethard steven.bethard at gmail.com
Sun May 27 13:08:43 EDT 2007


Steve Howell wrote:
> --- Steven Bethard <steven.bethard at gmail.com> wrote:
>> Very cool! Do you mind putting this up on the Wiki
>> somewhere so that we 
>> can link to it more easily? Maybe something like:
>>
>>      http://wiki.python.org/moin/SimplePrograms
>>
> 
> Done.

I think I would rewrite the current unit-testing example to use the 
standard library unittest module::

     # Let's write reusable code, and unit test it.
     def add_money(amounts):
         # do arithmetic in pennies so as not to accumulate float errors
         pennies = sum([round(int(amount * 100)) for amount in amounts])
         return float(pennies / 100.0)
     import unittest
     class TestAddMoney(unittest.TestCase):
         def test_float_errors(self):
             self.failUnlessEqual(add_money([0.13, 0.02]), 0.15)
             self.failUnlessEqual(add_money([100.01, 99.99]), 200)
             self.failUnlessEqual(add_money([0, -13.00, 13.00]), 0)
     if __name__ == '__main__':
         unittest.main()

I believe I've still kept it to 13 lines.

STeVe

P.S. The "right" way to add money is using the decimal module, but I 
couldn't think of a better example.



More information about the Python-list mailing list