Spaces:
Running
Running
| import unittest | |
| from mediaunmasked.analyzers.headline_analyzer import HeadlineAnalyzer | |
| import logging | |
| class TestHeadlineAnalyzer(unittest.TestCase): | |
| def setUp(self): | |
| self.analyzer = HeadlineAnalyzer() | |
| logging.basicConfig(level=logging.INFO) | |
| self.logger = logging.getLogger(__name__) | |
| def test_matching_headline(self): | |
| """Test when headline matches content""" | |
| headline = "Climate Change Impact on Global Weather Patterns" | |
| content = "Scientists have discovered significant changes in global weather patterns due to climate change. The study shows increasing temperatures are affecting weather systems worldwide." | |
| result = self.analyzer.analyze(headline, content) | |
| self.assertIsNotNone(result) | |
| self.assertIn('headline_vs_content_score', result) | |
| self.assertGreater(result['headline_vs_content_score'], 70) # Should have high score | |
| self.logger.info(f"Matching headline score: {result['headline_vs_content_score']}") | |
| def test_misleading_headline(self): | |
| """Test when headline is misleading compared to content""" | |
| headline = "Shocking New Diet Guarantees Weight Loss" | |
| content = "While some dietary changes may contribute to weight loss, there is no guaranteed method. Studies show sustainable weight loss requires lifestyle changes." | |
| result = self.analyzer.analyze(headline, content) | |
| self.assertIsNotNone(result) | |
| self.assertIn('headline_vs_content_score', result) | |
| self.assertLess(result['headline_vs_content_score'], 50) # Should have low score | |
| self.logger.info(f"Misleading headline score: {result['headline_vs_content_score']}") | |
| def test_empty_inputs(self): | |
| """Test handling of empty inputs""" | |
| result = self.analyzer.analyze("", "") | |
| self.assertIsNotNone(result) | |
| self.assertIn('headline_vs_content_score', result) | |
| def test_matching_headline(analyzer): | |
| headline = "New Study Shows Coffee Reduces Heart Disease Risk" | |
| content = "Recent research suggests that coffee may have cardiovascular benefits." | |
| result = analyzer.analyze(headline, content) | |
| assert result["headline_vs_content_score"] > 30 | |
| assert result["contradiction_score"] < 0.3 | |
| def test_contradictory_headline(analyzer): | |
| headline = "Coffee Increases Heart Disease Risk" | |
| content = "Studies show coffee decreases cardiovascular disease risk." | |
| result = analyzer.analyze(headline, content) | |
| assert result["headline_vs_content_score"] < 30 | |
| assert result["contradiction_score"] > 0.3 |