コード例 #1
0
        public void GetValuesWithTrios_should_return_all_values_that_has_exactly_a_trio(int[] expected, int[] values)
        {
            var result = ServiceToCaculatePointsHelper.GetValuesWithTrios(values, true).OrderBy(v => v).ToArray();

            expected = expected.OrderBy(v => v).ToArray();

            Assert.Equal(expected.Length, result.Length);
            for (var i = 0; i < expected.Length; i++)
            {
                Assert.Equal(expected[i], result[i]);
            }
        }
コード例 #2
0
        public void GetValuesWithFour_should_return_all_values_that_has_at_least_a_four_equal_numbers(int[] expected, int[] values)
        {
            var result = ServiceToCaculatePointsHelper.GetValuesWithFour(values).OrderBy(v => v).ToArray();

            expected = expected.OrderBy(v => v).ToArray();

            Assert.Equal(expected.Length, result.Length);
            for (var i = 0; i < expected.Length; i++)
            {
                Assert.Equal(expected[i], result[i]);
            }
        }
        public Category CalculatePointsToCategory(IEnumerable <int> values)
        {
            var category = new Category {
                Id          = index,
                Name        = "Três",
                Points      = ServiceToCaculatePointsHelper.CalculatePoints(values, index),
                Rule        = $"Haver pelo menos 1 dado com valor {index} no rolamento.",
                Calculation = $"Soma de todos os dados de valor {index}."
            };

            return(category);
        }
        private static int CalculatePoints(IEnumerable <int> values)
        {
            var valuesWithTrios = ServiceToCaculatePointsHelper.GetValuesWithTrios(values).ToList();

            if (valuesWithTrios.Any())
            {
                var value = valuesWithTrios.Max();
                return(value * 3);
            }

            return(0);
        }
        private static int CalculatePoints(IEnumerable <int> values)
        {
            var valuesWithPairs = ServiceToCaculatePointsHelper.GetValuesWithPairs(values);

            if (!valuesWithPairs.Any())
            {
                return(0);
            }

            var value = valuesWithPairs.Max();

            return(value * 2);
        }
        private static int CalculatePoints(IEnumerable <int> values)
        {
            var valuesWithPairs = ServiceToCaculatePointsHelper.GetValuesWithPairs(values).ToList();

            if (valuesWithPairs.Count() > 1)
            {
                var value1 = valuesWithPairs.Max();
                valuesWithPairs.Remove(value1);
                value1 = value1 * 2;
                var value2 = valuesWithPairs.Max();
                value2 = value2 * 2;
                return(value1 + value2);
            }

            return(0);
        }
        private static int CalculatePoints(IEnumerable <int> values)
        {
            var valuesWithTrios = ServiceToCaculatePointsHelper.GetValuesWithTrios(values, true).ToList();
            var valuesWithPair  = ServiceToCaculatePointsHelper.GetValuesWithPairs(values, true).ToList();

            if (valuesWithTrios.Any() && valuesWithPair.Any())
            {
                var valueOfTrio = valuesWithTrios.Max();
                valueOfTrio = valueOfTrio * 3;
                var valueOfPair = valuesWithPair.Max();
                valueOfPair = valueOfPair * 2;
                return(valueOfTrio + valueOfPair);
            }

            return(0);
        }
コード例 #8
0
        public void CalculatePointsToCategory_should_return_the_expected_values(int expected, int[] values, int baseValue)
        {
            var result = ServiceToCaculatePointsHelper.CalculatePoints(values, baseValue);

            Assert.Equal(expected, result);
        }