def test_rule_initialization(self):
    with self.assertRaises(ValueError):
        FakeRule()
    with self.assertRaises(ValueError):
        FakeRule(1, 'too_many_args', 3)
    with self.assertRaises(ValueError):
        FakeRule('not_a_number', 'a')
    with self.assertRaises(ValueError):
        FakeRule('wrong_order', 1)
    fake_rule = FakeRule(2, 'a')
    self.assertTrue(fake_rule.x, 2)
    self.assertTrue(fake_rule.y, 'a')
    self.assertEqual(fake_rule._PARAMS, [('x', objects.Real), ('y', objects.UnicodeString)])
def test_rule_initialization(self):
    with self.assertRaises(ValueError):
        FakeRule()
    with self.assertRaises(ValueError):
        FakeRule(1, 'too_many_args', 3)
    with self.assertRaises(ValueError):
        FakeRule('not_a_number', 'a')
    with self.assertRaises(ValueError):
        FakeRule('wrong_order', 1)
    fake_rule = FakeRule(2, 'a')
    self.assertTrue(fake_rule.x, 2)
    self.assertTrue(fake_rule.y, 'a')
    self.assertEqual(fake_rule._PARAMS, [('x', objects.Real), ('y', objects.UnicodeString)])