示例#1
0
 def test_add(self):
     add = get_builtins()['+']
     with self.assertRaises(TypeError):
         add()
     self.assertEqual(add(3), 3)
     self.assertEqual(add(3, 2), 5)
     self.assertEqual(add(3, 2, 1), 6)
示例#2
0
 def test_mul(self):
     mul = get_builtins()['*']
     with self.assertRaises(TypeError):
         mul()
     with self.assertRaises(TypeError):
         mul(123)
     self.assertEqual(mul(3, 2), 6)
     self.assertEqual(mul(4, 3, 2), 24)
示例#3
0
 def test_sub(self):
     sub = get_builtins()['-']
     with self.assertRaises(TypeError):
         sub()
     self.assertEqual(sub(123), -123)
     self.assertEqual(sub(10, 2), 8)
     with self.assertRaises(TypeError):
         sub(1, 2, 3)
示例#4
0
 def test_operators(self):
     data = [
         ('not', op.not_),
         ('/', op.truediv),
         ('=', op.eq),
         ('equal?', op.eq),
         ('eq?', op.is_),
         ('>', op.gt),
         ('<', op.lt),
         ('>=', op.ge),
         ('<=', op.le), 
         ('length', len),
         ('append', op.add),
         ('display', print),
     ]
     for name, expected in data:
         actual = get_builtins()[name]
         self.assertIs(actual, expected, 'bad "%s"' % (name,))
示例#5
0
 def test_islist(self):
     islist = get_builtins()['list?']
     self.assertFalse(islist(1))
     self.assertFalse(islist('a'))
     self.assertTrue(islist([1]))
示例#6
0
 def test_list(self):
     list_ = get_builtins()['list']
     self.assertEqual(list_(1, 2, 3), [1, 2, 3])
示例#7
0
 def test_cdr(self):
     cdr = get_builtins()['cdr']
     self.assertEqual(cdr([1, 2, 3]), [2, 3])
示例#8
0
 def test_car(self):
     car = get_builtins()['car']
     self.assertEqual(car([1, 2, 3]), 1)
示例#9
0
 def test_cons_is_unable_to_make_a_pair_like_it_ought_to(self):
     cons = get_builtins()['cons']
     with self.assertRaises(TypeError) as cm:
         cons(1, 2)
示例#10
0
 def test_cons_should_prepend_to_existing_list(self):
     cons = get_builtins()['cons']
     self.assertEqual(cons(1, [2, 3]), [1, 2, 3])
示例#11
0
 def test_issymbol(self):
     issymbol = get_builtins()['symbol?']
     self.assertFalse(issymbol(1))
     self.assertFalse(issymbol([1]))
     self.assertFalse(issymbol([]))
     self.assertTrue(issymbol('a'))
示例#12
0
 def test_isnull(self):
     isnull = get_builtins()['null?']
     self.assertFalse(isnull(1))
     self.assertFalse(isnull('a'))
     self.assertFalse(isnull([1]))
     self.assertTrue(isnull([]))