Пример #1
0
        public DistribuicaoNormalEntity Build(DistribuicaoNormalEntity entidade)
        {
            foreach (var item in entidade.Valor.Where(q => q.HasValue))
            {
                var Z = CalcularZ(item.Value, entidade.MediaPonderada, entidade.DesvioPadrao);

                entidade.DistribuicaoNormalZEntity.Add(new DistribuicaoNormalZEntity()
                {
                    ValorOriginal = item.Value,
                    Z             = Z,
                    ValorTabela   = TabelaDistribuicao.Calcular(Z),
                });
            }

            if (entidade.TipoEntrada == 0)
            {
                var first = entidade.DistribuicaoNormalZEntity.First();
                entidade.Probabilidade = ProbabilidadeMenor(first.Z, first.ValorTabela);
            }
            else if (entidade.TipoEntrada == 1)
            {
                var menor = entidade.DistribuicaoNormalZEntity.First(e => e.Z == entidade.DistribuicaoNormalZEntity.Min(q => q.Z));
                var maior = entidade.DistribuicaoNormalZEntity.First(e => e.Z == entidade.DistribuicaoNormalZEntity.Max(q => q.Z));
                entidade.Probabilidade = ProbabilidadeEntre(new Tuple <decimal, decimal>(menor.Z, menor.ValorTabela), new Tuple <decimal, decimal>(maior.Z, maior.ValorTabela));
            }
            else
            {
                var first = entidade.DistribuicaoNormalZEntity.First();
                entidade.Probabilidade = ProbabilidadeMaior(first.Z, first.ValorTabela);
            }
            return(entidade);
        }
Пример #2
0
        public void Maior()
        {
            var entidade = new DistribuicaoNormalEntity
            {
                DesvioPadrao   = 2000,
                MediaPonderada = 10000,
                TipoEntrada    = 2,
                Valor          = new[] { new decimal?(10000), new decimal?(12000) }
            };

            var teste = new DistribuicaoNormalApp().Build(entidade);
        }
Пример #3
0
        public void Entre()
        {
            var entidade = new DistribuicaoNormalEntity
            {
                DesvioPadrao   = 2000,
                MediaPonderada = 10000,
                TipoEntrada    = 1,
                Valor          = new[] { new decimal?(9000), new decimal?(12000) }
            };
            var teste = new DistribuicaoNormalApp().Build(entidade);

            Assert.AreEqual(teste.Probabilidade, new decimal(53.28), "O valor da probabilidade não está correto");

            var entidade2 = new DistribuicaoNormalEntity
            {
                DesvioPadrao   = 2000,
                MediaPonderada = 10000,
                TipoEntrada    = 1,
                Valor          = new[] { new decimal?(8000), new decimal?(9000) }
            };
            var teste2 = new DistribuicaoNormalApp().Build(entidade2);

            Assert.AreEqual(teste2.Probabilidade, new decimal(14.98), "O valor da probabilidade não está correto");
        }
        public static MvcHtmlString FormatacaoObjetoDistribuicaoNormal(this HtmlHelper h, DistribuicaoNormalEntity input)
        {
            switch (input.TipoEntrada)
            {
            case 0:
            {
                return(new MvcHtmlString($"{input.DistribuicaoNormalZEntity.First().Z.ToString("0.0").Replace(",", ".")},0,{input.MediaPonderada}"));
            }

            case 1:
            {
                var min = input.DistribuicaoNormalZEntity.Min(q => q.Z);
                var max = input.DistribuicaoNormalZEntity.Max(q => q.Z);
                return(new MvcHtmlString($"{min.ToString("0.0").Replace(",", ".")},{max.ToString("0.0").Replace(",", ".")},{input.MediaPonderada}"));
            }

            case 2:
            {
                return(new MvcHtmlString($"0,{input.DistribuicaoNormalZEntity.First().Z.ToString("0.0").Replace(",", ".")},{input.MediaPonderada}"));
            }
            }
            throw new Exception();
        }
Пример #5
0
        private void Teste(DistribuicaoNormalEntity distribuicao, double valor)
        {
            var teste = new DistribuicaoNormalApp().Build(distribuicao);

            Assert.AreEqual(teste.Probabilidade, valor, "O valor da probabilidade não está correto");
        }
 public ActionResult Index(DistribuicaoNormalEntity distribuicao)
 {
     return(View(new DistribuicaoNormalApp().Build(distribuicao)));
 }