Ejemplo n.º 1
0
        public void ThrowsOnPairsInCaseOfOverflowSum()
        {
            var inputCollection = new List <int> {
                1, 7, 2, int.MaxValue
            };
            var x = 4;

            Assert.Catch <ArgumentException>(() => NumberTool.MatchSumOfPairs(inputCollection, x));
        }
Ejemplo n.º 2
0
        public void ReturnsEmptyCollectionIfInputCollectionIsEmpty()
        {
            var inputCollection = new List <int>();
            var x = 20;

            var outputCollection = NumberTool.MatchSumOfPairs(inputCollection, x);

            CollectionAssert.IsEmpty(outputCollection);
        }
Ejemplo n.º 3
0
        public void ReturnsEmptyCollectionOfPairsIfNoMatchSum()
        {
            var inputCollection = new List <int> {
                1, 7, 8, 15
            };
            var x = 20;

            var outputCollection = NumberTool.MatchSumOfPairs(inputCollection, x);

            CollectionAssert.IsEmpty(outputCollection);
        }
Ejemplo n.º 4
0
        public void ReturnsOnePairIfALotOfTheSameMatchSum()
        {
            var inputCollection = new List <int> {
                1, 1, 1, 1, 1
            };
            var x = 2;

            var outputCollection = NumberTool.MatchSumOfPairs(inputCollection, x);

            CollectionAssert.IsNotEmpty(outputCollection);
            Assert.IsTrue(outputCollection.Count() == 1);
            Assert.AreEqual(x, outputCollection.Single().Value1 + outputCollection.Single().Value2);
        }
Ejemplo n.º 5
0
        public void ReturnsThreePairsIfThreeMatchSum()
        {
            var inputCollection = new List <int> {
                1, 7, 2, 6, 4
            };
            var x = 8;

            var outputCollection = NumberTool.MatchSumOfPairs(inputCollection, x);

            CollectionAssert.IsNotEmpty(outputCollection);
            Assert.IsTrue(outputCollection.Count() == 2);
            Assert.IsTrue(outputCollection.All(p => p.Value1 + p.Value2 == x));
        }
Ejemplo n.º 6
0
        /// <summary>
        /// Runs application
        /// </summary>
        internal void Run()
        {
            _userInteraction.DisplayInfo("This application displays pairs from an imput list. Sum of these pairs equal specific value X");
            _userInteraction.DisplayInfo(string.Empty);

            _userInteraction.DisplayInfo("Enter an input list of numbers (Int32) separated by space ' ':");
            _userInteraction.DisplayInfo("Example: 1 3 5 6");
            var line = _userInteraction.ReadUserInput();

            if (string.IsNullOrEmpty(line))
            {
                _userInteraction.DisplayInfo("The line is empty.");
                return;
            }

            var stringList = line.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
            IEnumerable <int> numberList;

            try
            {
                numberList = ConvertToIntArray(stringList);
            }
            catch (ArgumentException ex)
            {
                _userInteraction.DisplayInfo(ex.Message);
                return;
            }

            _userInteraction.DisplayInfo("Enter X - sum of pair:");
            line = _userInteraction.ReadUserInput();
            if (string.IsNullOrEmpty(line))
            {
                _userInteraction.DisplayInfo("The line is empty.");
                return;
            }

            int x;

            if (!int.TryParse(line, out x))
            {
                _userInteraction.DisplayInfo("The X is invalid.");
                return;
            }

            var pairs = NumberTool.MatchSumOfPairs(numberList, x);

            DisplayPairs(pairs);
        }
Ejemplo n.º 7
0
        public void ThrowsNullExceptionIfInputCollectionIsNull()
        {
            var x = 8;

            Assert.Catch <ArgumentNullException>(() => NumberTool.MatchSumOfPairs(null, x));
        }