예제 #1
0
        public void Input()
        {
            var baseInput = 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 responseLista = new VariavelContinuaApp().Build(baseInput);


            var baseInputNew = new BaseInputsEntity
            {
                InputValue = new List <decimal>
                {
                    20, 37, 40, 32, 28, 26, 25, 32, 39, 40, 50, 47, 46, 31, 24, 21, 35, 39, 38, 43
                }
            };


            var lista = new VariavelContinuaApp().Build(baseInputNew);
        }
        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);
        }
        public void Input()
        {
            var numeros = new BaseInputsEntity
            {
                InputValue = new List <decimal>
                {
                    1000,
                    2000,
                    2000,
                    5000,
                    4000,
                    4000,
                    2000,
                    3000,
                    2000,
                    3000,
                    3000,
                    3000,
                    2000,
                    3000,
                    3000,
                    3000,
                    3000,
                    1000,
                    2000,
                    3000
                }
            };


            var lista = new VariavelDiscretaApp().Build(numeros);
        }
예제 #4
0
 public MedidasTendenciaContainerEntity Build(BaseInputsEntity baseInputs)
 {
     return(new MedidasTendenciaContainerEntity()
     {
         InputValue = baseInputs.InputValue,
         Rol = baseInputs.Rol,
         MedidasTendenciaEntity = Calcular(baseInputs.InputValue),
     });
 }
예제 #5
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
            });
        }
