Exemplo n.º 1
0
def test_display():
    """Test Linked_List display method."""
    from linked_list import Linked_List
    test_list = Linked_List()
    test_list.insert(data[0])
    test_list.insert(data[1])
    assert test_list.display() == "(123, 456)"
Exemplo n.º 2
0
def test_insert():
    """Test Linked_List insert method."""
    from linked_list import Linked_List
    from linked_list import Node
    test_list = Linked_List()
    test_list.insert(data[0])
    assert isinstance(test_list.head, Node)
 def reversed(self):
     _result = Linked_List()     # init empty list
     current = self._head        # init start
     while current is not None:
         _result.add_head(current._value)
         current = current._next # incr
     return _result
Exemplo n.º 4
0
def test_search():
    """Test Linked_List length method."""
    from linked_list import Linked_List
    test_list = Linked_List()
    test_list.insert(data[0])
    test_list.insert(data[1])
    assert test_list.search(data[0]) == data[0]
def test_list_head_two_nodes():
    list1 = Linked_List()
    list1.insert("Mary")
    list1.insert("Kyle")
    assert list1.size == 2
    assert list1.head.node_name == "Kyle"
    assert list1.head.node_next.node_name == "Mary"
Exemplo n.º 6
0
class Queue:

    def __init__(self):
        self._lst= Linked_List()

    def enqueue(self, datum):
        self._lst.insert(datum)

    def dequeue(self):
        if self._lst.size() > 1:
            trace= self._lst.head
            while trace.pointer.pointer is not None:
                trace= trace.pointer
            result= trace.pointer.datum
            trace.pointer= None
            return result
        elif self._lst.size()==1:
            result= self._lst.head.datum
            self._lst.head= None
            return result
        else:
            raise ValueError("Cannot dequeue an empty queue")

    def size(self):
        return self._lst.size()
Exemplo n.º 7
0
def test_print():
    lst = Linked_List()
    lst.insert('A')
    lst.insert((1, 2, 3))
    lst.insert(42)
    lst.insert('Bob Dole')

    assert str(lst) == "('Bob Dole', 42, (1, 2, 3), 'A')"
def test_insert():
    lst= Linked_List()
    lst.insert(7)

    assert lst.head.datum==7

    lst.insert('Sir Sean Connery')

    assert lst.head.datum=='Sir Sean Connery'
Exemplo n.º 9
0
class Stack:
    def __init__(self):
        self._lst = Linked_List()

    def push(self, datum):
        self._lst.insert(datum)

    def pop(self):
        return self._lst.pop()
Exemplo n.º 10
0
def polynomial(a, x, n):
    if a >= n:
        P = Linked_List()
        for i in range(n, 0, -1):
            node = a * x ** i
            P.add(node)
            a -= 1
        return P
    else:
        return ValueError("a>=n")
Exemplo n.º 11
0
class Stack:

    def __init__(self):
        self._lst= Linked_List()

    def push(self, datum):
        self._lst.insert(datum)

    def pop(self):
        return self._lst.pop()
Exemplo n.º 12
0
 def deleteDuplicates(self, head):
     if not head:
         return None
     tracer = head
     outputList = Linked_List()
     while (tracer.next != None):
         if (tracer.val != tracer.next.val):
             outputList.AddTail(tracer.val)
         tracer = tracer.next
     outputList.AddTail(tracer.val)
     return outputList.head
Exemplo n.º 13
0
def test_str():
    a = Linked_List()
    print a
    a.insert('When A Café')
    a.insert('b')
    a.insert(2)
    print a
    assert a.display_prep() == "(2, 'b', 'When A Café')"
Exemplo n.º 14
0
def test_print():
    lst= Linked_List()
    lst.insert('A')
    lst.insert((1, 2, 3))
    lst.insert(42)
    lst.insert('Bob Dole')

    assert str(lst) == "('Bob Dole', 42, (1, 2, 3), 'A')"
Exemplo n.º 15
0
def test_regular_search():
    list1 = Linked_List()
    list1.insert("John")
    list1.insert("Paul")
    list1.insert("George")
    list1.insert("Ringo")
    searched_node = list1.search("George")
    assert searched_node.node_name == "George"
    searched_node = list1.search("John")
    assert searched_node.node_name == "John"
    searched_node = list1.search("Ralph")
    assert searched_node is None
