/** * Comparison table component - displays analytical vs simulation comparison. */ import type { NetworkComparison, QueueComparison } from '../../types/simulation'; interface ComparisonTableProps { comparison: NetworkComparison; } interface ComparisonRowProps { label: string; analytical: number; simulation: number; diffPercent: number; decimals?: number; } function ComparisonRow({ label, analytical, simulation, diffPercent, decimals = 4, }: ComparisonRowProps) { const absDiff = Math.abs(diffPercent); const isGoodMatch = absDiff < 5; // Less than 5% difference is good const isOkMatch = absDiff < 10; // Less than 10% is acceptable return ( {label} {analytical.toFixed(decimals)} {simulation.toFixed(decimals)} {diffPercent >= 0 ? '+' : ''} {diffPercent.toFixed(2)}% ); } function QueueComparisonSection({ queueName, queueComparison, }: { queueName: string; queueComparison: QueueComparison; }) { return ( <> {queueName} ); } export default function ComparisonTable({ comparison }: ComparisonTableProps) { return (
{/* System totals */} {/* Coordinator */} {/* Servers */} {Object.entries(comparison.servers).map(([serverId, serverComparison]) => ( ))}
Métrique Analytique Simulation Différence
Système total
{/* Legend */}
< 5% (excellent)
5-10% (acceptable)
> 10% (important)
); }