def testUnionTwoStacks(self): for i in range(5): for j in range(5): stack1 = Stack(20) for k in range(10): stack1.push(k+i*100) stack2 = Stack(20) for k in range(10): stack2.push(k+j*1000) resultat = Calculator.union(stack1, stack2) self.assertIsInstance(resultat, Stack) self.assertEqual(resultat.max_size, stack1.max_size + stack2.max_size) self.assertEqual(resultat.size(), stack1.size() + stack2.size()) for k in range(9, -1, -1): self.assertEqual(resultat.pop(), k+j*1000) for k in range(9, -1, -1): self.assertEqual(resultat.pop(), k+i*100)
def test_c_UnionStack(self): stack1 = Stack(3) stack2 = Stack(3) numbers = [1, 2, 3, 4, 5, 6] numbersstack1 = [1, 2, 3] numbersstack2 = [4, 5, 6] for i in numbersstack1: stack1.push(i) for i in numbersstack2: stack2.push(i) unitedStack = Calculator.union(stack1, stack2) numbersContained = 0 for i in numbers: number = unitedStack.pop().value if number in numbers: numbersContained += 1 numbers.remove(number) self.assertEqual(numbersContained, len(numbers)) self.assertEqual(unitedStack.max_size, stack1.max_size + stack2.max_size)
def test_04_partiellement_plein_size_isEmpty_should_be_false_isFull_shouldBeFalse( self): stack = Stack(1) stack.push(1) self.assertEqual(stack.size(), 1) self.assertFalse(stack.isEmpty()) self.assertTrue(stack.isFull())
def test_04_plein_puch__size_isEmpty_should_be_true_isFull_shouldBeFalse(self): stack = Stack(1) stack.push(1) self.assertEqual(stack.size(), 1) self.assertFalse(stack.isEmpty()) self.assertTrue(stack.isFull()) stack.pop() self.assertTrue(stack.isEmpty()) self.assertFalse(stack.isFull())
def test_05_test_Visit_Log_Stack(self): stack = Stack(6) for i in range(5): stack.push(i) stack.accept(ScreenPrinter("test")) display_message = "\n-------\n" expected = 'test\n' + display_message + ' 4 ' + display_message + ' 3 ' + display_message + ' 2 ' + display_message + ' 1 ' + display_message + ' 0 ' + display_message + '\n' self.assertEqual(self.capturedOutput.getvalue(), expected)
def test_05_test_Visit_Log_Stack(self): stack = Stack(6) for i in range(5): stack.push(i) stack.accept(FilePrinter("./ThisIsATestFile.txt","")) with open('./ThisIsATestFile.txt', 'r') as myfile: result=myfile.read(); separator = "\n-------\n"; expected = separator+' 4 '+separator+' 3 '+separator+' 2 '+separator+' 1 '+separator+' 0 '+separator; self.assertEqual(result, expected);
def setUp(self): self.MAX_SIZE1 = 10 self.MAX_SIZE2 = 5 self.stack = Stack(self.MAX_SIZE1) self.stack.push(15) self.stack.push(1) self.stack.push(5) self.queue = Queue(self.MAX_SIZE2) self.queue.enqueue(16) self.queue.enqueue(13) self.queue.enqueue(46)
def convert_int_to_bin(dec_num): s = Stack() while dec_num > 0: rem = dec_num % 2 s.push(rem) dec_num = dec_num // 2 binary = "" while len(s.get_stack()) > 0: binary = binary + str(s.pop()) return binary
def testVisitLogStack(self): stack = Stack(10) for i in range(5): stack.push(i) stack.accept(ScreenPrinter("")) s = "\n-------\n" expected = '\n' + s + ' 4 ' + s + ' 3 ' + s + ' 2 ' + s + ' 1 ' + s + ' 0 ' + s + '\n' self.assertEqual(self.capturedOutput.getvalue(), expected)
def testVisitLogStack(self): stack = Stack(10) for i in range(5): stack.push(i) stack.accept(FilePrinter("./test.txt", "")) with open('./test.txt', 'r') as myfile: result = myfile.read() s = "\n-------\n" expected = s + ' 4 ' + s + ' 3 ' + s + ' 2 ' + s + ' 1 ' + s + ' 0 ' + s self.assertEqual(result, expected)
def isBalancedSet(bracket_set): s = Stack() for bracket in bracket_set: cb = opening_brackets.get(bracket) ob = closing_brackets.get(bracket) if cb is not None: s.push(bracket) elif ob is not None: pb = s.pop() if ob == pb: continue else: return -1 else: return None return -1 if len(s.get_stack()) > 0 else 1
def testUnionStackAndQueue(self): stacks = [] for n in range(5): stack = Stack(20) for i in range(10): stack.push(i+n*100) stacks.append(stack) queues = [] for n in range(5): queue = Queue(20) for i in range(10): queue.enqueue(i+n*1000) queues.append(queue) for stack in stacks: for queue in queues: resultat = Calculator.union(stack, queue) self.assertIsInstance(resultat, LinkedList) self.assertNotIsInstance(resultat, Stack) self.assertNotIsInstance(resultat, Queue) self.assertEqual(resultat.size(), stack.size() + queue.size()) noeud = stack.first while noeud.next: self.assertTrue(contient(resultat, noeud.value)) noeud = noeud.next noeud = queue.first while noeud.next: self.assertTrue(contient(resultat, noeud.value)) noeud = noeud.next
def testPushPop(self): for size in range(5, 10): stack = Stack(size) for i in range(1, size): stack.push(i) self.assertEqual(stack.size(), i) self.assertEqual(stack.check(), i) self.assertFalse(stack.isEmpty()) self.assertFalse(stack.isFull()) stack.push("last") self.assertEqual(stack.size(), size) self.assertEqual(stack.check(), "last") self.assertFalse(stack.isEmpty()) self.assertTrue(stack.isFull()) for i in range(10): self.assertRaises(ValueError, stack.push, "fail") self.assertEqual(stack.size(), size) self.assertEqual(stack.check(), "last") self.assertFalse(stack.isEmpty()) self.assertTrue(stack.isFull()) self.assertEqual(stack.pop(), "last") for i in range(size - 1, 1, -1): self.assertEqual(stack.pop(), i) self.assertFalse(stack.isEmpty()) self.assertFalse(stack.isFull()) self.assertEqual(stack.pop(), 1) self.assertTrue(stack.isEmpty()) self.assertFalse(stack.isFull()) self.assertRaises(ValueError, stack.pop)
def test_d_UnionDifferentTypes(self): self.assertRaises(ValueError, Calculator.union, Stack(3), 3)
def setUp(self): self.MAX_SIZE = 10 self.stack = Stack(self.MAX_SIZE)
def testInvalidUnion(self): for obj in [LinkedList(), Stack(5), Queue(5)]: for invalid in [1, "fail", -3.4, Node(1)]: self.assertRaises(ValueError, Calculator.union, obj, invalid)
""" Question Reverse a string using stack """ from app import Stack def reverse_string(stack, input_str): for i in range(len(input_str)): stack.push(input_str[i]) rev_str = "" while not stack.is_empty(): rev_str += stack.pop() return rev_str stack = Stack() input_str = "nitiN morf olleH" print(reverse_string(stack, input_str))
def setUp(self): self.stack = Stack(3)
def test_04_should_raise_two_different_types(self): self.assertRaises(ValueError, Calculator.union, Stack( self.MAX_SIZE1), Queue(self.MAX_SIZE1))
def test_04_should_raise_when_one_stack_is_empty(self): self.assertRaises(ValueError, Calculator.union, self.stack, Stack(self.MAX_SIZE1))
def test_04_empty_node_points_to_None(self): self.assertRaises(ValueError, Calculator.union, Stack( self.MAX_SIZE1), Queue(self.MAX_SIZE1))
def setUp(self): self.screenPrinter = ScreenPrinter("test") self.linkedList = LinkedList() self.stack = Stack(1) self.queue = Queue(1)
def setUp(self): self.printer = FilePrinter("testFile.txt", "testName") self.linkedList = LinkedList() self.stack = Stack(3) self.queue = Queue(3)
def testInit(self): for size in range(5, 10): stack = Stack(size) self.assertEqual(stack.max_size, size) self.assertFalse(stack.isFull()) self.assertRaises(ValueError, stack.pop)