mealie/tests/unit_tests/test_nlp_parser.py

39 lines
1023 B
Python
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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()