@Override public Set<Ingredient> getAllIngredients() { boolean ingredientIncluded = false; Set<Ingredient> allIngredients = new HashSet<Ingredient>(); allIngredients.clear(); if (fullMenu != null && !fullMenu.isEmpty()) { for (Dish dish : fullMenu) { Set<Ingredient> newIngredients = dish.getIngredients(); if (newIngredients != null && !newIngredients.isEmpty()) { if (allIngredients != null && !allIngredients.isEmpty()) { for (Ingredient newIngredient : newIngredients) { Iterator<Ingredient> iterator = allIngredients.iterator(); ingredientIncluded = false; while (iterator.hasNext() && ingredientIncluded == false) { Ingredient existingIngredient = iterator.next(); if (existingIngredient.getName().equals(newIngredient.getName())) { existingIngredient.setQuantity( existingIngredient.getQuantity() + newIngredient.getQuantity() * numberOfGuests); existingIngredient.setPrice( existingIngredient.getPrice() + newIngredient.getPrice() * numberOfGuests); allIngredients.remove(existingIngredient); allIngredients.add( new Ingredient( existingIngredient.getName(), existingIngredient.getQuantity(), existingIngredient.getUnit(), existingIngredient.getPrice())); ingredientIncluded = true; } } if (ingredientIncluded == false) { allIngredients.add(newIngredient); } } } else { Iterator<Ingredient> iterator = newIngredients.iterator(); while (iterator.hasNext()) { Ingredient newIngredient = iterator.next(); allIngredients.add( new Ingredient( newIngredient.getName(), newIngredient.getQuantity() * numberOfGuests, newIngredient.getUnit(), newIngredient.getPrice() * numberOfGuests)); } } } } return allIngredients; } return null; }
public static void main(String[] args) { long start = System.currentTimeMillis(); ConversionFactor cupToPint = new ConversionFactor("cup", "pint", 0.50721); ConversionFactor pintToCup = new ConversionFactor("pint", "cup", 1.97157); Ingredient milk = new Ingredient(2.0, "cup", "milk"); Ingredient wine = new Ingredient(750.0, "milliliter", "wine"); Ingredient pinotNoir = new Ingredient(750.0, "ml", "wine"); Ingredient dietCoke = new Ingredient(0.5, "L", "diet coke"); Ingredient bakingSoda = new Ingredient(1.5, "teaspoon", "baking soda"); Ingredient vanilla = new Ingredient(1.0, "tablespoon", "vanilla"); Ingredient beer = new Ingredient(1.0, "pt", "beer"); Ingredient buttermilk = new Ingredient(0.25, "qt", "buttermilk"); Ingredient coffee = new Ingredient(16.0, "ounce", "coffee"); // Test Cases For Conversion Factor // Test Case 1 testCase(testRightUnitCorrect(cupToPint)); // Test Case 2 testCase(testRightUnitCorrect(pintToCup)); // Test Case 3 testCase(testRightUnitIncorrect(cupToPint)); // Test Case 4 testCase(testRightUnitIncorrect(pintToCup)); // Test Cases for Ingredient // Test Case 5 testCase(testStandardizeUnit(milk, "cup")); // Test Case 6 testCase(testStandardizeUnit(beer, "pint")); // Test Case 7 testCase(testStandardizeUnit(dietCoke, "liter")); // Test Case 8 testCase(testStandardizeUnit(wine, "ml")); // Test Case 9 testCase(testStandardizeUnit(bakingSoda, "tsp")); // Test Case 10 testCase(testStandardizeUnit(vanilla, "tbsp")); // Test Case 11 testCase(testStandardizeUnit(buttermilk, "quart")); // Test Case 12 testCase(testStandardizeUnit(coffee, "oz")); // Test Case 13 testCase(testConvertIngredientPass(milk, cupToPint)); // Test Case 14 testCase(testConvertIngredientFail(dietCoke, cupToPint)); // Test Case 15 testCase(testEquals(milk, milk)); // Test Case 16 testCase(testNotEquals(milk, buttermilk)); // Test Case 17 testCase(testEquals(wine, pinotNoir)); List<Ingredient> ingredientList = new LinkedList<>(); ingredientList.add(milk); ingredientList.add(wine); ingredientList.add(dietCoke); ingredientList.add(bakingSoda); ingredientList.add(vanilla); ingredientList.add(beer); ingredientList.add(buttermilk); ingredientList.add(coffee); Recipe junk = new Recipe(ingredientList, "junk"); List<Ingredient> doubledIngredientList = new LinkedList<>(); for (Ingredient ingredient : ingredientList) { doubledIngredientList.add( new Ingredient(ingredient.getAmount() * 2, ingredient.getUnit(), ingredient.getItem())); } Recipe junkdoubled = new Recipe(doubledIngredientList, "junk"); // Testing Recipe class // Test Case 18 testCase(testFindIngredient(milk, junk)); // Test Case 19 testCase(testFindIngredient(wine, junk)); // Test Case 20 testCase(testFindIngredient(dietCoke, junk)); // Test Case 21 testCase(testFindIngredient(bakingSoda, junk)); // Test Case 22 testCase(testFindIngredient(vanilla, junk)); // Test Case 23 testCase(testFindIngredient(beer, junk)); // Test Case 24 testCase(testFindIngredient(buttermilk, junk)); // Test Case 25 testCase(testFindIngredient(coffee, junk)); // Test Case 26 testCase(testEquals(junk, junk)); // Test Case 27 testCase(testNotEquals(junk, junkdoubled)); // Test Case 28 testCase(testMultiplyAllAmounts(junk, 2.0, junkdoubled)); long end = System.currentTimeMillis(); long timeElapsed = end - start; System.out.println( Integer.toString(passed) + " out of " + Integer.toString(testsRan) + " tests passed."); System.out.println("Time taken:" + Long.toString(timeElapsed) + " millisecond(s)."); }
public static boolean testConvertIngredientFail( Ingredient ingredient, ConversionFactor conversionFactor) { ingredient.convertIngredient(conversionFactor); return !(ingredient.getUnit().equals(conversionFactor.getFrom())); }
public static boolean testConvertIngredientPass( Ingredient ingredient, ConversionFactor conversionFactor) { String correctResult = conversionFactor.getTo(); ingredient.convertIngredient(conversionFactor); return ingredient.getUnit().equals(correctResult); }
// testing methods of Ingredients class public static boolean testStandardizeUnit(Ingredient ingredient, String standardUnit) { // tests whether you can have a standardized unit ingredient.standardizeUnit(); return ingredient.getUnit().equals(standardUnit); }