def test_rest_bytestring(self): self.assertEqual( evaluate_with_prelude(parse_one(lex(u'(rest #bytes("abc"))'))), Bytestring([ord(c) for c in b"bc"]))
def test_rest_string(self): self.assertEqual( evaluate_with_prelude(parse_one(lex(u'(rest "abc")'))), String(list(u"bc")))
def test_last_string(self): self.assertEqual( evaluate_with_prelude(parse_one(lex(u'(last "abc")'))), Character(u'c'))
def test_push_returns_null(self): self.assertEqual( evaluate_with_prelude(parse_one(lex( u"(push! (quote ()) 1)"))), NULL)
def test_fifth_string(self): self.assertEqual( evaluate_with_prelude(parse_one(lex(u'(fifth "abcde")'))), Character(u'e'))
def test_last_bytestring(self): self.assertEqual( evaluate_with_prelude(parse_one(lex(u'(last #bytes("abc"))'))), Integer.fromint(99))
def test_second_string(self): self.assertEqual( evaluate_with_prelude(parse_one(lex(u'(second "abc")'))), Character(u'b'))
def test_fifth_bytestring(self): self.assertEqual( evaluate_with_prelude(parse_one(lex(u'(fifth #bytes("abcde"))'))), Integer.fromint(101))
def test_map_string(self): self.assertEqual( evaluate_with_prelude(parse_one(lex(u'(filter (lambda (x) (equal? x \'b\')) "abc")'))), String(list(u"b")))
def test_map_bytestring(self): self.assertEqual( evaluate_with_prelude(parse_one(lex(u'(filter (lambda (x) (equal? x 98)) #bytes("abc"))'))), Bytestring([ord("b")]))
def test_map_string(self): self.assertEqual( evaluate_with_prelude(parse_one(lex(u'(map (lambda (x) \'z\') "abc")'))), String(list(u"zzz")))
def test_map_bytestring(self): self.assertEqual( evaluate_with_prelude(parse_one(lex(u'(map (lambda (x) (+ x 1)) #bytes("abc"))'))), Bytestring([ord(c) for c in "bcd"]))
def test_for_each(self): self.assertEqual( evaluate_with_prelude(parse_one(lex(u"""(let (total 0 numbers (list 1 2 3 4)) (for-each number numbers (set! total (+ total number))) total)"""))), Integer.fromint(10))