Exemplo n.º 16
0
def test_remove():
    """Test Linked_List remove method."""
    from linked_list import Linked_List
    test_list = Linked_List()
    test_list.insert(data[0])
    test_list.insert(data[1])
    test_list.insert(data[2])
    test_list.remove(data[1])
    assert test_list.size() == 2
 def test_find(self):
     ll = Linked_List()
     ll.append('A')
     ll.append('B')
     ll.append('C')
     assert ll.find(lambda item: item == 'B') == 'B'
     assert ll.find(lambda item: item < 'B') == 'A'
     assert ll.find(lambda item: item > 'B') == 'C'
     assert ll.find(lambda item: item == 'D') is None
Exemplo n.º 18
0
class Stack(object):
    """The stack data structure is a composition of the Linked List structure."""
    def __init__(self, iterable=None):
        """Initialize stack as a Linked_List-esque object."""
        self._container = Linked_List(iterable)

    def push(self, val):
        """Use Linked List push method to add one Node to stack."""
        self._container.push(val)

    def pop(self):
        """Use Linked List pop() method to remove one from stack."""
        return self._container.pop()
Exemplo n.º 19
0
def create_linked_list(fencers_csv):
    ''' Creates a sorted linked list from a CSV file. '''
    with open(fencers_csv) as csv_file:
        fencer_list = Linked_List()
        reader = csv.reader(csv_file, delimiter='\t')
        for row in reader:
            fencer = {
                'last_name': row[0].split(',')[0],
                'first_name': row[0].split(',')[1],
                'team': row[0].split(',')[2],
                'rank': row[0].split(',')[3]
            }
            fencer_list.insert(fencer)
        return fencer_list
Exemplo n.º 20
0
def test_pop():
    list1 = Linked_List()
    list1.insert("John")
    list1.insert("Paul")
    list1.insert("George")
    list1.insert("Ringo")
    popped = list1.pop()
    assert popped.node_name == "Ringo"
    assert list1.head.node_name == "George"
    assert list1.size == 3
Exemplo n.º 21
0
def test_next():
    list1 = Linked_List()
    list1.insert("John")
    list1.insert("Paul")
    list1.insert("George")
    list1.insert("Ringo")
    assert list1.head.node_next.node_next.node_next.node_name == "John"
def check_linked_list_cycle(first_node):
    # """Returns True if the linked list is a circular linked list, else
    # it returns False.
    # >>> check_linked_list_cycle(first_node)
    # False
    # """
    ll = Linked_List()
    first_node = ll.first_node()
    slow_runner = first_node
    fast_runner = first_node

    while fast_runner != None and fast_runner.next != None:
        slow_runner = slow_runner.next
        fast_runner = fast_runner.next.next

        if fast_runner == slow_runner:
            return True
    return False
Exemplo n.º 23
0
def check_linked_list_cycle(first_node):
	# """Returns True if the linked list is a circular linked list, else
	# it returns False. 
	# >>> check_linked_list_cycle(first_node)
	# False
	# """
	ll = Linked_List()
	first_node = ll.first_node()
	slow_runner = first_node
	fast_runner = first_node

	while fast_runner != None and fast_runner.next != None:
		slow_runner = slow_runner.next
		fast_runner = fast_runner.next.next

		if fast_runner == slow_runner:
			return True
	return False
 def test_prepend(self):
     ll = Linked_List()
     ll.prepend('C')
     assert ll.head.data == 'C'
     assert ll.tail.data == 'C'
     ll.prepend('B')
     assert ll.head.data == 'B'
     assert ll.tail.data == 'C'
     ll.prepend('A')
     assert ll.head.data == 'A'
     assert ll.tail.data == 'C'
Exemplo n.º 25
0
def test_pop():
    lst = Linked_List()
    lst.insert(7)
    lst.insert('Sir Sean Connery')
    val1 = lst.pop()
    val2 = lst.pop()

    assert val1 == 'Sir Sean Connery'
    assert val2 == 7
    assert lst.head is None
Exemplo n.º 26
0
 def __init__(self):
     """
     Generates an empty hash-table.
     """
     self.table = [Linked_List() for _ in range(4)]
     self.hash_size = 2
     self.min_size = 1
     self.max_size = 4
     self.num_keys = 0
     self.rand = randrange(1, max_int)
     self.word_size = int(log(max_int, 2))
     self.h = lambda key: (self.rand * key % max_int) >> (self.word_size -
                                                          self.hash_size)
Exemplo n.º 27
0
def test():
    ll = Linked_List(1)
    ll.insert(4)
    ll.insert(16)
    ll.insert(9)
    print(ll.head)
    res = reverse_loop(ll.head)
    print(res)
    print(res.next)
    print(res.next.next)
    print(res.next.next.next)
