Skip to main content
Glama
metrics-calculator.test.ts3.27 kB
import { MetricsCalculator } from '../metrics-calculator'; import { ThoughtNode, ThoughtMetrics } from '../types'; const createThought = (id: string, content: string, type: ThoughtNode['type'] = 'regular'): ThoughtNode => ({ id, content, type, timestamp: new Date(), connections: [], metrics: { confidence: 0.5, relevance: 0.5, quality: 0.5 } as ThoughtMetrics, metadata: {} }); describe('MetricsCalculator heuristics', () => { const calculator = new MetricsCalculator(); it('computes confident breakdown for assertive statements', async () => { const assertiveThought = createThought( 'conf-high', 'Il est clairement démontré par deux études indépendantes publiées en 2024 que cette méthode réduit les erreurs de 25 %.' ); const confidence = await calculator.calculateConfidence(assertiveThought, []); expect(confidence).toBeGreaterThan(0.6); const breakdown = calculator.getMetricBreakdown(assertiveThought.id); expect(breakdown?.confidence?.contributions.length).toBeGreaterThan(0); const structuralContribution = breakdown?.confidence?.contributions.find(c => c.label === 'Structure factuelle'); expect(structuralContribution?.value).toBeGreaterThan(0.5); }); it('reduces confidence for speculative statements', async () => { const speculativeThought = createThought( 'conf-low', 'Peut-être que cette hypothèse fonctionne, mais il faudra vérifier si certains éléments se confirment.' ); const confidence = await calculator.calculateConfidence(speculativeThought, []); expect(confidence).toBeLessThan(0.55); }); it('captures lexical quality signals', async () => { const wellStructured = createThought( 'quality-high', 'Premièrement, nous posons le cadre. Ensuite, nous évaluons les résultats mesurés. En conclusion, cette démarche reste cohérente.' ); const quality = await calculator.calculateQuality(wellStructured, []); expect(quality).toBeGreaterThan(0.5); }); it('detects heuristic bias patterns', async () => { const biasedThought = createThought( 'bias-test', 'Je sais absolument que ces gens sont toujours dans l\'erreur, c\'est totalement évident !' ); const biases = await calculator.detectBiases(biasedThought); expect(biases.length).toBeGreaterThan(0); expect(biases[0].score).toBeGreaterThan(0.3); }); it('determines verification requirements heuristically', async () => { const factualContent = 'Selon le rapport de 2023, 62 % des cas ont augmenté de 15 points.'; const requirements = await calculator.determineVerificationRequirements(factualContent); expect(requirements.needsFactCheck).toBe(true); expect(requirements.priority).toBe('high'); }); it('provides heuristic verification fallback', () => { const thought = createThought( 'verification', 'Il est absolument certain que 2 + 2 = 4, cette vérité est indiscutable.' ); const result = calculator.evaluateVerificationHeuristics(thought); expect(result.status === 'verified' || result.status === 'unverified' || result.status === 'uncertain' || result.status === 'contradicted').toBe(true); expect(result.confidence).toBeGreaterThan(0); }); });

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Leghis/Smart-Thinking'

If you have feedback or need assistance with the MCP directory API, please join our Discord server