Home | History | Annotate | Download | only in auto_bisect
      1 # Copyright 2014 The Chromium Authors. All rights reserved.
      2 # Use of this source code is governed by a BSD-style license that can be
      3 # found in the LICENSE file.
      4 
      5 import unittest
      6 
      7 import bisect_results
      8 import ttest
      9 
     10 
     11 class ConfidenceScoreTest(unittest.TestCase):
     12 
     13   def testConfidenceScoreIsZeroOnTooFewLists(self):
     14     self.assertEqual(bisect_results.ConfidenceScore([], [[1], [2]]), 0.0)
     15     self.assertEqual(bisect_results.ConfidenceScore([[1], [2]], []), 0.0)
     16     self.assertEqual(bisect_results.ConfidenceScore([[1]], [[1], [2]]), 0.0)
     17     self.assertEqual(bisect_results.ConfidenceScore([[1], [2]], [[1]]), 0.0)
     18 
     19   def testConfidenceScoreIsZeroOnEmptyLists(self):
     20     self.assertEqual(bisect_results.ConfidenceScore([[], []], [[1], [2]]), 0.0)
     21     self.assertEqual(bisect_results.ConfidenceScore([[1], [2]], [[], []]), 0.0)
     22 
     23   def testConfidenceScoreIsUsingTTestWelchsTTest(self):
     24     original_WelchsTTest = ttest.WelchsTTest
     25     try:
     26       ttest.WelchsTTest = lambda _sample1, _sample2: (0, 0, 0.42)
     27       self.assertAlmostEqual(
     28         bisect_results.ConfidenceScore([[1], [1]], [[2], [2]]), 58.0)
     29     finally:
     30       ttest.WelchsTTest = original_WelchsTTest
     31 
     32 
     33 class BisectResulstsTest(unittest.TestCase):
     34   # TODO(sergiyb): Write tests for GetResultDicts when it is broken into smaller
     35   # pieces.
     36   pass
     37 
     38 
     39 if __name__ == '__main__':
     40   unittest.main()
     41