Exemplo n.º 28
0
    def rehash(self):
        """
        Rehashes all keys in the hash-table.
        """
        self.num_keys = 0
        table = self.table
        self.table = [Linked_List() for slot in range(self.max_size)]

        for slot in table:
            element = slot.head
            while element:
                self.insert(element.key, element.value)
                element = element.next
Exemplo n.º 29
0
def test_insert():
    lst = Linked_List()
    lst.insert(7)

    assert lst.head.datum == 7

    lst.insert('Sir Sean Connery')

    assert lst.head.datum == 'Sir Sean Connery'
Exemplo n.º 30
0
class Queue:
    def __init__(self):
        self._lst = Linked_List()

    def enqueue(self, datum):
        self._lst.insert(datum)

    def dequeue(self):
        if self._lst.size() > 1:
            trace = self._lst.head
            while trace.pointer.pointer is not None:
                trace = trace.pointer
            result = trace.pointer.datum
            trace.pointer = None
            return result
        elif self._lst.size() == 1:
            result = self._lst.head.datum
            self._lst.head = None
            return result
        else:
            raise ValueError("Cannot dequeue an empty queue")

    def size(self):
        return self._lst.size()
Exemplo n.º 31
0
def test_pop():
    lst= Linked_List()
    lst.insert(7)
    lst.insert('Sir Sean Connery')
    val1= lst.pop()
    val2= lst.pop()

    assert val1=='Sir Sean Connery'
    assert val2==7
    assert lst.head is None
Exemplo n.º 32
0
	def __init__(self, link, timeout=10):
		"""Creates a socket and binds it to a free, unique port"""
		self.link = link
		self.results = Linked_List()
		self.my_socket = socket.socket()
		self.conn_ref = False
		# bind socket to free port
		ref_count = 0
		while True:
			self.port = BitcoinSocket.get_port()  # autoimcrement
			try:
				self.my_socket.bind(('',self.port)) 
				break;
			except OSError:  # if port is not free
				pass
				# print("os error")
			except ConnectionRefusedError:
				ref_count += 1
				if ref_count > 3:
					self.conn_ref = True
					break;
				# print("conn refused, trying again")

		self.my_socket.settimeout(timeout)
Exemplo n.º 33
0
def test_size():
    lst = Linked_List()
    lst.insert(0)
    lst.insert(1)
    lst.insert(45)
    lst.insert('turds')

    assert lst.size() == 4
    assert lst.head.datum == 'turds'
    lst.pop()
    lst.pop()
    assert lst.size() == 2
    assert lst.head.datum == 1
    lst.insert('boobies')
    assert lst.size() == 3
    lst.insert('i am mature')
    assert lst.size() == 4
    lst.pop()
    assert lst.head.datum == 'boobies'
Exemplo n.º 34
0
 def __init__(self, iterable=None):
     """Initialize stack as a Linked_List-esque object."""
     self._container = Linked_List(iterable)
Exemplo n.º 35
0
def test_list_head_when_none():
    list1 = Linked_List()
    list1.insert("Mary")
    assert list1.head.node_name == "Mary"
    assert list1.size == 1
    assert list1.head.node_next is None
Exemplo n.º 36
0
def test_remove():
    lst= Linked_List()
    lst.insert(7)
    lst.insert(4)
    lst.insert('Sir Sean Connery')
    lst.insert((1, 2, 3))
    lst.remove(4)
    lst.remove('Sir Sean Connery')

    assert lst.size()==2
    assert str(lst)=="((1, 2, 3), 7)"
    lst.remove((1, 2, 3))

    assert str(lst)=="(7,)"
Exemplo n.º 37
0
def test_search():
    lst= Linked_List()
    lst.insert(7)
    lst.insert(4)
    lst.insert('Sir Sean Connery')
    lst.insert((1, 2, 3))
    lst.insert('Harrison Ford')
    n1= lst.search('Sir Sean Connery')
    n2= lst.search(7)

    assert n1.datum=='Sir Sean Connery'
    assert n2.pointer is None
    assert lst.search('Batman') is None
Exemplo n.º 38
0
					# new message to send transaction
					to_send = msg_tx()
					to_send.tx = the_tx
					self.my_socket.send(to_send.to_bytes())
					# print("SENT OUR PC BRO TRANSACTION")
					return "donedone"
		else:
		    pass
		    # print("something else: ", msg.command, msg)

		return False

