コード例 #1
0
        public void Input()
        {
            var inputs = new BaseInputsEntity
            {
                InputValue = new List <decimal>
                {
                    3,
                    4,
                    new decimal(3.5),
                    5,
                    new decimal(3.5),
                    4,
                    5,
                    new decimal(5.5),
                    4,
                    5
                }
            };

            var resultado = new MedidasTendenciaApp().Build(inputs);

            Assert.IsTrue(resultado.MedidasTendenciaEntity.Media == new decimal(4.25));
            Assert.IsTrue(resultado.MedidasTendenciaEntity.Mediana == 4);
            Assert.IsTrue(resultado.MedidasTendenciaEntity.Moda[0] == 4 && resultado.MedidasTendenciaEntity.Moda[1] == 5);
        }
コード例 #2
0
        public VariavelDiscretaContainerEntity Build(BaseInputsEntity baseInputs)
        {
            var f                     = new List <decimal>();
            var fePorcentList         = new List <decimal>();
            var listaVariavelDiscreta = new List <VariavelDiscretaEntity>();



            var media       = MathCoreApp.MediaComum(baseInputs.InputValue);
            var agrupamento = new AgrupamentoApp().Build(baseInputs.Rol);

            foreach (var item in agrupamento)
            {
                var fePorcent = MathCoreApp.Porcentagem(item.Quantidade, agrupamento.Select(q => q.Quantidade).Sum());

                f.Add(item.Quantidade);
                fePorcentList.Add(fePorcent);

                listaVariavelDiscreta.Add(new VariavelDiscretaEntity
                {
                    XI         = item.XI,
                    FI         = item.Quantidade,
                    FEPorcent  = Math.Round(fePorcent, 2),
                    F          = f.Sum(),
                    FPorcent   = fePorcentList.Sum(),
                    XIFI       = item.XI * item.Quantidade,
                    XIFIQuadFI = PreencherXIFIQUADFI(item.XI, media, item.Quantidade),
                });
            }

            var medidasTendenciaApp = new MedidasTendenciaApp().Calcular(baseInputs.InputValue);

            var variancia = Variancia(listaVariavelDiscreta.Select(q => q.XI).ToList(), listaVariavelDiscreta.Select(q => q.FI).ToList(), media, baseInputs.Amostra);
            var dp        = MathCoreApp.RaizQuadrada(variancia);
            var cv        = Math.Round((decimal)((dp / media)) * 100, 2);

            var medidasDispersaoApp = new MedidasDispersaoEntity
            {
                Variancia = variancia,
                DP        = dp,
                CV        = cv
            };

            return(new VariavelDiscretaContainerEntity
            {
                InputValue = baseInputs.InputValue,
                Rol = baseInputs.Rol,
                VariavelDiscretaEntity = listaVariavelDiscreta,
                MedidasDispersaoEntity = medidasDispersaoApp,
                MedidasTendenciaEntity = medidasTendenciaApp,
                AgrupamentoEntity = agrupamento
            });
        }