def setUp(self): self.MAX_TRIALS = 2 self.MAX_SIZE = 10 self.SIZE_INCREMENT = 4 self.autoAdaptiveStack = AutoAdaptiveStack(self.MAX_TRIALS, self.SIZE_INCREMENT, self.MAX_SIZE)
class AutoAdaptiveStackTest(unittest.TestCase): def setUp(self): self.autoStack3 = AutoAdaptiveStack(3, 3, 3) # Test __init__() def test_a_Init(self): self.assertEqual(self.autoStack3.max_trials, 3) self.assertEqual(self.autoStack3.size_increment, 3) self.assertEqual(self.autoStack3.trials, 0) # Test __init__() -> Push() def test_b_Push(self): oldMaxSize = self.autoStack3.max_size self.assertTrue(self.autoStack3.isEmpty()) self.autoStack3.push("test1") self.autoStack3.push("test2") self.autoStack3.push("test3") self.assertTrue(self.autoStack3.isFull()) sys.stdout = io.StringIO() for i in range(self.autoStack3.max_trials): self.assertEqual(i, self.autoStack3.trials) self.assertRaises(ValueError, self.autoStack3.push("test4")) sys.stdout = sys.__stdout__ self.autoStack3.push("test4") self.assertEqual(self.autoStack3.max_size, oldMaxSize + self.autoStack3.size_increment)
def testInit(self): for max_size in range(5, 10): for max_trials in range(5, 10): for size_increment in range(5, 10): stack = AutoAdaptiveStack(max_trials, size_increment, max_size) self.assertEqual(stack.max_trials, max_trials) self.assertEqual(stack.size_increment, size_increment) self.assertEqual(stack.max_size, max_size)
class testAutoAdaptiveStack(unittest.TestCase): def setUp(self): self.MAX_TRIALS = 2 self.MAX_SIZE = 10 self.SIZE_INCREMENT = 4 self.autoAdaptiveStack = AutoAdaptiveStack(self.MAX_TRIALS, self.SIZE_INCREMENT, self.MAX_SIZE) # CLass 1: Testing Node def test_04_initialisation_properly_done(self): self.assertEqual(self.autoAdaptiveStack.trials, 0) self.assertEqual(self.autoAdaptiveStack.size_increment, self.SIZE_INCREMENT) self.assertEqual(self.autoAdaptiveStack.max_trials, self.MAX_TRIALS) def test_04_should_increment_trials_when_Stack_is_full(self): for i in range(self.MAX_SIZE): self.autoAdaptiveStack.push(i) self.assertEqual(self.autoAdaptiveStack.trials, 0) self.autoAdaptiveStack.push(i) self.assertEqual(self.autoAdaptiveStack.trials, 1) def test_04_should_add_extra_space_when_full(self): self.assertEqual(self.autoAdaptiveStack.max_size, self.MAX_SIZE) for i in range(self.MAX_SIZE + 3): self.autoAdaptiveStack.push(i) self.assertEqual(self.autoAdaptiveStack.trials, 0) self.assertEqual(self.autoAdaptiveStack.max_size, self.MAX_SIZE + self.SIZE_INCREMENT)
def setUp(self): self.autoStack3 = AutoAdaptiveStack(3, 3, 3)
def testPushPop(self): for size in range(5, 10): for max_trials in range(5, 10): for size_increment in range(5, 10): stack = AutoAdaptiveStack(max_trials, size_increment, size) stackSize = 0 for i in range(1, size): stack.push(i) self.assertEqual(stack.check(), i) self.assertFalse(stack.isEmpty()) self.assertFalse(stack.isFull()) stackSize += 1 self.assertEqual(stack.size(), stackSize) stack.push("last") stackSize += 1 self.assertEqual(stack.check(), "last") self.assertFalse(stack.isEmpty()) self.assertTrue(stack.isFull()) self.assertEqual(stack.size(), size) for n in range(3): for i in range(max_trials - 1): stack.push("fail") self.assertEqual(stack.check(), "last") self.assertFalse(stack.isEmpty()) self.assertTrue(stack.isFull()) self.assertEqual(stack.size(), stackSize) stack.push("fail") self.assertEqual(stack.check(), "last") self.assertFalse(stack.isEmpty()) self.assertFalse(stack.isFull()) self.assertEqual(stack.size(), stackSize) for i in range(1, size_increment): stack.push(i) stackSize += 1 self.assertEqual(stack.check(), i) self.assertFalse(stack.isEmpty()) self.assertFalse(stack.isFull()) self.assertEqual(stack.size(), stackSize) stack.push("last") stackSize += 1 self.assertEqual(stack.check(), "last") self.assertFalse(stack.isEmpty()) self.assertTrue(stack.isFull()) self.assertEqual(stack.size(), stackSize) for n in range(3): self.assertEqual(stack.pop(), "last") stackSize -= 1 for i in range(size_increment - 1, 0, -1): self.assertEqual(stack.pop(), i) self.assertFalse(stack.isEmpty()) self.assertFalse(stack.isFull()) stackSize -= 1 self.assertEqual(stack.size(), stackSize) self.assertEqual(stack.pop(), "last") stackSize -= 1 for i in range(size - 1, 1, -1): self.assertEqual(stack.pop(), i) self.assertFalse(stack.isEmpty()) self.assertFalse(stack.isFull()) stackSize -= 1 self.assertEqual(stack.size(), stackSize) self.assertEqual(stack.pop(), 1) self.assertTrue(stack.isEmpty()) self.assertFalse(stack.isFull()) self.assertEqual(stack.size(), 0)
def testPushPop(self): for size in range(5, 10): for max_trials in range(5, 10): for size_increment in range(5, 10): queue_size = size_increment stack = AutoAdaptiveStack(max_trials, size_increment, queue_size, size) stackSize = 0 for i in range(1, size): stack.push(i) self.assertEqual(stack.check(), i) self.assertFalse(stack.isEmpty()) self.assertFalse(stack.isFull()) stackSize += 1 self.assertEqual(stack.size(), stackSize) stack.push("last") stackSize += 1 self.assertEqual(stack.check(), "last") self.assertFalse(stack.isEmpty()) self.assertTrue(stack.isFull()) self.assertEqual(stack.size(), size) for i in range(max_trials - 1): stack.push("queue" + str(i)) self.assertEqual(stack.check(), "last") self.assertFalse(stack.isEmpty()) self.assertTrue(stack.isFull()) self.assertEqual(stack.size(), stackSize) stack.push("lastQueue") max = 0 if queue_size >= max_trials: stackSize += max_trials self.assertEqual(stack.check(), "lastQueue") self.assertEqual(stack.pop(), "lastQueue") self.assertFalse(stack.isEmpty()) self.assertFalse(stack.isFull()) stackSize -= 1 self.assertEqual(stack.size(), stackSize) max = max_trials - 1 else: stackSize += queue_size self.assertFalse(stack.isEmpty()) self.assertTrue(stack.isFull()) self.assertEqual(stack.check(), "queue" + str(queue_size - 1)) self.assertEqual(stack.size(), stackSize) max = queue_size for i in range(max - 1, -1, -1): self.assertEqual(stack.check(), "queue" + str(i)) self.assertEqual(stack.pop(), "queue" + str(i)) self.assertFalse(stack.isEmpty()) self.assertFalse(stack.isFull()) stackSize -= 1 self.assertEqual(stack.size(), stackSize) self.assertEqual(stack.check(), "last") self.assertEqual(stack.pop(), "last") self.assertFalse(stack.isEmpty()) self.assertFalse(stack.isFull()) stackSize -= 1 self.assertEqual(stack.size(), stackSize) for i in range(size - 1, 0, -1): self.assertFalse(stack.isEmpty()) self.assertFalse(stack.isFull()) self.assertEqual(stack.check(), i) self.assertEqual(stack.pop(), i) stackSize -= 1 self.assertEqual(stack.size(), stackSize) self.assertRaises(ValueError, stack.check) self.assertRaises(ValueError, stack.pop) self.assertEqual(stack.size(), 0) self.assertTrue(stack.isEmpty()) self.assertFalse(stack.isFull())