mirror of
				https://github.com/mealie-recipes/mealie.git
				synced 2025-10-31 10:13:32 -04:00 
			
		
		
		
	
		
			
				
	
	
		
			36 lines
		
	
	
		
			990 B
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			36 lines
		
	
	
		
			990 B
		
	
	
	
		
			Python
		
	
	
	
	
	
| from dataclasses import dataclass
 | ||
| from fractions import Fraction
 | ||
| 
 | ||
| from mealie.services.scraper.ingredient_nlp.processor import CRFIngredient, convert_list_to_crf_model
 | ||
| 
 | ||
| 
 | ||
| @dataclass
 | ||
| class TestIngredient:
 | ||
|     input: str
 | ||
|     quantity: float
 | ||
| 
 | ||
| 
 | ||
| test_ingredients = [
 | ||
|     TestIngredient("½ cup all-purpose flour", 0.5),
 | ||
|     TestIngredient("1 ½ teaspoons ground black pepper", 1.5),
 | ||
|     TestIngredient("⅔ cup unsweetened flaked coconut", 0.7),
 | ||
|     TestIngredient("⅓ cup panko bread crumbs", 0.3),
 | ||
| ]
 | ||
| 
 | ||
| 
 | ||
| def test_nlp_parser():
 | ||
|     models: list[CRFIngredient] = convert_list_to_crf_model([x.input for x in test_ingredients])
 | ||
| 
 | ||
|     # Itterate over mdoels and test_ingreidnets to gether
 | ||
|     print()
 | ||
|     for model, test_ingredient in zip(models, test_ingredients):
 | ||
|         print("Testing:", test_ingredient.input, end="")
 | ||
| 
 | ||
|         assert float(sum(Fraction(s) for s in model.qty.split())) == test_ingredient.quantity
 | ||
| 
 | ||
|         print(" ✅ Passed")
 | ||
| 
 | ||
| 
 | ||
| if __name__ == "__main__":
 | ||
|     test_nlp_parser()
 |