コード例 #1
0
 def test_short_expression_finder_failure(self):
     # End users should never see these failures so it doesn't matter much how
     # exactly they fail.
     self.assertRaises(AssertionError, ShortExpressionFinder, [])
     self.assertRaises(AssertionError, ShortExpressionFinder,
                       [('x', (1, 2)), ('no_values', ())])
     self.assertRaises(TypeError, ShortExpressionFinder,
                       [('bad_type', (1, 2.5))])
     self.assertRaises(AssertionError, ShortExpressionFinder,
                       [('bad name', (1, 2))])
     self.assertRaises(AssertionError, ShortExpressionFinder,
                       [('x', ('bad value', ))])
     self.assertRaises(TypeError, ShortExpressionFinder,
                       [('x', (1, 'mixed_values'))])
     self.assertRaises(
         AssertionError,
         ShortExpressionFinder([('no_configs', (1, 2))]).get_expr, [])
     self.assertRaises(
         AssertionError,
         ShortExpressionFinder([('no_such_value', (1, 2))]).get_expr,
         [(3, )])
     self.assertRaises(
         AssertionError,
         ShortExpressionFinder([('wrong_length', (1, 2))]).get_expr,
         [(1, 3)])
 def check_expr(self, expr, variables_and_values):
   """Check that ShortExpressionFinder returns an expression that's logically
   equivalent to |expr| and equally simple, when given the matching configs.
   """
   configs = matching_configs(expr, variables_and_values)
   output_expr = ShortExpressionFinder(variables_and_values).get_expr(configs)
   output_configs = matching_configs(output_expr, variables_and_values)
   self.assertEqual(configs, output_configs)
   self.assertEqual(expr.count('=='), output_expr.count('=='))
   self.assertEqual(expr.count('('), output_expr.count('('))
コード例 #3
0
 def check_expr(self, expr, variables_and_values):
     """Check that ShortExpressionFinder returns an expression that's logically
 equivalent to |expr| and equally simple, when given the matching configs.
 """
     configs = matching_configs(expr, variables_and_values)
     output_expr = ShortExpressionFinder(variables_and_values).get_expr(
         configs)
     output_configs = matching_configs(output_expr, variables_and_values)
     self.assertEqual(configs, output_configs)
     self.assertEqual(expr.count('=='), output_expr.count('=='))
     self.assertEqual(expr.count('('), output_expr.count('('))
 def test_two_variables_four_values(self):
   vals1, vals2 = (1, 2), ("ab", "cd")
   sef = ShortExpressionFinder([('var1', vals1), ('var2', vals2)])
   all_configs = tuple(itertools.product(vals1, vals2))
   for val1 in vals1:
     for val2 in vals2:
       self.assertEqual('var1==%d and var2=="%s"' % (val1, val2),
                        sef.get_expr([(val1, val2)]))
   for val1 in vals1:
     self.assertEqual('var1==%d and (var2=="ab" or var2=="cd")' % val1,
                      sef.get_expr([(val1, "ab"), (val1, "cd")]))
   for val2 in vals2:
     self.assertEqual('(var1==1 or var1==2) and var2=="%s"' % val2,
                      sef.get_expr([(1, val2), (2, val2)]))
   self.assertEqual('(var1==1 or var1==2) and (var2=="ab" or var2=="cd")',
                    sef.get_expr(all_configs))
コード例 #5
0
 def test_two_variables_four_values(self):
     vals1, vals2 = (1, 2), ("ab", "cd")
     sef = ShortExpressionFinder([('var1', vals1), ('var2', vals2)])
     all_configs = tuple(itertools.product(vals1, vals2))
     for val1 in vals1:
         for val2 in vals2:
             self.assertEqual('var1==%d and var2=="%s"' % (val1, val2),
                              sef.get_expr([(val1, val2)]))
     for val1 in vals1:
         self.assertEqual('var1==%d and (var2=="ab" or var2=="cd")' % val1,
                          sef.get_expr([(val1, "ab"), (val1, "cd")]))
     for val2 in vals2:
         self.assertEqual('(var1==1 or var1==2) and var2=="%s"' % val2,
                          sef.get_expr([(1, val2), (2, val2)]))
     self.assertEqual('(var1==1 or var1==2) and (var2=="ab" or var2=="cd")',
                      sef.get_expr(all_configs))
 def test_simple(self):
   sef = ShortExpressionFinder([('var', [17])])
   self.assertEqual('var==17', sef.get_expr([(17,)]))
コード例 #7
0
 def test_simple(self):
     sef = ShortExpressionFinder([('var', [17])])
     self.assertEqual('var==17', sef.get_expr([(17, )]))