mirror of
				https://github.com/mealie-recipes/mealie.git
				synced 2025-11-03 18:53:17 -05:00 
			
		
		
		
	
		
			
				
	
	
		
			39 lines
		
	
	
		
			1023 B
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			39 lines
		
	
	
		
			1023 B
		
	
	
	
		
			Python
		
	
	
	
	
	
from dataclasses import dataclass
 | 
						||
from fractions import Fraction
 | 
						||
 | 
						||
import pytest
 | 
						||
 | 
						||
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),
 | 
						||
]
 | 
						||
 | 
						||
 | 
						||
@pytest.mark.skip
 | 
						||
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()
 |