if __name__ == "__main__":

	bitcoin.SelectParams('mainnet')
	linked = Linked_List()  # of potential nodes
	known_set = set()  # docs imply this is a hashset.  good nodes
	known_bad = set()  # offline nodes
	version_strings = {}  # string : count


	# server_ip = "75.132.169.13"
	# server_ip = "199.233.246.224"
	server_ip = "94.112.102.36"
	# server_ip = "95.191.251.158"
	# server_ip = "188.230.153.108"
	# server_ip = "186.159.101.96"
	# server_ip = "76.170.160.69"
	# server_ip = "70.15.155.219"
	# server_ip = "81.64.219.50"
	# server_ip = "73.20.98.44"
 def __init__(self, orig = None):
     # Can this be done as super().__init__(....) ???
     Linked_List.__init__(self, orig)
Exemplo n.º 40
0
def test_print():
    list1 = Linked_List()
    list1.insert("John")
    list1.insert("Paul")
    list1.insert("George")
    list1.insert("Ringo")
    assert list1.__str__() == "('Ringo', 'George', 'Paul', 'John')"
    list2 = Linked_List()
    assert list2.__str__() == "()"
    list1.pop()
    assert list1.__str__() == "('George', 'Paul', 'John')"
Exemplo n.º 41
0
 def __init__(self):
     self._lst= Linked_List()
def new_empty_ll():
    """Create an empty object of type Stack to be used in test functions."""
    from linked_list import Linked_List
    this_empty_ll = Linked_List()
    return this_empty_ll
# Time Comp: O(n2)
# Space Comp: O(1)
def remove_dupes_1(ll):
    curr = ll.head
    while curr:
        runner = ll.head
        prev = ll.head
        while runner:
            if curr.data is runner.data:
                prev.next_node = runner.next_node
            else:
                prev = prev.next_node
            runner = runner.next_node
        curr = curr.next_node


L1 = Linked_List()
L1.insert(5)
L1.insert(3)
L1.insert(5)
L1.insert(5)
L1.insert(10)
L1.insert(5)
L1.insert(10)

L1.output()

print("Removing all duplicates...")
# remove_dupes(L1)
# remove_dupes_1(L1)
L1.output()
Exemplo n.º 44
0
def test_search():
    lst = Linked_List()
    lst.insert(7)
    lst.insert(4)
    lst.insert('Sir Sean Connery')
    lst.insert((1, 2, 3))
    lst.insert('Harrison Ford')
    n1 = lst.search('Sir Sean Connery')
    n2 = lst.search(7)

    assert n1.datum == 'Sir Sean Connery'
    assert n2.pointer is None
    assert lst.search('Batman') is None
Exemplo n.º 45
0
def test_linked_list():
    """
    Code to test each part of the linked list class
    """
    # empty()
    ll = Linked_List()
    assert ll.empty() == True
    ll.head = Node(3)
    assert ll.empty() == False

    # next_is_empty()
    assert ll.head.next_is_empty() == True
    ll.head.tail = Node(4)
    assert ll.head.next_is_empty() == False

    # size()
    ll.head.tail.tail = Node(5)
    assert ll.size() == 3
    assert Linked_List().size() == 0
    size_one = Linked_List()
    size_one.head = Node(18)
    assert size_one.size() == 1

    # value_at()
    assert ll.value_at(0) == 3
    assert ll.value_at(1) == 4
    assert ll.value_at(2) == 5
    assert ll.value_at(3) == "IndexError: Index is too large or incorrect. Should be an integer less than size of linkedlist"

    # push_front()
    ll.push_front(2)
    assert ll.value_at(0) == 2
    assert ll.value_at(1) == 3
    assert ll.value_at(2) == 4
    assert ll.value_at(3) == 5
    assert ll.size() == 4

    # pop_front()
    front_value = ll.pop_front()
    assert front_value == 2
    assert ll.size() == 3
    assert ll.value_at(0) == 3

    # push_back()
    ll.push_back(6)
    assert ll.size() == 4
    assert ll.value_at(3) == 6

    # pop_back()
    back_value = ll.pop_back()
    assert ll.size() == 3
    assert back_value == 6

    # front()
    front_value = ll.front()
    assert front_value == 3
    assert ll.size() == 3

    # back()
    back_value = ll.back()
    assert back_value == 5
    assert ll.size() == 3

    # insert_at()
    ll.insert_at(0, 2)
    assert ll.size() == 4
    assert ll.value_at(0) == 2
    ll.insert_at(1, 2.5)
    assert ll.size() == 5
    assert ll.value_at(1) == 2.5
    assert ll.value_at(2) == 3

    # erase()
    ll.remove(0)
    assert ll.size() == 4
    assert ll.value_at(0) == 2.5
    ll.remove(1)
    assert ll.size() == 3
    assert ll.value_at(1) == 4

    # value_n_from_end()
    n = ll.value_n_from_end(0)
    assert n == 5
    assert ll.size() == 3

    # reverse()
    reversed = ll.reverse()
    assert reversed.size() == 3
    assert reversed.value_at(0) == 5
    assert reversed.value_at(1) == 4
    assert reversed.value_at(2) == 2.5

    # remove_value(value)
    reversed.remove_value(4)
    assert reversed.size() == 2
    assert reversed.value_at(0) == 5
    assert reversed.value_at(1) == 2.5
