describe method
A report for a test that prints it or a CI job that keeps it in the log.
Implementation
String describe() {
final buffer = StringBuffer()
..writeln(
'${componentUses.keys.length} of ${catalogComponents.length} '
'components used across $sessions '
'session${sessions == 1 ? '' : 's'} and $surfaces '
'surface${surfaces == 1 ? '' : 's'}',
);
final unused = unusedComponents.toList()..sort();
if (unused.isNotEmpty) {
final GenUiCatalogWeight? w = weight;
buffer.writeln(' never composed:');
for (final String name in unused) {
final int? cost = w?.byComponent[name];
buffer.writeln(
cost == null
? ' $name'
: ' ${cost.toString().padLeft(6)} '
'${(w!.shareOf(name) * 100).toStringAsFixed(1)}% $name',
);
}
final int? wasted = wastedCharacters;
if (wasted != null && w != null && w.total > 0) {
buffer.writeln(
' ${wasted.toString().padLeft(6)} '
'${(wasted / w.total * 100).toStringAsFixed(1)}% in every request, '
'for components the agent never asked for',
);
}
}
final unusedProps = unusedProperties;
if (unusedProps.isNotEmpty) {
buffer.writeln(' composed, with properties never filled:');
final names = unusedProps.keys.toList()..sort();
for (final String name in names) {
final props = unusedProps[name]!.toList()..sort();
buffer.writeln(' $name: ${props.join(', ')}');
}
}
final unusedEnums = unusedEnumValues;
if (unusedEnums.isNotEmpty) {
buffer.writeln(' enum values never chosen:');
final keys = unusedEnums.keys.toList()..sort();
for (final String key in keys) {
final values = unusedEnums[key]!.toList()..sort();
buffer.writeln(' $key: ${values.join(', ')}');
}
}
return buffer.toString();
}