示例#1
0
class TestStack(unittest.TestCase):
    def setUp(self):
        self.data = ["d1", "d2"]
        self.s1 = Stack()
        self.s2 = Stack(StackNode(self.data[0]))
        self.s3 = Stack()
        for datum in self.data:
            self.s3.push(datum)

    def test_Stack__init__(self):
        self.assertEqual(self.s1.current, None)
        self.assertEqual(self.s1.len, 0)
        self.assertEqual(repr(self.s2.current), self.data[0])
        self.assertEqual(self.s2.len, 1)

    def test_Stack__iter__(self):
        for n in self.s1:
            self.assertTrue(False)
        for s in [self.s2]:  #, self.s3]:
            for n in s:
                self.assertTrue(repr(n) in self.data)

    def test_Stack_push(self):
        len1 = len(self.s1)
        self.s1.push("foo")
        self.assertTrue(len(self.s1) - len1 == 1)
        self.assertTrue(self.s1.peek() == "foo")
        len2 = len(self.s2)
        self.s2.push("bar")
        self.assertTrue(len(self.s2) - len2 == 1)
        self.assertTrue(self.s2.peek() == "bar")

    def test_Stack_pop(self):
        self.assertTrue(self.s3.pop() == self.data[1])
        self.assertTrue(self.s3.pop() == self.data[0])

    def test_Stack_peek(self):
        self.assertTrue(self.s3.peek() == self.data[1])
        self.assertTrue(self.s3.peek() == self.data[1])

    def test_Stack_isEmpty(self):
        self.assertTrue(self.s1.isEmpty())
        self.assertFalse(self.s2.isEmpty())

    def test_Stack__len__(self):
        self.assertEquals(len(self.s1), 0)
        self.assertEquals(len(self.s2), 1)
        self.assertEquals(len(self.s3), 2)

    def test_Stack__repr__(self):
        self.assertEquals(repr(self.s1), '')
        self.assertEquals(repr(self.s2), 'd1')
        self.assertEquals(repr(self.s3), 'd2 <- d1')
示例#2
0
 def test_empty(self):
     thisStack = Stack()
     thisStack.push(1)
     thisStack.pop()
     assert(thisStack.isEmpty())