Example #1
0
 def test_kwargs_handling(self):
     def args_kwargs(a, b, c=None):
         return 1.0 * a / b * (c or 3)
     self.assertEqual(
             specialized_fn(args_kwargs, globals(), locals(), c=4)(1, 2),
             1.0 / 2 * 4)
     self.assertEqual(
             specialized_fn(args_kwargs, globals(), locals(), 2, c=4)(6),
             2.0 / 6 * 4)
Example #2
0
 def test_args_handling(self):
     def args_kwargs(a, b, c=None):
         return 1.0 * a / b * (c or 3)
     self.assertEqual(
             specialized_fn(args_kwargs, globals(), locals(), 1)(2),
             1.0 / 2 * 3)
     self.assertEqual(
             specialized_fn(args_kwargs, globals(), locals(), 1, 2, 1)(),
             1.0 / 2 * 1)
Example #3
0
 def _test_partial_fn(self, base_fn, globals_, locals_,
         get_partial_kwargs, get_kwargs):
     ''' Check that partial evaluation of base_fn with partial_args
     gives the same result on args_list
     as functools.partial(base_fn, partial_args)
     '''
     fn = specialized_fn(base_fn, globals_, locals_, **get_partial_kwargs())
     partial_fn = functools.partial(base_fn, **get_partial_kwargs())
     # call two times to check for possible side-effects
     self.assertFuncEqualOn(partial_fn, fn, **get_kwargs()) # first
     self.assertFuncEqualOn(partial_fn, fn, **get_kwargs()) # second