/
Str1ke
/
TheProject
Обзор
Документация
Войти
/
Str1ke
/
TheProject
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
tests/test_analyzer.py
63 строки
2 KB
AlekseyF7
Initial commit: Student Performance Analyzer project
26 дек 2025, 13:51
26 дек 2025, 13:51
84047cc
Код
Авторство
О чём код?
""" Тесты для модуля analyzer """ import pytest from src.data_loader import DataLoader from src.analyzer import PerformanceAnalyzer class TestPerformanceAnalyzer: """Тесты для класса PerformanceAnalyzer""" @pytest.fixture def analyzer(self): """Фикстура для создания анализатора""" loader = DataLoader("data/example_data.csv") loader.load_data() return PerformanceAnalyzer(loader) def test_calculate_overall_statistics(self, analyzer): """Тест вычисления общей статистики""" stats = analyzer.calculate_overall_statistics() assert 'total_students' in stats assert 'total_subjects' in stats assert 'overall_average' in stats assert 'overall_median' in stats assert stats['total_students'] > 0 assert stats['overall_average'] > 0 def test_identify_at_risk_students(self, analyzer): """Тест определения студентов группы риска""" at_risk = analyzer.identify_at_risk_students(threshold=3.0) assert isinstance(at_risk, list) for student in at_risk: assert 'student_id' in student assert 'average_score' in student assert student['average_score'] < 3.0 def test_get_subject_statistics(self, analyzer): """Тест получения статистики по предметам""" subject_stats = analyzer.get_subject_statistics() assert len(subject_stats) > 0 assert 'subject' in subject_stats.columns assert 'average_score' in subject_stats.columns assert 'students_count' in subject_stats.columns def test_generate_recommendations(self, analyzer): """Тест генерации рекомендаций""" recommendations = analyzer.generate_recommendations("ST001") assert isinstance(recommendations, list) assert len(recommendations) > 0 assert all(isinstance(rec, str) for rec in recommendations) def test_get_performance_trends(self, analyzer): """Тест анализа трендов""" trends = analyzer.get_performance_trends() assert 'trend' in trends assert 'current_average' in trends