Spaces:
Sleeping
Sleeping
| """test_client.py module.""" | |
| import pytest | |
| import tensorflow as tf | |
| import yaml | |
| from src.client.data_handler import FinancialDataHandler | |
| from src.client.model import FederatedClient | |
| def config(): | |
| """Load test configuration.""" | |
| with open('config/client_config.yaml', 'r') as f: | |
| return yaml.safe_load(f)['client'] | |
| def test_data_handler(config): | |
| """Test data handler functionality.""" | |
| handler = FinancialDataHandler(config) | |
| # Test data simulation | |
| data = handler.simulate_financial_data(num_samples=100) | |
| assert len(data) == 100 | |
| assert all(col in data.columns for col in [ | |
| 'transaction_amount', | |
| 'account_balance', | |
| 'transaction_frequency', | |
| 'credit_score', | |
| 'days_since_last_transaction' | |
| ]) | |
| # Test preprocessing | |
| dataset, scaler = handler.get_client_data() | |
| assert isinstance(dataset, tf.data.Dataset) | |
| def test_federated_client(config): | |
| """Test federated client functionality.""" | |
| client = FederatedClient(config) | |
| # Test model building | |
| assert isinstance(client.model, tf.keras.Model) | |
| # Test local training | |
| handler = FinancialDataHandler(config) | |
| dataset, _ = handler.get_client_data() | |
| training_result = client.train_local_model(dataset, epochs=1) | |
| assert 'client_id' in training_result | |
| assert 'weights' in training_result | |
| assert 'metrics' in training_result | |