예제 #6
0
        public MedidasDispersaoContainerEntity Build(BaseInputsEntity baseInputs)
        {
            var media = MathCoreApp.MediaComum(baseInputs.InputValue);

            var inputValueQuadrado = MathCoreApp.SomaTodosAoQuadrado(baseInputs.InputValue, media);

            var medidasDispersao = Calcular(baseInputs.InputValue, media, baseInputs.Amostra);

            return(new MedidasDispersaoContainerEntity()
            {
                Media = media,
                Rol = baseInputs.Rol,
                InputValue = baseInputs.InputValue,
                InputValueQuadrado = inputValueQuadrado,
                SomaInputValueQuadrado = inputValueQuadrado.Sum(),
                MedidasDispersaoEntity = medidasDispersao
            });
        }
        public VariavelContinuaContainerEntity Build(BaseInputsEntity baseInputs)
        {
            var xMAx = baseInputs.InputValue.Max();
            var xMin = baseInputs.InputValue.Min();

            var al = (xMAx - xMin) + 1;

            var numeroPreK = (int)Math.Sqrt(baseInputs.InputValue.Count());
            var K          = new List <decimal> {
                numeroPreK - 1, numeroPreK, numeroPreK + 1
            };

            var Ic = GetIC(al, K);


            var minimo = xMin;
            var maximo = minimo + (int)Ic.IC;

            var f             = new List <int>();
            var fePorcentList = new List <decimal>();

            var listaTabelaQuantitativa = new List <VariavelContinuaEntity>();

            for (int i = 1; i <= Ic.Classes; i++)
            {
                var fePorcent = (decimal)(baseInputs.Rol.Count(x => x >= minimo && x < maximo) / (decimal)baseInputs.Rol.Count()) * 100;
                var count     = baseInputs.Rol.Count(x => x >= minimo && x < maximo);

                f.Add(count);
                fePorcentList.Add(fePorcent);

                var xi = MediaComum(new List <decimal>()
                {
                    minimo, maximo
                });

                listaTabelaQuantitativa.Add(new VariavelContinuaEntity
                {
                    Classe    = i,
                    XI        = xi,
                    Range     = new[] { minimo, maximo },
                    FI        = count,
                    FEPorcent = Math.Round(fePorcent, 2),
                    F         = f.Sum(),
                    FPorcent  = Math.Round(fePorcentList.Sum(), 2),
                    XIFI      = xi * count,
                });

                minimo = maximo;
                maximo = maximo + (int)Ic.IC;
            }

            var media = listaTabelaQuantitativa.Sum(e => e.XIFI) / listaTabelaQuantitativa.Sum(e => e.FI);

            var variancia = VarianciaContinua(listaTabelaQuantitativa.Select(q => q.XI).ToList(), listaTabelaQuantitativa.Select(x => x.FI).ToList(), media, listaTabelaQuantitativa.Sum(y => y.FI), baseInputs.Amostra);
            var dp        = MathCoreApp.RaizQuadrada(variancia);
            var cv        = MathCoreApp.Porcentagem(dp, media);

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

            var medidasTendencia = new MedidasTendenciaEntity
            {
                Media   = media,
                Mediana = MedianaQuantitativa(listaTabelaQuantitativa, Ic.IC),
                Moda    = ModaQuantitativa(listaTabelaQuantitativa)
            };

            return(new VariavelContinuaContainerEntity
            {
                InputValue = baseInputs.InputValue,
                Rol = baseInputs.Rol,
                VariavelContinuaEntity = listaTabelaQuantitativa,
                MinLinha = xMin,
                MaxLinha = xMAx,
                AL = al,
                K = K,
                IC = Ic,
                MedidasDispersaoEntity = medidasDispersao,
                MedidasTendenciaEntity = medidasTendencia,
                EXIFI = listaTabelaQuantitativa.Sum(entity => entity.XIFI),
                EFI = listaTabelaQuantitativa.Sum(entity => entity.FI),
            });
        }
        public void Input()
        {
            var antonio = new BaseInputsEntity
            {
                InputValue = new List <decimal>
                {
                    3, 7, 10, 4
                }
            };
            var antonioResult = new MedidasDispersaoApp().Build(antonio);

            /* `X */
            Assert.IsTrue(antonioResult.InputValue[0] == 3, "O Valor deveria ser 3");
            Assert.IsTrue(antonioResult.InputValue[1] == 7, "O Valor deveria ser 7");
            Assert.IsTrue(antonioResult.InputValue[2] == 10, "O Valor deveria ser 10");
            Assert.IsTrue(antonioResult.InputValue[3] == 4, "O Valor deveria ser 4");

            Assert.IsTrue(antonioResult.InputValueQuadrado[0] == 9);
            Assert.IsTrue(antonioResult.InputValueQuadrado[1] == 1);
            Assert.IsTrue(antonioResult.InputValueQuadrado[2] == 16);
            Assert.IsTrue(antonioResult.InputValueQuadrado[3] == 4);

            Assert.IsTrue(antonioResult.Media == new decimal(6));



            var pedro = new BaseInputsEntity
            {
                InputValue = new List <decimal>
                {
                    4, 5, 10, 6
                }
            };

            var pedroResult = new MedidasDispersaoApp().Build(pedro);


            Assert.IsTrue(pedroResult.InputValueQuadrado[0] == 4);
            Assert.IsTrue(pedroResult.InputValueQuadrado[1] == 5);
            Assert.IsTrue(pedroResult.InputValueQuadrado[2] == 10);
            Assert.IsTrue(pedroResult.InputValueQuadrado[3] == 6);

            Assert.IsTrue(pedroResult.InputValueQuadrado[0] == new decimal(5.06), "O Valor deveria ser = 5.06");
            Assert.IsTrue(pedroResult.InputValueQuadrado[1] == new decimal(1.56), "O Valor deveria ser 1.56");
            Assert.IsTrue(pedroResult.InputValueQuadrado[2] == new decimal(14.06), "O Valor deveria ser 14.06)");
            Assert.IsTrue(pedroResult.InputValueQuadrado[3] == new decimal(0.06), "O Valor deveria ser 0.06");
            Assert.IsTrue(pedroResult.Media == new decimal(6.25));



            var gasolina = new BaseInputsEntity
            {
                InputValue = new List <decimal>()
                {
                    new decimal(2.61),
                    new decimal(2.64),
                    new decimal(2.56),
                    new decimal(2.61),
                    new decimal(2.60),
                    new decimal(2.58)
                }
            };

            var gasolinaResult = new MedidasDispersaoApp().Build(gasolina);
        }