Exemplo n.º 46
0
def test_remove():
    lst = Linked_List()
    lst.insert(7)
    lst.insert(4)
    lst.insert('Sir Sean Connery')
    lst.insert((1, 2, 3))
    lst.remove(4)
    lst.remove('Sir Sean Connery')

    assert lst.size() == 2
    assert str(lst) == "((1, 2, 3), 7)"
    lst.remove((1, 2, 3))

    assert str(lst) == "(7,)"
Exemplo n.º 47
0
def test_remove():
    list1 = Linked_List()
    list1.insert("John")
    list1.insert("Paul")
    list1.insert("George")
    list1.insert("Ringo")
    list1.remove("John")
    assert list1.head.node_next.node_next.node_next is None
    list1.remove("George")
    assert list1.size == 2
    assert list1.head.node_next.node_name == "Paul"
    # assert list1.remove("Pete") == "Node not in list"
    with pytest.raises(No_Node_Exception) as excinfo:
        list1.remove("Pete")
    assert excinfo.value.message == '-1'
    list1.remove("Ringo")
Exemplo n.º 48
0
def test_init():
    lst = Linked_List()

    assert lst.head is None
Exemplo n.º 49
0
class BitcoinSocket(object):
	client_ip = "1.1.1.1"  # TODO This value doesn't seem to matter, but we should make sure or use your IP address
							# or best case write code to find your public facing IP address
	_port_num = 8000		# also, this port is the LAN port, not internet port, so the same issue is here

	def get_port():  # NOTE: this is not an instance method
		"""In the future this will allow a good way to support parallelization"""
		with port_lock:
			val = BitcoinSocket._port_num
			BitcoinSocket._port_num += 1
		return val

	def __init__(self, link, timeout=10):
		"""Creates a socket and binds it to a free, unique port"""
		self.link = link
		self.results = Linked_List()
		self.my_socket = socket.socket()
		self.conn_ref = False
		# bind socket to free port
		ref_count = 0
		while True:
			self.port = BitcoinSocket.get_port()  # autoimcrement
			try:
				self.my_socket.bind(('',self.port)) 
				break;
			except OSError:  # if port is not free
				pass
				# print("os error")
			except ConnectionRefusedError:
				ref_count += 1
				if ref_count > 3:
					self.conn_ref = True
					break;
				# print("conn refused, trying again")

		self.my_socket.settimeout(timeout)

	def connect(self):
		"""Connect to the destination, returning True on success"""
		try:
			self.my_socket.connect( (self.link.ip,self.link.port) )
		except socket.timeout:
			return False
		return True

	def listen_until_acked(self):
		# Send Version packet
		self.my_socket.send( self._make_version_pkt().to_bytes() )
		ver_rec = False
		verack_rec = False
		iterations = 0
		while not verack_rec and not ver_rec and iterations < 15:
			res = self._process_message()
			if res == "version":
				ver_rec = True
			elif res == "verack":
				verack_rec = True

			if iterations > 13:
				print("stuck on ack? tid: ", threading.get_ident(), '\n\ttarget: ', self.link)
			iterations += 1

	def send_transaction(self):
		import createTransaction
		tx = createTransaction.make_self_transaction()
		inv_msg = msg_inv()
		tx_inv = CInv() 
		tx_inv.type = 1
		tx_inv.hash = tx.GetHash()
		inv_msg.inv.append(tx_inv)
		self.my_socket.send(inv_msg.to_bytes())
		iterations = 0
		while self._process_message(transaction=tx) != "donedone" and iterations < 50:
			pass
			if iterations > 45:
				print("stuck on send? tid: ", threading.get_ident(), '\n\ttarget: ', self.link)
			iterations += 1
		# print("leaving send_transaction()")
		return tx_inv.hash

	def listen_until_addresses(self):
		"""Implements the Bitcoin protocol, sending info until it gets an addr message"""
		

		# Try to get addresses
		self.my_socket.send(msg_getaddr().to_bytes())

		while not self._process_message():  # TODO set timeout or something for multiple addr messages
			pass
		self.my_socket.close()

	def listen_forever(self):
		print("starting to listen forever")
		while True:
			self._process_message()

	def get_results(self):
		"""Returns a linked list of all new potential nodes (needs pruning)."""
		return self.results

	def _make_version_pkt(self):
	    msg = msg_version()
	    msg.nVersion = 70002
	    msg.addrTo.ip = self.link.ip
	    msg.addrTo.port = self.link.port
	    msg.addrFrom.ip = BitcoinSocket.client_ip
	    msg.addrFrom.port = self.port
	    return msg

	# ...we don't need to tell people who we know about :)
	# def _make_addr_pkt(self, str_addrs ):
	#     msg = msg_addr()
	#     addrs = []
	#     for i in str_addrs:
	#         addr = CAddress()
	#         addr.port = 8333
	#         addr.nTime = int(time.time())
	#         addr.ip = i

	#         addrs.append( addr )
	#     msg.addrs = addrs
	#     return msg

	def _process_message(self, **kwargs):
		msg = MsgSerializable.stream_deserialize(Wrapper(self.my_socket))

		if msg.command == b"version":  # TODO conglomerate these message strings into a dictionary
		    # Send Verack
		    # print('version: ', msg.strSubVer, msg.nVersion)
		    self.my_socket.send( msg_verack().to_bytes() )
		    return "version"
		elif msg.command == b"verack":
		    # print("verack: ", msg)
		    return "verack"
		elif msg.command == b"inv":
			pass
			# print("inv: ", msg.inv)
			# print(dir(msg))
			# print(type(msg.inv))
		elif msg.command == b"ping":
			# print("ping: ", msg)
			self.my_socket.send(msg_pong(msg.nonce).to_bytes())

		elif msg.command == b"getheaders":
			pass
			# print("getheaders received ")

		elif msg.command == b"addr":  # TODO this needs multi-message support
			# print("addr: size ", len(msg.addrs))
			for address in msg.addrs:
				node = Link(address.ip, address.port)
				self.results.add(node)
			return True
		elif msg.command == b"getdata":
			# print("getdata: ", msg.inv)
			if 'transaction' not in kwargs:
				return False
			the_tx =  kwargs['transaction']
			for request in msg.inv:
				if request.hash == the_tx.GetHash():
					print(threading.current_thread().name,"sending tx: ", self.link)
					# new message to send transaction
					to_send = msg_tx()
					to_send.tx = the_tx
					self.my_socket.send(to_send.to_bytes())
					# print("SENT OUR PC BRO TRANSACTION")
					return "donedone"
		else:
		    pass
		    # print("something else: ", msg.command, msg)

		return False
