public void should_calculate_sumproduct_as_expected()
        {
            var rangeArgumentA = new RangeArgument()
            {
                Values = new List <decimal>()
                {
                    1,
                    2,
                    3
                }
            };

            var rangeArgumentB = new RangeArgument()
            {
                Values = new List <decimal>()
                {
                    0.5m,
                    2,
                    3
                }
            };

            List <RangeArgument> parameters = new List <RangeArgument>()
            {
                rangeArgumentA,
                rangeArgumentB
            };

            var result         = new SumProductFunction().Calculate(parameters);
            var expectedResult = 2.4545454545454545454545454545m;

            Assert.Equal(expectedResult, result);
        }
        public void should_calculate_sumproduct_as_expected_when_values_are_invalid()
        {
            var rangeArgumentA = new RangeArgument()
            {
                Values = new List <decimal>()
                {
                    1,
                    2,
                    3
                }
            };

            var rangeArgumentB = new RangeArgument()
            {
                Values = new List <decimal>()
                {
                    1,
                    -1,
                    0
                }
            };

            List <RangeArgument> parameters = new List <RangeArgument>()
            {
                rangeArgumentA,
                rangeArgumentB
            };

            Assert.Throws <InvalidWeightException>(() => new SumProductFunction().Calculate(parameters));
        }
        public void should_calculate_sumproduct_throws_exception_when_parameters_lists_arent_matching()
        {
            var rangeArgumentA = new RangeArgument()
            {
                Values = new List <decimal>()
                {
                    1
                }
            };

            var rangeArgumentB = new RangeArgument()
            {
                Values = new List <decimal>()
            };

            List <RangeArgument> parameters = new List <RangeArgument>()
            {
                rangeArgumentA,
                rangeArgumentB
            };

            Assert.Throws <InvalidParameterException>(() => new SumProductFunction().Calculate(parameters));
        }