repro-rex-solver / tests /test_framework.py
wrice's picture
Publish validated d3f2f6c6c1f16b8e248d3d824cb5c3120ccf5e75
535e4d9 verified
Raw
History Blame Contribute Delete
1.71 kB
import pytest
import numpy as np
from know_more_know_clearer.framework import (
MetaCognitiveFramework,
KnowledgeRegion,
CognitionGuidedKnowledgeExpansion,
CognitionDrivenKnowledgeCalibration,
)
def test_knowledge_region_partitioning():
framework = MetaCognitiveFramework(confidence_threshold=0.7, accuracy_threshold=0.8)
# Test Mastered
region = framework.partition_knowledge(confidence=0.9, accuracy=0.95)
assert region == KnowledgeRegion.MASTERED
# Test Confused
region = framework.partition_knowledge(confidence=0.85, accuracy=0.4)
assert region == KnowledgeRegion.CONFUSED
# Test Missing
region = framework.partition_knowledge(confidence=0.2, accuracy=0.3)
assert region == KnowledgeRegion.MISSING
def test_cognition_guided_knowledge_expansion():
cgke = CognitionGuidedKnowledgeExpansion()
queries = ["What is the capital of France?", "How does quantum computing work?"]
confidences = [0.95, 0.3]
expansion_needed = cgke.evaluate_expansion_targets(queries, confidences, threshold=0.6)
assert len(expansion_needed) == 1
assert expansion_needed[0] == "How does quantum computing work?"
def test_cognition_driven_knowledge_calibration():
cdkc = CognitionDrivenKnowledgeCalibration()
confidences = np.array([0.9, 0.8, 0.7, 0.6, 0.5])
accuracies = np.array([1.0, 0.8, 0.6, 0.4, 0.2])
calibrated = cdkc.calibrate_confidence(confidences, accuracies)
assert len(calibrated) == len(confidences)
# Calibrated scores should align better with accuracies
ece_before = np.mean(np.abs(confidences - accuracies))
ece_after = np.mean(np.abs(calibrated - accuracies))
assert ece_after <= ece_before