Exemplo n.º 50
0
def test_size():
    lst= Linked_List()
    lst.insert(0)
    lst.insert(1)
    lst.insert(45)
    lst.insert('turds')

    assert lst.size()==4
    assert lst.head.datum=='turds'
    lst.pop()
    lst.pop()
    assert lst.size()==2
    assert lst.head.datum==1
    lst.insert('boobies')
    assert lst.size()==3
    lst.insert('i am mature')
    assert lst.size()==4
    lst.pop()
    assert lst.head.datum=='boobies'
from RemoveDuplicatesfromSortedList import Solution
from linked_list import ListNode, Linked_List

a = Linked_List()
a.AddTail(1)
a.AddTail(1)
a.AddTail(1)
a.AddTail(1)
a.AddTail(1)
a.AddTail(1)
a.AddTail(1)
a.AddTail(1)
a.AddTail(2)
a.AddTail(3)
a.AddTail(3)

temp = Solution()
tracer = temp.deleteDuplicates(a.head)
while tracer.next != None:
    print(tracer.val)
    tracer = tracer.next
print(tracer.val)
Exemplo n.º 52
0
def test_pop():
    """Test Linked_List pop method."""
    from linked_list import Linked_List
    test_list = Linked_List()
    test_list.insert(data[0])
    assert test_list.pop().data == data[0]