def test_list(self): lst = erlang.OtpErlangList([116, 101, 115, 116]) self.assertTrue(isinstance(lst, erlang.OtpErlangList)) self.assertEqual(erlang.OtpErlangList([116, 101, 115, 116]), lst) self.assertEqual([116, 101, 115, 116], lst.value) self.assertEqual('OtpErlangList([116, 101, 115, 116],improper=False)', repr(lst))
def test_term_to_binary_improper_list(self): self.assertEqual( b'\x83l\0\0\0\1h\0h\0', erlang.term_to_binary(erlang.OtpErlangList([(), ()], improper=True))) self.assertEqual( b'\x83l\0\0\0\1a\0a\1', erlang.term_to_binary(erlang.OtpErlangList([0, 1], improper=True)))
def test_comparison(self): lst = erlang.OtpErlangList([1, 2, 3, 4], improper=True) self.assertEqual(lst, lst) self.assertEqual(lst, erlang.OtpErlangList([1, 2, 3, 4], improper=True)) self.assertNotEqual(lst, erlang.OtpErlangList([1, 2, 3, 5], improper=True)) self.assertNotEqual(lst, erlang.OtpErlangList([1, 2, 3], improper=True))
def test_improper_list(self): lst = erlang.OtpErlangList([1, 2, 3, 4], improper=True) self.assertTrue(type(lst) is erlang.OtpErlangList) self.assertEqual([1, 2, 3, 4], lst.value) self.assertEqual(4, lst.value[-1]) self.assertEqual('OtpErlangList([1, 2, 3, 4],' 'improper=True)', repr(lst))
def test_term_to_binary_list(self): self.assertEqual(b'\x83l\0\0\0\1jj', erlang.term_to_binary([[]])) self.assertEqual(b'\x83l\0\0\0\5jjjjjj', erlang.term_to_binary([[], [], [], [], []])) self.assertEqual( b'\x83l\0\0\0\5jjjjjj', erlang.term_to_binary( erlang.OtpErlangList([ erlang.OtpErlangList([]), erlang.OtpErlangList([]), erlang.OtpErlangList([]), erlang.OtpErlangList([]), erlang.OtpErlangList([]) ])))
def test_errors(self): self.assertRaises(erlang.OutputException, erlang.OtpErlangList.binary, erlang.OtpErlangList("invalid", improper=True))