예제 #1
0
 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)
예제 #2
0
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)
예제 #3
0
    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)
예제 #4
0
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)
예제 #5
0
 def setUp(self):
     self.autoStack3 = AutoAdaptiveStack(3, 3, 3)
예제 #6
0
    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)
예제 #7
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())