MetricsCollector

Metrics collection for test runs.

Collects timing and quality metrics during test execution.

Classes

class TimingResult

Result of a timing measurement.

Methods:

duration_ms()

Duration in milliseconds.

class TimingContext

Context manager for timing an operation.

Usage:
with ctx.timing(“watershed_stroke”) as t:

effect.apply(…)

print(f”Took {t.duration_ms:.1f}ms”)

Methods:

__init__()

Initialize timing context.

duration_seconds()

Duration in seconds (available after context exits).

duration_ms()

Duration in milliseconds (available after context exits).

class MetricValue

A recorded metric value.

class MetricsCollector

Collects timing and quality metrics during tests.

Usage:

collector = MetricsCollector()

# Time an operation with collector.timing(“watershed_stroke”):

effect.apply(…)

# Record a custom metric collector.record_metric(“voxel_count”, 1247, “voxels”)

# Get all metrics metrics = collector.get_metrics()

Methods:

__init__()

Initialize metrics collector.

timing()

Create a timing context for measuring operation duration.

record_metric()

Record a custom metric.

get_metrics()

Get all collected metrics as a dictionary.

get_timing()

Get timing for a specific operation.

get_metric()

Get a specific metric.

clear()

Clear all collected metrics.

Functions

duration_ms()

Duration in milliseconds.

duration_seconds()

Duration in seconds (available after context exits).

duration_ms()

Duration in milliseconds (available after context exits).

timing()

Create a timing context for measuring operation duration.

Args:

operation: Name of the operation being timed.

Returns:

Context manager that records duration on exit.

record_metric()

Record a custom metric.

Args:

name: Metric name (e.g., “voxel_count”, “dice_coefficient”). value: Metric value. unit: Optional unit string (e.g., “voxels”, “ms”).

get_metrics()

Get all collected metrics as a dictionary.

Returns:

Dictionary with “timings” and “metrics” keys.

get_timing()

Get timing for a specific operation.

Args:

operation: Operation name.

Returns:

TimingResult or None if not found.

get_metric()

Get a specific metric.

Args:

name: Metric name.

Returns:

MetricValue or None if not found.

clear()

Clear all collected metrics.