Bezeichnung/Menge auch ohne Vorlagen-Mapping, Zuordnen-Hinweis, Tagesliste mit Lebensmitteln. Co-authored-by: Cursor <cursoragent@cursor.com>
30 lines
1.1 KiB
Python
30 lines
1.1 KiB
Python
from csv_parser.executor import guess_nutrition_item_fields
|
|
from data_layer.food_mapping import normalize_food_name, parse_quantity_g
|
|
from data_layer.nutrition_items import macros_differ
|
|
|
|
|
|
def test_normalize_strips_leading_quantity():
|
|
assert normalize_food_name("50 g Hähnchen") == "hähnchen"
|
|
assert normalize_food_name(" Vollmilch 3,5% ") == "vollmilch 3.5%"
|
|
|
|
|
|
def test_parse_quantity_g():
|
|
assert parse_quantity_g("150 g") == 150.0
|
|
assert parse_quantity_g("150") == 150.0
|
|
assert parse_quantity_g("1 Stück") is None
|
|
|
|
|
|
def test_guess_fddb_bezeichnung_without_template_mapping():
|
|
name, qty = guess_nutrition_item_fields({
|
|
"bezeichnung": "50 g Hähnchen",
|
|
"menge": "50 g",
|
|
"kj": "800",
|
|
})
|
|
assert name == "50 g Hähnchen"
|
|
assert qty == "50 g"
|
|
|
|
|
|
def test_macros_differ_rounds():
|
|
assert not macros_differ({"kcal": 1.04, "protein_g": 0, "fat_g": 0, "carbs_g": 0}, {"kcal": 1.0, "protein_g": 0, "fat_g": 0, "carbs_g": 0})
|
|
assert macros_differ({"kcal": 10, "protein_g": 0, "fat_g": 0, "carbs_g": 0}, {"kcal": 11, "protein_g": 0, "fat_g": 0, "carbs_g": 0})
|