public void Add_NegativesNumbers_ThrowError()
        {
            var numbers  = "1\n-2,-3";
            var exeption = Assert.Throws <Exception>(() => StringCalc.Add(numbers));

            Assert.AreEqual("negatives not allowed:-2 -3", exeption.Message);
        }
        public void When_input_is_numbers_output_sum(string numbers, int sum)
        {
            var romanNumeral = new StringCalc();
            var result       = romanNumeral.Add(numbers);

            Assert.Equal(sum, result);
        }
示例#3
0
        public void Add_negativeNumber_returnsException()
        {
            //arrange
            var sut = new StringCalc();

            //act

            //assert
            Assert.Throws <ArgumentException>(() => { sut.Add("-1\n2,-3"); }, "negatives not allowed");
        }
示例#4
0
        public void add_getsNegatives_throwsExeption()
        {
            //arrange
            string     input          = "-55,-11";
            StringCalc stringCalcTest = new StringCalc();

            //act
            var result = stringCalcTest.Add(input);
            //assert
        }
        public void SingleStringEqualsNumber()
        {
            //arrange
            var calculator = new StringCalc();
            //act
            int res = calculator.Add("2");

            //assert
            Assert.AreEqual(2, res);
        }
        public void EmptyStringEqualsZero()
        {
            //arrange
            var calculator = new StringCalc();
            //act
            int res = calculator.Add("");

            //assert
            Assert.AreEqual(0, res);
        }
示例#7
0
        public void Add_varSeparator_ShouldAcknowledgeIt()
        {
            //arrange
            var sut = new StringCalc();        //SUT - system under tests

            //act
            var result = sut.Add("//x\n1;x2");

            //assert
            Assert.AreEqual(3, result);
        }
示例#8
0
        public void Add_numberMoreThen1k_returnsTheirSum()
        {
            //arrange
            var sut = new StringCalc();        //SUT - system under tests

            //act
            var result = sut.Add("1000, 2");

            //assert
            Assert.AreEqual(2, result);
        }
示例#9
0
        public void Add_Over1kNumber_skipOVer1K()
        {
            //arrange
            var sut = new StringCalc();        //SUT - system under tests

            //act
            var result = sut.Add("999,5,1020");

            //assert
            Assert.AreEqual(1004, result);
        }
示例#10
0
        public void Add_oneInInput_returnOne()
        {
            //arrange
            var sut = new StringCalc();

            //act
            var result = sut.Add("1");

            //assert
            Assert.AreEqual(1, result);
        }
示例#11
0
        public void add_getsIntLargerThan1000_returnsSum()
        {
            //arrange
            string     input          = "1000,25";
            StringCalc stringCalcTest = new StringCalc();
            //act
            var result = stringCalcTest.Add(input);

            //assert
            Assert.AreEqual(25, result);
        }
示例#12
0
        public void Add_diffSeparators_returnsTheirSum()
        {
            //arrange
            var sut = new StringCalc();        //SUT - system under tests

            //act
            var result = sut.Add("//;\n1;2");

            //assert
            Assert.AreEqual(3, result);
        }
示例#13
0
        public void Add_singleNumberInput_returnNumber()
        {
            //arrange
            var sut = new StringCalc();

            //act
            var result = sut.Add("5");

            //assert
            Assert.AreEqual(5, result);
        }
示例#14
0
        public void Add_empty_input_returnZero()
        {
            //arrange
            var sut = new StringCalc();             //SUT - system under tests

            //act
            var result = sut.Add("");

            //assert
            Assert.AreEqual(0, result);
        }
示例#15
0
        public void Add_addDoubleSepratorWithManySpaceInBetween_returnsTheirSum()
        {
            //arrange
            var sut = new StringCalc();        //SUT - system under tests

            //act
            var result = sut.Add("1\n                          \n, 2,3");

            //assert
            Assert.AreEqual(6, result);
        }
示例#16
0
        public void Add_threeNumbers_returnsTheirSum()
        {
            //arrange
            var sut = new StringCalc();        //SUT - system under tests

            //act
            var result = sut.Add("25,1452,22");

            //assert
            Assert.AreEqual(47, result);
        }
