/[thuban]/branches/WIP-pyshapelib-bramz/test/support.py
ViewVC logotype

Diff of /branches/WIP-pyshapelib-bramz/test/support.py

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1245 by bh, Thu Jun 19 19:29:23 2003 UTC revision 1421 by bh, Tue Jul 15 14:46:55 2003 UTC
# Line 170  class FloatComparisonMixin: Line 170  class FloatComparisonMixin:
170      """      """
171    
172      fp_epsilon = 1e-6      fp_epsilon = 1e-6
173        fp_inf = float('1e1000')   # FIXME: hack for infinite
174            
175      def assertFloatEqual(self, test, value):      def assertFloatEqual(self, test, value, epsilon = None):
176          """Assert equality of test and value with some tolerance.          """Assert equality of test and value with some tolerance.
177    
178          Assert that the absolute difference between test and value is          Assert that the absolute difference between test and value is
179          less than self.fp_epsilon.          less than self.fp_epsilon.
180          """          """
181          self.assert_(self.fp_epsilon > abs(test - value),          if epsilon is None:
182                       "abs(%g - %g) >= %g" % (test, value, self.fp_epsilon))              epsilon = self.fp_epsilon
183            if abs(test) == self.fp_inf:
184                self.assertEqual(test, value)
185            else:
186                self.assert_(epsilon > abs(test - value),
187                         "abs(%g - %g) >= %g" % (test, value, epsilon))
188    
189      def assertFloatSeqEqual(self, test, value, epsilon = None):      def assertFloatSeqEqual(self, test, value, epsilon = None):
190          """Assert equality of the sequences test and value with some tolerance.          """Assert equality of the sequences test and value with some tolerance.
# Line 187  class FloatComparisonMixin: Line 193  class FloatComparisonMixin:
193          value in test and value is less than the optional parameter          value in test and value is less than the optional parameter
194          epsilon. If epsilon is not given use self.fp_epsilon.          epsilon. If epsilon is not given use self.fp_epsilon.
195          """          """
         if epsilon is None:  
             epsilon = self.fp_epsilon  
196          for i in range(len(test)):          for i in range(len(test)):
197              self.assert_(epsilon > abs(test[i] - value[i]),              self.assertFloatEqual(test[i], value[i], epsilon)
                          "abs(%g - %g) >= %g" % (test[i], value[i], epsilon))  
   
198    
199  class SubscriberMixin:  class SubscriberMixin:
200    
# Line 234  class SubscriberMixin: Line 236  class SubscriberMixin:
236          """Check whether the messages received match the list messages"""          """Check whether the messages received match the list messages"""
237          self.assertEquals(messages, self.received_messages)          self.assertEquals(messages, self.received_messages)
238    
 class FloatTestCase(unittest.TestCase):  
     """TestCase with methods for testing floating point values"""  
                                                                                                                                                           
     fp_epsilon = 1e-6  
     fp_inf = float('1e1000')   # FIXME: hack for infinite  
                                                                                                                                                           
     def assertFloatEqual(self, first, second, msg=None):  
         """Fail if one float is greater than the other + fp_epsilon"""  
         if abs(first) == self.fp_inf:  
             self.assertEqual(first, second, msg)  
         else:  
             self.assert_(self.fp_epsilon > abs(first - second), msg)  
   

Legend:
Removed from v.1245  
changed lines
  Added in v.1421

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26