def test_equal_ok(self): a = Stack() self.assertEqual(a, self.empty_stack) self.assertNotEqual(a, self.unit_stack) self.assertNotEqual(a, self.some_stack) a.push(4) self.assertNotEqual(a, self.empty_stack) self.assertEqual(a, self.unit_stack) self.assertNotEqual(a, self.some_stack) a.pop() a.push(3) a.push(1) a.push(2) self.assertNotEqual(a, self.empty_stack) self.assertNotEqual(a, self.unit_stack) self.assertEqual(a, self.some_stack)
def setUp(self): # [] self.empty_stack = Stack() # [4] self.unit_stack = Stack() self.unit_stack.push(4) # [3, 1, 2] self.some_stack = Stack() self.some_stack.push(3) self.some_stack.push(1) self.some_stack.push(2)
class TestStackMethods(unittest.TestCase): def setUp(self): # [] self.empty_stack = Stack() # [4] self.unit_stack = Stack() self.unit_stack.push(4) # [3, 1, 2] self.some_stack = Stack() self.some_stack.push(3) self.some_stack.push(1) self.some_stack.push(2) def test_size_ok(self): self.assertEqual(self.empty_stack.size(), 0) self.assertEqual(len(self.empty_stack), 0) self.assertEqual(self.unit_stack.size(), 1) self.assertEqual(len(self.unit_stack), 1) self.assertEqual(self.some_stack.size(), 3) self.assertEqual(len(self.some_stack), 3) def test_is_empty_ok(self): self.assertTrue(self.empty_stack.is_empty()) self.assertFalse(self.unit_stack.is_empty()) self.assertFalse(self.some_stack.is_empty()) def test_pop_raises(self): with self.assertRaises(ValueError): self.empty_stack.pop() self.unit_stack.pop() with self.assertRaises(ValueError): self.unit_stack.pop() self.some_stack.pop() self.some_stack.pop() self.some_stack.pop() with self.assertRaises(ValueError): self.some_stack.pop() def test_pop_ok(self): self.assertEqual(4, self.unit_stack.pop()) self.assertEqual(0, self.unit_stack.size()) self.assertEqual(2, self.some_stack.pop()) self.assertEqual(2, self.some_stack.size()) self.assertEqual(1, self.some_stack.pop()) self.assertEqual(1, self.some_stack.size()) self.assertEqual(3, self.some_stack.pop()) self.assertEqual(0, self.some_stack.size()) def test_peek_raises(self): with self.assertRaises(ValueError): self.empty_stack.peek() def test_peek_ok(self): self.assertEqual(4, self.unit_stack.peek()) self.assertEqual(2, self.some_stack.peek()) def test_write_raises(self): with self.assertRaises(ValueError): self.empty_stack.write(4) def test_write_ok(self): self.unit_stack.write(-1) self.assertEqual(-1, self.unit_stack.peek()) self.some_stack.write(-1) self.assertEqual(-1, self.some_stack.peek()) def test_contains_ok(self): self.assertTrue(self.unit_stack.contains(4)) self.assertTrue(4 in self.unit_stack) self.assertTrue(self.some_stack.contains(1)) self.assertTrue(1 in self.some_stack) self.assertTrue(self.some_stack.contains(2)) self.assertTrue(2 in self.some_stack) self.assertTrue(self.some_stack.contains(3)) self.assertTrue(3 in self.some_stack) def test_clear_ok(self): self.empty_stack.clear() self.assertTrue(self.empty_stack.is_empty()) self.unit_stack.clear() self.assertTrue(self.unit_stack.is_empty()) self.some_stack.clear() self.assertTrue(self.some_stack.is_empty()) def test_equal_ok(self): a = Stack() self.assertEqual(a, self.empty_stack) self.assertNotEqual(a, self.unit_stack) self.assertNotEqual(a, self.some_stack) a.push(4) self.assertNotEqual(a, self.empty_stack) self.assertEqual(a, self.unit_stack) self.assertNotEqual(a, self.some_stack) a.pop() a.push(3) a.push(1) a.push(2) self.assertNotEqual(a, self.empty_stack) self.assertNotEqual(a, self.unit_stack) self.assertEqual(a, self.some_stack) def test_equal_same_stack_ok(self): self.assertEqual(self.empty_stack, self.empty_stack) self.assertEqual(self.unit_stack, self.unit_stack) self.assertEqual(self.some_stack, self.some_stack) def test_copy_ok(self): a = self.empty_stack.copy() self.assertEqual(a.size(), 0) a = self.unit_stack.copy() self.assertEqual(a.size(), 1) self.assertEqual(a.pop(), 4) a = self.some_stack.copy() self.assertEqual(a.size(), 3) self.assertEqual(a.pop(), 2) self.assertEqual(a.pop(), 1) self.assertEqual(a.pop(), 3) def test_copy_no_overwrite_ok(self): a = self.empty_stack.copy() a.push(4) self.assertNotEqual(a.size(), self.empty_stack.size()) a = self.unit_stack.copy() a.write(-1) self.assertNotEqual(a.peek(), self.some_stack.peek()) a = self.some_stack.copy() a.write(-1) self.assertNotEqual(a.peek(), self.some_stack.peek())