Viraj0112's picture
Upload folder using huggingface_hub
03a907a verified
import pytest
import os
import tempfile
import json
from dataset.problem_21.buggy import process_inventory_data
def test_process_inventory_data():
data = {
"store_id": "ST-001",
"items": [
{"id": "A1", "name": "Widget", "stock": 50, "price": 10.0, "category": "tools"},
{"id": "A2", "name": "Gadget", "stock": 10, "price": 25.0, "category": "electronics"},
{"id": "A3", "name": "Hammer", "stock": 5, "price": 15.0, "category": "tools"},
{"id": "A4", "name": "Cable", "stock": "20", "price": "5.5", "category": "electronics"}
]
}
with tempfile.NamedTemporaryFile(mode='w', delete=False) as f:
json.dump(data, f)
filepath = f.name
try:
result = process_inventory_data(filepath, 15)
# total_value = (50*10) + (10*25) + (5*15) + (20*5.5) = 500 + 250 + 75 + 110 = 935.0
assert result['total_value'] == 935.0
# low_stock: Gadget (10), Hammer (5) -> < 15
assert set(result['low_stock_items']) == {"Gadget", "Hammer"}
# categories: tools (50 + 5 = 55), electronics (10 + 20 = 30)
assert result['categories']['tools'] == 55
assert result['categories']['electronics'] == 30
finally:
os.remove(filepath)
def test_missing_items_key():
data = {"store_id": "ST-002"}
with tempfile.NamedTemporaryFile(mode='w', delete=False) as f:
json.dump(data, f)
filepath = f.name
try:
# Should handle missing items gracefully, perhaps returning empty stats
result = process_inventory_data(filepath, 15)
assert result['total_value'] == 0
assert result['low_stock_items'] == []
assert result['categories'] == {}
finally:
os.remove(filepath)