예제 #1
0
        public void SplitSimpleLine()
        {
            var split         = new SplitLines();
            var StringToSplit = "Split this line at the spaces";
            var expected      = new string[] { "Split", "this", "line", "at", "the", "spaces" };

            Assert.AreEqual(expected, split.SplitLineAtSpace(StringToSplit));
        }
예제 #2
0
        /*
         * get price per ounce for gallons
         * get price per ounce for ounces
         * get price per ounce for lbs
         */
        // public decimal PricePerGallon(string Ingredient, string UnitOfMeasurement, string VolumeToWeightRatioDatabaseFilename, string ResponseDatabaseFilename)
        //{
        //    var read = new Reader();
        //    var RatioDatabse = read.ReadDatabase(VolumeToWeightRatioDatabaseFilename);
        //    var ResponseDatabase = read.ReadDatabase(ResponseDatabaseFilename);
        //    for (int i = 0; i < ResponseDatabase.Count(); i++)
        //    {
        //        if (ResponseDatabase[i].Contains(Ingredient) && ResponseDatabase[i].Contains(UnitOfMeasurement))
        //        {
        //            for (int j = 0; j < RatioDatabse.Count(); j++)
        //            {
        //                if (RatioDatabse[j].Contains(Ingredient}
        //        }
        //        {

        //        }))
        //            }
        //        }
        //    }

        public decimal GetPriceForOneOunceOfIngredient(string Ingredient, string VolumeToWeightRatioDatabase, string ResponseDatabaseFilename)
        {
            var read           = new Reader();
            var split          = new SplitLines();
            var GetOunces      = new VolumeToWeightLogic();
            var convertToNmber = new GeneralFunctionality();
            var IngredientVolumeToWeightRatios = read.ReadDatabase(VolumeToWeightRatioDatabase);
            var UnalteredResponseDatabase      = read.ReadDatabase(ResponseDatabaseFilename);
            var IngredientPrice = 0m;
            //var ParsedNumberString = 0m;IngredientName, IngredientPrice
            var CalculatedOunces = 0m;
            //var OuncesForStandardMeasuredIngredient = 0m;
            var PricePerOunce = 0m;

            for (int i = 0; i < UnalteredResponseDatabase.Count(); i++)
            {
                if (UnalteredResponseDatabase[i].Contains(Ingredient))
                {
                    IngredientPrice = GetPriceForIndividualIngredient(Ingredient); //, ResponseDatabaseFilename);
                    for (int j = 0; j < IngredientVolumeToWeightRatios.Count(); j++)
                    {
                        if (IngredientVolumeToWeightRatios[j].Contains(Ingredient))
                        {
                            if (UnalteredResponseDatabase[i].ToLower().Contains(("oz")))
                            {
                                var FindNumbers = split.SplitLineAtSpace(UnalteredResponseDatabase[i]);
                                foreach (var array in FindNumbers)
                                {
                                    decimal output;
                                    if (convertToNmber.IsStringNumericValue(array) == true)
                                    {
                                        Decimal.TryParse(array, out output);//memory representaion, keeping a file in memory to get the values... it's a memory manager ... it's a data structure manager that manages the memory of that files
                                        CalculatedOunces = output;
                                    }
                                }
                            }
                            //.Cgallons, lbs || pounds, oz, //)
                            //OuncesForStandardMeasuredIngredient = GetOunces.ReadOuncesForIngredient(Ingredient, VolumeToWeightRatioDatabase);
                        }//how many cups are in the bag of whatever is sold, then do the math with the ounces
                    }
                }
            }
            PricePerOunce = IngredientPrice / CalculatedOunces;
            return(PricePerOunce);
        }
        public string RoundTablespoonMeasurement(string Measurement)
        {
            var Round = new RoundDecimalPlaces();
            var split = new SplitLines();
            var TablespoonsMeasurement       = 0m;
            var RoundedTablespoonMeasurement = "";
            var IngredientLine = split.SplitLineAtSpace(Measurement);

            TablespoonsMeasurement = Convert.ToDecimal(IngredientLine[0]);
            if (TablespoonsMeasurement == 1m)
            {
                RoundedTablespoonMeasurement = Round.RoundToHundrethDecimalPlace(TablespoonsMeasurement) + " tablespoon";
            }
            else
            {
                RoundedTablespoonMeasurement = Round.RoundToHundrethDecimalPlace(TablespoonsMeasurement) + " tablespoons";
            }
            return(RoundedTablespoonMeasurement);
        }
        public string ConvertTeaspoonsToTablespoons(string MeasurementInTeaspoons)
        {
            var Round                        = new RoundDecimalPlaces();
            var ToTablespoons                = new GeneralFunctionality();
            var split                        = new SplitLines();
            var TeaspoonsToTablespoons       = 0m;
            var RoundedTablespoonMeasurement = "";
            var IngredientLine               = split.SplitLineAtSpace(MeasurementInTeaspoons);

            TeaspoonsToTablespoons = ToTablespoons.TeaspoonsToTablespoons(Convert.ToDecimal(IngredientLine[0]));
            if (TeaspoonsToTablespoons == 1m)
            {
                RoundedTablespoonMeasurement = Round.RoundToHundrethDecimalPlace(TeaspoonsToTablespoons) + " tablespoon";
            }
            else
            {
                RoundedTablespoonMeasurement = Round.RoundToHundrethDecimalPlace(TeaspoonsToTablespoons) + " tablespoons";
            }
            return(RoundedTablespoonMeasurement);
        }
예제 #5
0
        public decimal CalculateImproperFraction(string fraction)
        {
            var split = new SplitLines();
            var SplitWholeNumberInFraction = split.SplitLineAtSpace(fraction);
            var SplitFractionAtSlash       = split.SplitLineAtSpecifiedCharacter(SplitWholeNumberInFraction[1], '/');
            var CalculatedDecimal          = 0m;
            var WholeNumberString          = SplitWholeNumberInFraction[0];
            var NumeratorString            = SplitFractionAtSlash[0];
            var DenominatorString          = SplitFractionAtSlash[1];

            if ((IsStringNumericValue(WholeNumberString) && IsStringNumericValue(NumeratorString) && IsStringNumericValue(DenominatorString)) == true)
            {
                var WholeNumber             = Convert.ToDecimal(WholeNumberString);
                var Numerator               = Convert.ToDecimal(NumeratorString);
                var Denominator             = Convert.ToDecimal(DenominatorString);
                var ProperFractionNumerator = (WholeNumber * Denominator) + Numerator;
                CalculatedDecimal = (decimal)ProperFractionNumerator / (decimal)Denominator;
            }
            return(CalculatedDecimal);
        }
        public string ConvertCupsToTablespoons(string MeasurementInCups)
        {
            var    Round         = new RoundDecimalPlaces();
            var    ToTablespoons = new GeneralFunctionality();
            var    Split         = new SplitLines();
            string RoundedTablespoonMeasurement = "";

            string[] IngredientLine = Split.SplitLineAtSpace(MeasurementInCups);
            //there's something about CupsToTablespoonMeasurement - this is where I am getting the error in the stack trace in all of my failing tests that use this method
            decimal CupsToTablespoonMeasurement = ToTablespoons.CupsToTablespoons(Convert.ToDecimal(IngredientLine[0]));

            if (CupsToTablespoonMeasurement == 1m)
            {
                RoundedTablespoonMeasurement = CupsToTablespoonMeasurement + " tablespoon";
            }
            else
            {
                RoundedTablespoonMeasurement = Round.RoundToHundrethDecimalPlace(CupsToTablespoonMeasurement) + " tablespoons";
            }
            return(RoundedTablespoonMeasurement);
        }