///|
fn main raise {
let log = @lens.EventLog::new([
@lens.LogEvent::new(
"build",
"run-42",
"build",
1L,
10L,
resource=Some("runner"),
),
@lens.LogEvent::new(
"test",
"run-42",
"tests",
2L,
4L,
resource=Some("runner"),
),
@lens.LogEvent::new(
"pack",
"run-42",
"package",
12L,
15L,
resource=Some("runner"),
),
])
let report = log.performance()
// Summing service would overstate occupied wall time by the overlapping tests.
assert_eq(report.cases[0].cycle_time, 14L)
assert_eq(report.cases[0].busy_union, 12L)
assert_eq(report.cases[0].service_work, 14.0)
assert_eq(report.cases[0].idle_time, 2L)
assert_eq(report.resources[0].maximum_concurrency, 2)
let roundtrip = @lens.parse_log(@lens.log_to_json(log).stringify())
assert_eq(roundtrip.event_count(), 3)
println(@lens.performance_to_json(report).stringify())
}