示例#17
0
        public void Add_twoNumbersSeparatedByComma_returnsTheirSum()
        {
            //arrange
            var sut = new StringCalc();        //SUT - system under tests

            //act
            var result = sut.Add("1,2");

            //assert
            Assert.AreEqual(3, result);
        }
示例#18
0
        public void Add_fourNumbersDividedByComma_returnsTheirSum()
        {
            //arrange
            var sut = new StringCalc();        //SUT - system under tests

            //act
            var result = sut.Add("25,1452,22,134234234");

            //assert
            Assert.AreEqual(47, result);
        }
示例#19
0
        public void Add_addNumbersSeparatedByN_returnsTheirSum()
        {
            //arrange
            var sut = new StringCalc();        //SUT - system under tests

            //act
            var result = sut.Add("1\n2,3");

            //assert
            Assert.AreEqual(6, result);
        }
示例#20
0
        public void add_getsLongSeparator_shouldReturnSum()
        {
            //arrange
            string     input          = "//[xxx]\n1xxx2xxx3";
            StringCalc stringCalcTest = new StringCalc();
            //act
            var result = stringCalcTest.Add(input);

            //assert
            Assert.AreEqual(6, result);
        }
示例#21
0
        public void Add_allCharsDelimiters_returnsSumOfAllNumbers()
        {
            //arrange
            var sut = new StringCalc();        //SUT - system under tests

            //act
            var result = sut.Add("//[%][a]\n1%2a3");

            //assert
            Assert.AreEqual(6, result);
        }
示例#22
0
        public IActionResult Submit(string txtEvaluate)
        {
            StringCalc once = new StringCalc();

            WriteLog(txtEvaluate);
            string text = once.DoCalculation(txtEvaluate).ToString();

            WriteLog(text);
            Index();
            return(View("Index"));
        }
        public void NumberPlusNumberEqualsAnotherNumber()
        {
            //arrange
            var calculator = new StringCalc();

            //act
            calculator.Parse("3,2");
            int res = calculator.Add("3,2");

            //assert
            Assert.AreEqual(5, res);
        }
示例#24
0
        public void add_getsIntegersWithEscapeChar_returnsSum()
        {
            //arrange
            string     input          = "69\n44,77";
            StringCalc stringCalcTest = new StringCalc();

            //act
            var result = stringCalcTest.Add(input);

            //assert
            Assert.AreEqual(190, result);
        }
示例#25
0
        public void add_getsEmptyString_returnsSum()
        {
            //arrange
            string     input          = "69,44";
            StringCalc stringCalcTest = new StringCalc();

            //act
            var result = stringCalcTest.Add(input);

            //assert
            Assert.AreEqual(113, result);
        }
示例#26
0
        public async Task <IActionResult> OnPostAsync()
        {
            if (ModelState.IsValid)
            {
                Note.Host = "1.1.1.1";
                StringCalc Calc = new StringCalc();
                Note.Result = Calc.DoCalculation(Note.Expression).ToString();
                DateTime myDateTime = DateTime.Now;
                Note.CreatedDateTime = myDateTime;
                _context.History.Add(Note);
                await _context.SaveChangesAsync();

                return(RedirectToPage("Index"));
            }
            return(Page());
        }
示例#27
0
        public void TestMethod1()
        {
            var inputStrings = new List <InputParam>
            {
                new InputParam()
                {
                    ExprctedValue = 15, ActualInput = "10+5"
                },
                new InputParam()
                {
                    ExprctedValue = 5, ActualInput = "10-5"
                },
                new InputParam()
                {
                    ExprctedValue = 20, ActualInput = "5*4"
                },
                new InputParam()
                {
                    ExprctedValue = 10, ActualInput = "2,5*4"
                },
                new InputParam()
                {
                    ExprctedValue = 1, ActualInput = "9/9"
                },
                new InputParam()
                {
                    ExprctedValue = 5, ActualInput = "5-(10-2*5)"
                },
                new InputParam()
                {
                    ExprctedValue = 5, ActualInput = "5(10-2*5)"
                },
            };

            foreach (var inputString in inputStrings)
            {
                var testResult = new StringCalc(inputString.ActualInput);
                Assert.AreEqual(inputString.ExprctedValue, testResult.MathResult);
            }
        }
