public void GivenTheFirstNumberIs(int number)
        {
            //TODO: implement arrange (precondition) logic
            // For storing and retrieving scenario-specific data see https://go.specflow.org/doc-sharingdata
            // To use the multiline text or the table argument of the scenario,
            // additional string/Table parameters can be defined on the step definition
            // method.
            answerNode n1 = new answerNode(number, false);

            _scenarioContext.Add("num1", number);
            _scenarioContext.Add("testTempAns", n1);
        }
        public void ThenTheResultShouldBe(object result)
        {
            answerNode ans = _scenarioContext.Get <answerNode>("result");

            //if the result was supposed to be null, check
            if (result == null)
            {
                //check to see if the answer was null
                bool isNull = ans.getIsNull();
                isNull.Should().Be((bool)result);
            }
            else
            {
                int answer = ans.getNumber();
                answer.Should().Be((int)result);
            }
        }
        public void WhenOperation_IsDoneToTheNumber(char oper, int n2)
        {
            //get the previous answer
            answerNode tempAns = _scenarioContext.Get <answerNode>("testTempAns");

            if (tempAns.getIsNull())
            {
                //then the previous answer was null, and the only thing I can do about it is to continue to make the answer null.
                return;
            }
            //tempAns must be an int, because it was not null.
            // proceed to process the number and perform a calculator operation.
            else
            {
                int tAns = tempAns.getNumber();

                answerNode ans = new answerNode(); // to hold temporary answer.

                //Determine which operator it is.
                if (oper == '*')
                {
                    ans.setNumber(tAns * n2, false); //set the number as the product, false because does not need to be set to null.

                    _scenarioContext.Set <answerNode>(ans, "testTempAns");
                }
                if (oper == '/')
                {
                    //We are not allowed to divide by zero!!!!!!!!! Return null
                    if (n2 == 0)
                    {
                        //set the answer to null!!!!!!!!!
                        ans.setNumber(n2, true); // pass n2 as the number we were trying to divide by (zero).
                    }
                    else
                    {
                        ans.setNumber(tAns / n2, false);
                        _scenarioContext.Set <answerNode>(ans, "testTempAns");
                    }
                }
                if (oper == '+')
                {
                    ans.setNumber(tAns + n2, false);
                    _scenarioContext.Set <answerNode>(ans, "testTempAns");
                }
                if (oper == '-')
                {
                    ans.setNumber(tAns - n2, false);
                    _scenarioContext.Set <answerNode>(ans, "testTempAns");
                }
                if (oper == '%')
                {
                    //We are not allowed to divide by zero!!!!!!!!! Return null
                    if (n2 == 0)
                    {
                        //set the answer to null!!!!!!!!!
                        ans.setNumber(n2, true); // pass n2 as the number we were trying to modulo by (zero).
                    }
                    else
                    {
                        ans.setNumber(tAns % n2, false);
                        _scenarioContext.Set <answerNode>(ans, "testTempAns");
                    }
                }

                if (_scenarioContext.ContainsKey("result"))
                {
                    _scenarioContext.Set <answerNode>(ans, "result");
                }
                else
                {
                    _scenarioContext.Add("result", ans);
                }
            }
        }