Initial project setup: NF Hotel Data Analysis API
- Add project structure with domain-driven design organization - Implement FastAPI endpoints for hotel booking reports - Add data cleaning, statistics, and LLM report generation services - Include configuration management and security utilities - Add repository layer for bookings and metadata access - Setup testing framework with conftest.py - Include example files and documentation
This commit is contained in:
@@ -0,0 +1,27 @@
|
||||
import json
|
||||
|
||||
from nf_hotel_api.services.cleaning import DataCleaningService
|
||||
from nf_hotel_api.services.statistics import DescriptiveStatsService
|
||||
|
||||
|
||||
def test_compute_drops_booking_id(dirty_bookings_df, hotel_metadata):
|
||||
clean_df = DataCleaningService(hotel_metadata).clean(dirty_bookings_df)
|
||||
stats = DescriptiveStatsService().compute(clean_df)
|
||||
|
||||
assert "booking_id" not in stats
|
||||
|
||||
|
||||
def test_compute_output_is_json_serializable(dirty_bookings_df, hotel_metadata):
|
||||
clean_df = DataCleaningService(hotel_metadata).clean(dirty_bookings_df)
|
||||
stats = DescriptiveStatsService().compute(clean_df)
|
||||
|
||||
# Must not raise: every value has to be a plain JSON-compatible type.
|
||||
json.dumps(stats)
|
||||
|
||||
|
||||
def test_compute_includes_numeric_and_categorical_columns(dirty_bookings_df, hotel_metadata):
|
||||
clean_df = DataCleaningService(hotel_metadata).clean(dirty_bookings_df)
|
||||
stats = DescriptiveStatsService().compute(clean_df)
|
||||
|
||||
assert "mean" in stats["adults"]
|
||||
assert "top" in stats["meal"] or "unique" in stats["meal"]
|
||||
Reference in New Issue
Block a user