示例#28
0
 public void Add_ShouldReturn1For_1()
 {
     var calc = new StringCalc();
     Assert.Equal(1, calc.Add("1"));
 }
示例#29
0
 public void Add_ShouldReturn3For_1_newline_2()
 {
     var calc = new StringCalc();
     Assert.Equal(3, calc.Add("1\n2"));
 }
示例#30
0
 public void Add_ShouldSupportChangingDelimiter()
 {
     var calc = new StringCalc();
     Assert.Equal(3, calc.Add("//;\n1;2")); // "//[delimiter]\n[numbers]"
 }
示例#31
0
 public void Add_ShouldSupportMultipleMultiCharacterDelimiters()
 {
     var calc = new StringCalc();
     Assert.Equal(6, calc.Add("//[***][%%%]\n1***2%%%3")); // "//[delim1][delim2]\n[numbers]"
 }
示例#32
0
 public void Add_ShouldThrowExceptionOnNegative()
 {
     var calc = new StringCalc();
     var exception = Assert.Throws<ArgumentOutOfRangeException>(() => calc.Add("-1"));
     Assert.Equal("negatives not allowed: -1\r\nParameter name: input", exception.Message);
 }
示例#33
0
        public IActionResult Submit(PageData page, string action)
        {
            if (action == "Evaluate")
            {
                var calculation = new StringCalc();
                var note        = new History
                {
                    Expression = page.Expression
                };
                note.Result          = calculation.DoCalculation(note.Expression).ToString();
                note.Host            = Request.Host.ToString();
                note.CreatedDateTime = DateTime.Now;
                _context.Histories.Add(note);
                _context.SaveChanges();
                page.PageNumber = 0;
            }

            var notes = _context.Histories.ToList();

            if (action == "Search")
            {
                page.PreviousSearchExpression = page.NewSearchExpression;
                page.PreviousSearchHost       = page.NewSearchHost;
                notes           = SortedByDate(DoFilter(notes, page), page);
                page.Histories  = notes;
                page.PageNumber = 0;
                GetAnswerFilter(page);
                return(View("Index", page));
            }

            if (action == "Previous")
            {
                if (page.PageNumber <= 0)
                {
                    page.PageNumber = 0;
                    page.Histories  = SortedByDate(DoFilter(notes, page).ToList(), page);;
                    GetAnswerFilter(page);
                    return(View("Index", page));
                }
                else
                {
                    --page.PageNumber;
                    page.Histories = SortedByDate(DoFilter(notes, page).ToList(), page);;
                    GetAnswerFilter(page);
                    return(View("Index", page));
                }
            }

            if (action == "Next")
            {
                if (page.PageNumber >= page.TotalPages)
                {
                    page.PageNumber = page.TotalPages;
                    page.Histories  = SortedByDate(DoFilter(notes, page).ToList(), page);
                    GetAnswerFilter(page);
                    return(View("Index", page));
                }
                else
                {
                    ++page.PageNumber;
                    page.Histories = SortedByDate(DoFilter(notes, page).ToList(), page);
                    GetAnswerFilter(page);
                    return(View("Index", page));
                }
            }

            page.Histories = SortedByDate(DoFilter(notes, page).ToList(), page);
            return(View("Index", page));
        }
示例#34
0
 public void Add_ShouldReturn0ForEmptyString()
 {
     var calc = new StringCalc();
     Assert.Equal(0, calc.Add(string.Empty));
 }
 public void Setup()
 {
     _stringCalc = new StringCalc();
 }
示例#36
0
 public void Add_ShouldIgnoreNumbersGreaterThan1000()
 {
     var calc = new StringCalc();
     Assert.Equal(2, calc.Add("2,1001"));
 }
示例#37
0
 public void Setup()
 {
     _calc = new StringCalc();
 }
 public void Add_Numbers_ReturnSum(int expected, string numbers)
 {
     Assert.AreEqual(expected, StringCalc.Add(numbers));
 }