def test_quote(): check_result("'symbol", PtObject.intern('symbol')) check_result( "''symbol", PtObject.list([PtObject.intern('quote'), PtObject.intern('symbol')])) check_result("'(a b c)", PtObject.list([PtObject.intern(s) for s in ['a', 'b', 'c']])) check_result("'(a . b)", PtObject.cons(PtObject.intern('a'), PtObject.intern('b'))) check_result( "'(a b . c)", PtObject.cons( PtObject.intern('a'), PtObject.cons(PtObject.intern('b'), PtObject.intern('c'))))
def test_cons(): assert str(PtObject.nil) == 'nil' assert PtObject.nil == PtObject.nil obj = PtObject.cons(PtObject.intern('def'), PtObject.intern('ghi')) assert str(obj) == '(def . ghi)' assert obj == PtObject.cons(PtObject.intern('def'), PtObject.intern('ghi')) assert obj != PtObject.cons(PtObject.symbol('def'), PtObject.intern('ghi')) assert obj != PtObject.cons(PtObject.intern('def'), PtObject.symbol('ghi')) obj = PtObject.cons( PtObject.intern('a'), PtObject.cons( PtObject.intern('b'), PtObject.cons( PtObject.intern('c'), PtObject.intern('d')))) assert str(obj) == '(a b c . d)' assert obj == PtObject.cons( PtObject.intern('a'), PtObject.cons( PtObject.intern('b'), PtObject.cons( PtObject.intern('c'), PtObject.intern('d')))) obj = PtObject.cons( PtObject.intern('a'), PtObject.cons( PtObject.intern('b'), PtObject.cons( PtObject.intern('c'), PtObject.nil))) assert str(obj) == '(a b c)' assert obj == PtObject.cons( PtObject.intern('a'), PtObject.cons( PtObject.intern('b'), PtObject.cons( PtObject.intern('c'), PtObject.nil))) obj = PtObject.list([ PtObject.intern('a'), PtObject.intern('b'), PtObject.intern('c'), PtObject.intern('d'), PtObject.intern('e'), ]) assert str(obj) == '(a b c d e)' assert obj == PtObject.list([ PtObject.intern('a'), PtObject.intern('b'), PtObject.intern('c'), PtObject.intern('d'), PtObject.intern('e'), ])