def test_size(self):
     da = DynamicArray()
     self.assertEqual(da.size(), 0)
     da.add(1)
     self.assertEqual(da.size(), 1)
     da.add(2)
     self.assertEqual(da.size(), 2)
 def test_to_list(self):
     da = DynamicArray()
     self.assertEqual(da.to_list(), [])
     da.add(1)
     self.assertEqual(da.to_list(), [1])
     da.add(2)
     self.assertEqual(da.to_list(), [1, 2])
示例#3
0
class Stack(object):

    # The __init__ function is run when you instantiate an instance of this object
    def __init__(self):
        self._size = 0
        self._dynamic_array = DynamicArray()

    #################################
    ## DO YOUR WORK BELOW THIS LINE #
    #################################

    def is_empty(self):
        return self._size == 0

    def size(self):
        return self._dynamic_array.size()

    def top(self):
        return self._dynamic_array.get(self._dynamic_array.size() - 1)

    def push(self, value):
        self._dynamic_array.add(value)


    def pop(self):
        return self._dynamic_array.remove(self._dynamic_array.size() - 1)

    # DO NOT MODIFY THIS PRINT
    def print_stack(self):
        print '====\n' + '\n----\n'.join([str(v) for v in self._dynamic_array._data[:self._size]]) + '\n^^^^'
示例#4
0
class Stack(object):

    # The __init__ function is run when you instantiate an instance of this object
    def __init__(self):
        self._size = 0
        self._dynamic_array = DynamicArray()

    #################################
    ## DO YOUR WORK BELOW THIS LINE #
    #################################

    # Return whether or not the stack is empty
    def is_empty(self):
        #TODO: return True or False to answer if the stack is empty
        if self._size == 0:
            return True

    # Return the size on the stack
    def size(self):
        #TODO: return the current size of the stack
        return self._size

    # look at the top of the stack (but don't remove)
    def top(self):
        #TODO: return the current top of the stack
        return self._dynamic_array.get(self._size - 1)

    # Push a value on to the top of the stack
    def push(self, value):
        #TODO: push the pased value onto the stack
        self._dynamic_array.add(value)
        self._size += 1

    # take the top value off of the stack and return it to the user
    def pop(self):
        #TODO: pop the top value off the stack
        self._dynamic_array.remove(self._size - 1)
        self._size -= 1
        return 1

    # DO NOT MODIFY THIS PRINT
    def print_stack(self):
        print '====\n' + '\n----\n'.join(
            [str(v)
             for v in self._dynamic_array._data[:self._size]]) + '\n^^^^'
 def test_get_item(self):
     da = DynamicArray()
     da.add(1)
     self.assertEqual(da.__getitem__(0), 1)
示例#6
0
from DynamicArray import DynamicArray

dyn_arr = DynamicArray()

print "Checking basic variable initializations..."
assert dyn_arr._size == dyn_arr.size()
assert dyn_arr._capacity == dyn_arr.capacity()

dyn_arr.print_data()
print "done\n"

###################################

print "Checking add function..."

dyn_arr.add(1)
assert dyn_arr.size() == 1
assert dyn_arr.capacity() == DynamicArray.INIT_CAPACITY

for v in range(2, dyn_arr.capacity() + 1):
    dyn_arr.add(v)

assert dyn_arr.capacity() == DynamicArray.INIT_CAPACITY

dyn_arr.add(7)

assert dyn_arr.capacity() == DynamicArray.INIT_CAPACITY * DynamicArray.RESIZE_MULTIPLIER

for v in range(dyn_arr.size() + 1, dyn_arr.capacity() + 1):
    dyn_arr.add(v)