public void Push(BasicBlock block) { if (OnStack.Add(block)) { Stack.Push(block); } }
public void InfixToPrefix_ConvertsAnInfixExpressionToPrefixExpression( string infixExp , string expectedExp) { var actualOnStack = new OnStack <char>(); var actualExp = actualOnStack.InfixToPrefix(infixExp); Assert.True(expectedExp == actualExp); }
public bool TryPop(out BasicBlock block) { block = null; if (Stack.Count < 1) { return(false); } block = Stack.Pop(); OnStack.Remove(block); return(true); }
public void ReverseUsingRecursion_ReversesStackUsingRecursion( string actualStr , string expectedStr) { var actualOnStack = new OnStack <string>(actualStr.Split(',')); var expectedOnStack = new OnStack <string>(expectedStr.Split(',')); actualOnStack.ReverseUsingRecursion(); AssertTrueExpectedOnStackAndActualOnStack <string>(expectedOnStack, actualOnStack); }
public void InfixToPostfix_ThrowsArgumentNullException_WhenInfixExpressionDoestNotContainsAnyArithmeticOperator( string inputExp) { var expectedEx = new ArgumentException(Message.OnStack.ArithmeticOperatorNotFound); var actualOnStack = new OnStack <char>(); var actualEx = Assert.Throws <ArgumentException>(() => actualOnStack.InfixToPostfix(inputExp)); Assert.True(expectedEx.ParamName == actualEx.ParamName); Assert.True(expectedEx.Message == actualEx.Message); }
public void InfixToPostfix_ThrowsArgumentNullException_WhenInfixExpressionIsNullOrEmpty( string inputExp) { var expectedEx = new ArgumentNullException(nameof(inputExp)); var actualOnStack = new OnStack <char>(); var actualEx = Assert.Throws <ArgumentNullException>(() => actualOnStack.InfixToPostfix(inputExp)); Assert.True(expectedEx.ParamName == actualEx.ParamName); Assert.True(expectedEx.Message == actualEx.Message); }
public void InsertAtBottomUsingRecursion_InsertsItemAtTheBottomOfTheStack_ForCharStack( string actualStr , string expectedStr) { var actualOnStack = new OnStack <char>(); var expectedOnStack = new OnStack <char>(expectedStr.ToCharArray()); for (var i = 0; i < actualStr.Length; i++) { actualOnStack.InsertAtBottomUsingRecursion(actualStr[i]); } AssertTrueElementsOfExpectedStackAndActualStack <char>(expectedOnStack.Stack, actualOnStack.Stack); AssertTrueZeroAndActualStackCount(actualOnStack.Stack); }
public void Stack(Bullet newBullet) { //Check maxed stacked items if (StackedItems < stackLimit) { BulletNode newNode = new BulletNode(newBullet); newNode.nextNode = top; top = newNode; StackedItems++; OnStack?.Invoke(top.storedBullet.bulletNumber); } }
private void AssertTrueExpectedOnStackAndActualOnStack <T>(OnStack <T> expected, OnStack <T> actual) { AssertTrueElementsOfExpectedStackAndActualStack <T>(expected.Stack, actual.Stack); AssertTrueCountOfExpectedStackAndActualStack <T>(expected.Stack, actual.Stack); }