'Test omitting arguments with a default value.'

def test_default_args(self):

    (f, check) = self.compile_func(addsub_defaults)
    check(3, z=10, y=4)
    check(3, 4, 10)
    check(x=3, y=4, z=10)
    check(3, z=10)
    check(3, 4)
    check(x=3, y=4)
    check(3)
    check(x=3)
    with self.assertRaises(TypeError) as cm:
        f(3, 4, y=6, z=7)
    self.assertIn('too    many    arguments:    expected    3,    got    4', str(cm.exception))
    with self.assertRaises(TypeError) as cm:
        f()
    self.assertIn('not    enough    arguments:    expected    at    least    1,    got    0', str(cm.exception))
    with self.assertRaises(TypeError) as cm:
        f(y=6, z=7)
    self.assertIn("missing    argument    'x'", str(cm.exception))
