Example #1
0
        public void IloscKcal()
        {
            calc        = new DetailCalculator();
            _sampleUser = new Person()
            {
                WeeklyAeroActivity     = 60,
                WeeklyStrenghtActivity = 90
            };

            //ektomorfik
            CalculateKcal(TypeOfGender.Male, TypeOfPhysique.Ekto, 24, 180, 75);
            Assert.AreEqual(_sampleUser.CalculatedTDEE, 2801);

            CalculateKcal(TypeOfGender.Female, TypeOfPhysique.Ekto, 24, 170, 60);
            Assert.AreEqual(_sampleUser.CalculatedTDEE, 2354);

            //mezmorofik
            CalculateKcal(TypeOfGender.Male, TypeOfPhysique.Mezo, 24, 180, 75);
            Assert.AreEqual(_sampleUser.CalculatedTDEE, 2576);

            CalculateKcal(TypeOfGender.Female, TypeOfPhysique.Mezo, 24, 170, 60);
            Assert.AreEqual(_sampleUser.CalculatedTDEE, 2144);

            //endomorfik
            CalculateKcal(TypeOfGender.Male, TypeOfPhysique.Endo, 24, 180, 75);
            Assert.AreEqual(_sampleUser.CalculatedTDEE, 2315);

            CalculateKcal(TypeOfGender.Female, TypeOfPhysique.Endo, 24, 170, 60);
            Assert.AreEqual(_sampleUser.CalculatedTDEE, 1897);
        }
        private void calculateButton_Click(object sender, EventArgs e)
        {
            if (genderTextBox.Text == string.Empty)
            {
                MessageBox.Show(@"Określ płeć!");
                return;
            }

            if (weightTextBox.Text == string.Empty)
            {
                MessageBox.Show(@"Podaj wagę!");
                return;
            }

            SystemUser.Weight = Convert.ToDecimal(weightTextBox.Text);
            SystemUser.Gender = genderTextBox.Text.ToUpper() == "M" ? TypeOfGender.Male : TypeOfGender.Female;

            ICalculator calc;


            if (detailsDataRadioButton.Checked)
            {
                if (!ValidateInput())
                {
                    string warnings = InputDataValidationList.Aggregate((current, warning) => current + warning);

                    MessageBox.Show(@"Napotkano następujące błędy:" + Environment.NewLine + Environment.NewLine + warnings);
                    return;
                }

                SystemUser.Weight = Convert.ToDecimal(weightTextBox.Text);
                SystemUser.Height = Convert.ToDecimal(heightTextBox.Text);
                SystemUser.Age    = Convert.ToInt32(ageTextBox.Text);

                if (ektoRadioButton.Checked)
                {
                    SystemUser.TypeOfPhysique = TypeOfPhysique.Ekto;
                }
                else if (mezoRadioButton.Checked)
                {
                    SystemUser.TypeOfPhysique = TypeOfPhysique.Mezo;
                }
                else
                {
                    SystemUser.TypeOfPhysique = TypeOfPhysique.Endo;
                }

                SystemUser.WeeklyStrenghtActivity = Convert.ToInt32(strenghtActivityTextBox.Text);
                SystemUser.WeeklyAeroActivity     = Convert.ToInt32(aeroActivityTextBox.Text);

                calc = new DetailCalculator();
            }
            else
            {
                SystemUser.BMI = 23m;
                calc           = new BasicCalculator();
            }


            calc.GetKcalValue(SystemUser);
            calc.SetLabel(neededKcalLabel, SystemUser);


            if (SystemUser.BMI < 18.5m)
            {
                gainWeightRadioButton.Checked = true;
            }
            else if (SystemUser.BMI >= 25)
            {
                reduceWeightRadioButton.Checked = true;
            }
            else
            {
                maintainWeightRadioButton.Checked = true;
            }

            dietGeneratorGroupBox.Enabled = true;
        }