Skip to main content

EXAMPLE_03_RECIPE_SCALING

Constant EXAMPLE_03_RECIPE_SCALING 

Source
pub const EXAMPLE_03_RECIPE_SCALING: &str = "spec recipe_scaling\n\"\"\"\nRecipe Scaling\n\nDemonstrates calculations and scaling.\nMeasure a recipe up or down based on servings needed.\n\"\"\"\n\nuses lemma units\n\ndata temperature: measure\n  -> unit celsius: 1.0\n\ndata recipe: text\n  -> option \"chocolate_cake\"\n  -> option \"bread\"\n  -> option \"cookies\"\n\ndata butter_needed: 0.5\ndata eggs_needed:   3\ndata flour_needed:  2\ndata sugar_needed:  1.5\ndata recipe_name:   recipe\ndata desired_servings: number\n  -> minimum 1\n\ndata original_servings: number\n  -> minimum 1\n\n\nrule scaling_factor:\n  desired_servings / original_servings\n\nrule scaled_flour:\n  flour_needed * scaling_factor\n\nrule scaled_sugar:\n  sugar_needed * scaling_factor\n\nrule scaled_butter:\n  butter_needed * scaling_factor\n\nrule scaled_eggs:\n  eggs_needed * scaling_factor\n\nrule total_dry_ingredients:\n  scaled_flour + scaled_sugar\n\nrule baking_time:\n  30 minute\n  unless desired_servings <= 4 then 35 minute\n  unless desired_servings >= 8 then 40 minute\n\nrule oven_temperature:\n  175 celsius\n  unless recipe_name is \"bread\" then 190 celsius\n";