nellaivijay's picture
Rename to AI Papers Intelligence Classifier and add full intelligence spectrum
b5f3bc2
Raw
History Blame Contribute Delete
5.6 kB
"""
Test suite for classifier module
"""
import pytest
from classifier import AIPapersIntelligenceClassifier
def test_classifier_initialization():
"""Test that classifier initializes correctly"""
classifier = AIPapersIntelligenceClassifier()
assert classifier.agi_keywords is not None
assert classifier.asi_keywords is not None
assert classifier.aci_keywords is not None
assert classifier.ani_keywords is not None
assert classifier.other_ai_keywords is not None
assert classifier.ml_keywords is not None
assert classifier.ds_keywords is not None
def test_classifier_with_semantic():
"""Test classifier with semantic analysis enabled"""
classifier = AIPapersIntelligenceClassifier(use_semantic=True, model_id="keyword")
assert classifier.use_semantic == True
assert classifier.model_id == "keyword"
def test_classify_paper():
"""Test paper classification"""
classifier = AIPapersIntelligenceClassifier()
test_paper = {
'title': 'Neural Computers: A New Computing Paradigm',
'summary': 'Researchers propose Neural Computers that unify computation and memory, potentially leading to artificial general intelligence.',
'full_entry': 'Neural Computers: A New Computing Paradigm - This could be a step toward AGI'
}
result = classifier.classify_paper(test_paper)
assert 'classification' in result
assert 'classification_reason' in result
assert 'asi_score' in result
assert 'agi_score' in result
assert 'aci_score' in result
assert 'ani_score' in result
assert 'other_ai_score' in result
assert 'ml_score' in result
assert 'ds_score' in result
assert 'combined_score' in result
assert 'matched_agi_keywords' in result
assert 'matched_asi_keywords' in result
assert 'matched_aci_keywords' in result
assert 'matched_ani_keywords' in result
assert 'matched_other_ai_keywords' in result
assert 'matched_ml_keywords' in result
assert 'matched_ds_keywords' in result
def test_classify_paper_agi():
"""Test classification of AGI paper"""
classifier = AIPapersIntelligenceClassifier()
agi_paper = {
'title': 'General Intelligence in AI Systems',
'summary': 'This paper discusses artificial general intelligence and transfer learning capabilities.',
'full_entry': 'AGI paper content'
}
result = classifier.classify_paper(agi_paper)
assert result['agi_score'] >= 1
assert result['classification'] in ['ASI', 'AGI', 'ACI', 'ANI', 'Other AI', 'ML', 'DS']
def test_classify_paper_asi():
"""Test classification of ASI paper"""
classifier = AIPapersIntelligenceClassifier()
asi_paper = {
'title': 'AI Safety and Alignment Problem',
'summary': 'Analysis of existential risks from superintelligent AI systems and alignment challenges.',
'full_entry': 'ASI safety paper'
}
result = classifier.classify_paper(asi_paper)
assert result['asi_score'] >= 1
assert result['classification'] in ['ASI', 'AGI', 'ACI', 'ANI', 'Other AI', 'ML', 'DS']
def test_classify_paper_not_related():
"""Test classification of non-related paper"""
classifier = AIPapersIntelligenceClassifier()
unrelated_paper = {
'title': 'Image Classification with CNNs',
'summary': 'A standard convolutional neural network for image classification.',
'full_entry': 'Standard ML paper'
}
result = classifier.classify_paper(unrelated_paper)
assert result['classification'] in ['ASI', 'AGI', 'ACI', 'ANI', 'Other AI', 'ML', 'DS', 'Not Related']
def test_batch_classify():
"""Test batch classification"""
classifier = AIPapersIntelligenceClassifier()
papers = [
{'title': 'AGI Paper', 'summary': 'About general intelligence', 'full_entry': 'AGI'},
{'title': 'ML Paper', 'summary': 'About machine learning', 'full_entry': 'ML'},
]
results = classifier.batch_classify(papers)
assert len(results) == 2
assert all('classification_result' in p for p in results)
def test_get_statistics():
"""Test statistics calculation"""
classifier = AIPapersIntelligenceClassifier()
classified_papers = [
{'classification_result': {'classification': 'ASI'}},
{'classification_result': {'classification': 'AGI'}},
{'classification_result': {'classification': 'ACI'}},
{'classification_result': {'classification': 'ANI'}},
{'classification_result': {'classification': 'Other AI'}},
{'classification_result': {'classification': 'ML'}},
{'classification_result': {'classification': 'DS'}},
{'classification_result': {'classification': 'Not Related'}},
]
stats = classifier.get_statistics(classified_papers)
assert stats['total'] == 8
assert stats['asi'] == 1
assert stats['agi'] == 1
assert stats['aci'] == 1
assert stats['ani'] == 1
assert stats['other_ai'] == 1
assert stats['ml'] == 1
assert stats['ds'] == 1
assert stats['not_related'] == 1
def test_get_statistics_empty():
"""Test statistics with empty list"""
classifier = AIPapersIntelligenceClassifier()
stats = classifier.get_statistics([])
assert stats['total'] == 0
assert stats['asi'] == 0
assert stats['agi'] == 0
assert stats['aci'] == 0
assert stats['ani'] == 0
assert stats['other_ai'] == 0
assert stats['ml'] == 0
assert stats['ds'] == 0
assert stats['not_related'] == 0